[MERGE] *: improved english wording, suggestions courtesy of OpenERP Community

bzr revid: odo@openerp.com-20121221164808-kdjrtcbgma4dr3on
This commit is contained in:
Olivier Dony 2012-12-21 17:48:08 +01:00
commit 49597f0e66
65 changed files with 160 additions and 161 deletions

View File

@ -705,7 +705,7 @@ class account_journal(osv.osv):
'with_last_closing_balance' : fields.boolean('Opening With Last Closing Balance'),
'name': fields.char('Journal Name', size=64, required=True),
'code': fields.char('Code', size=5, required=True, help="The code will be displayed on reports."),
'type': fields.selection([('sale', 'Sale'),('sale_refund','Sale Refund'), ('purchase', 'Purchase'), ('purchase_refund','Purchase Refund'), ('cash', 'Cash'), ('bank', 'Bank and Cheques'), ('general', 'General'), ('situation', 'Opening/Closing Situation')], 'Type', size=32, required=True,
'type': fields.selection([('sale', 'Sale'),('sale_refund','Sale Refund'), ('purchase', 'Purchase'), ('purchase_refund','Purchase Refund'), ('cash', 'Cash'), ('bank', 'Bank and Checks'), ('general', 'General'), ('situation', 'Opening/Closing Situation')], 'Type', size=32, required=True,
help="Select 'Sale' for customer invoices journals."\
" Select 'Purchase' for supplier invoices journals."\
" Select 'Cash' or 'Bank' for journals that are used in customer or supplier payments."\
@ -715,7 +715,7 @@ class account_journal(osv.osv):
'account_control_ids': fields.many2many('account.account', 'account_account_type_rel', 'journal_id','account_id', 'Account', domain=[('type','<>','view'), ('type', '<>', 'closed')]),
'default_credit_account_id': fields.many2one('account.account', 'Default Credit Account', domain="[('type','!=','view')]", help="It acts as a default account for credit amount"),
'default_debit_account_id': fields.many2one('account.account', 'Default Debit Account', domain="[('type','!=','view')]", help="It acts as a default account for debit amount"),
'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."),
'centralisation': fields.boolean('Centralized 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 information related to the numbering of the journal entries of this journal.", required=True),

View File

@ -547,7 +547,7 @@ class account_bank_statement_line(osv.osv):
_name = "account.bank.statement.line"
_description = "Bank Statement Line"
_columns = {
'name': fields.char('Communication', required=True),
'name': fields.char('OBI', required=True, help="Originator to Beneficiary Information"),
'date': fields.date('Date', required=True),
'amount': fields.float('Amount', digits_compute=dp.get_precision('Account')),
'type': fields.selection([

View File

@ -229,7 +229,7 @@ class account_invoice(osv.osv):
help="If you use payment terms, the due date will be computed automatically at the generation "\
"of accounting entries. The payment term may compute several due dates, for example 50% now and 50% in one month, but if you want to force a due date, make sure that the payment term is not set on the invoice. If you keep the payment term and the due date empty, it means direct payment."),
'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}, track_visibility='always'),
'payment_term': fields.many2one('account.payment.term', 'Payment Term',readonly=True, states={'draft':[('readonly',False)]},
'payment_term': fields.many2one('account.payment.term', 'Payment Terms',readonly=True, states={'draft':[('readonly',False)]},
help="If you use payment terms, the due date will be computed automatically at the generation "\
"of accounting entries. If you keep the payment term and the due date empty, it means direct payment. "\
"The payment term may compute several due dates, for example 50% now, 50% in one month."),
@ -240,7 +240,7 @@ class account_invoice(osv.osv):
'tax_line': fields.one2many('account.invoice.tax', 'invoice_id', 'Tax Lines', readonly=True, states={'draft':[('readonly',False)]}),
'move_id': fields.many2one('account.move', 'Journal Entry', readonly=True, select=1, ondelete='restrict', help="Link to the automatically generated Journal Items."),
'amount_untaxed': fields.function(_amount_all, digits_compute=dp.get_precision('Account'), string='Untaxed', track_visibility='always',
'amount_untaxed': fields.function(_amount_all, digits_compute=dp.get_precision('Account'), string='Subtotal', track_visibility='always',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20),
'account.invoice.tax': (_get_invoice_tax, None, 20),
@ -1380,7 +1380,7 @@ class account_invoice_line(osv.osv):
'product_id': fields.many2one('product.product', 'Product', ondelete='set null', select=True),
'account_id': fields.many2one('account.account', 'Account', required=True, domain=[('type','<>','view'), ('type', '<>', 'closed')], help="The income or expense account related to the selected product."),
'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price')),
'price_subtotal': fields.function(_amount_line, string='Subtotal', type="float",
'price_subtotal': fields.function(_amount_line, string='Amount', type="float",
digits_compute= dp.get_precision('Account'), store=True),
'quantity': fields.float('Quantity', digits_compute= dp.get_precision('Product Unit of Measure'), required=True),
'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Discount')),

View File

@ -12,7 +12,7 @@
<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"
groups="group_account_user,group_account_manager"/>
<menuitem id="menu_finance_periodical_processing" name="Periodical Processing" parent="menu_finance" sequence="13" groups="group_account_user,group_account_manager"/>
<menuitem id="menu_finance_periodical_processing" name="Periodic Processing" parent="menu_finance" sequence="13" groups="group_account_user,group_account_manager"/>
<!-- This menu is used in account_code module -->
<menuitem id="menu_account_pp_statements" name="Statements" parent="menu_finance_periodical_processing" sequence="12"/>
<menuitem id="periodical_processing_journal_entries_validation" name="Draft Entries" parent="menu_finance_periodical_processing"/>

View File

@ -459,7 +459,7 @@ class account_analytic_account(osv.osv):
context = {}
sale_ids = self.pool.get('sale.order').search(cr,uid,[('project_id','=',context.get('search_default_project_id',False)),('partner_id','in',context.get('search_default_partner_id',False))])
names = [record.name for record in self.browse(cr, uid, ids, context=context)]
name = _('Sale Order Lines of %s') % ','.join(names)
name = _('Sales Order Lines of %s') % ','.join(names)
return {
'type': 'ir.actions.act_window',
'name': name,

View File

@ -168,7 +168,7 @@
</record>
<record id="template_of_contract_action" model="ir.actions.act_window">
<field name="name">Template of Contract</field>
<field name="name">Contract Template</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>

View File

@ -31,10 +31,10 @@ class account_analytic_default(osv.osv):
_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'),
'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)"),
'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 Sales 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 Sales 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)"),
'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 Sales 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."),
}

View File

@ -63,7 +63,7 @@ class account_bank_statement_line_global(osv.osv):
_description = 'Batch Payment Info'
_columns = {
'name': fields.char('Communication', size=128, required=True),
'name': fields.char('OBI', size=128, required=True, help="Originator to Beneficiary Information"),
'code': fields.char('Code', size=64, required=True),
'parent_id': fields.many2one('account.bank.statement.line.global', 'Parent Code', ondelete='cascade'),
'child_ids': fields.one2many('account.bank.statement.line.global', 'parent_id', 'Child Codes'),

View File

@ -38,7 +38,7 @@ class res_company(osv.osv):
('top', 'Check on Top'),
('middle', 'Check in middle'),
('bottom', 'Check on bottom'),
],"Choose Check layout",
],"Check Layout",
help="Check on top is compatible with Quicken, QuickBooks and Microsoft Money. Check in middle is compatible with Peachtree, ACCPAC and DacEasy. Check on bottom is compatible with Peachtree, ACCPAC and DacEasy only" ),
}

View File

@ -6,7 +6,7 @@
<field name="name">sale.receipt.report.tree</field>
<field name="model">sale.receipt.report</field>
<field name="arch" type="xml">
<tree colors="blue:state == 'draft';gray:state in ('cancel','paid');black:state in ('proforma','proforma2')" create="false" string="Sales Receipt Analysis">
<tree colors="blue:state == 'draft';gray:state in ('cancel','paid');black:state in ('proforma','proforma2')" create="false" string="Sales Receipts Analysis">
<field name="date" invisible="1"/>
<field name="user_id" invisible="1"/>
<field name="year" invisible="1"/>
@ -33,7 +33,7 @@
<field name="name">sale.receipt.report.graph</field>
<field name="model">sale.receipt.report</field>
<field name="arch" type="xml">
<graph string="Sales Receipt Analysis" type="bar">
<graph string="Sales Receipts Analysis" type="bar">
<field name="account_id"/>
<field name="price_total"/>
</graph>
@ -44,7 +44,7 @@
<field name="name">sale.receipt.report.search</field>
<field name="model">sale.receipt.report</field>
<field name="arch" type="xml">
<search string="Sales Receipt Analysis">
<search string="Sales Receipts Analysis">
<field name="date"/>
<field name="date_due"/>
<filter string="Draft" icon="terp-document-new" domain="[('state','=','draft')]" help = "Draft Vouchers"/>
@ -74,7 +74,7 @@
</record>
<record id="action_sale_receipt_report_all" model="ir.actions.act_window">
<field name="name">Sales Receipt Analysis</field>
<field name="name">Sales Receipts Analysis</field>
<field name="res_model">sale.receipt.report</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>

View File

@ -250,7 +250,7 @@
</record>
<record id="action_vendor_payment" model="ir.actions.act_window">
<field name="name">Supplier Payment</field>
<field name="name">Supplier Payments</field>
<field name="res_model">account.voucher</field>
<field name="view_type">form</field>
<field name="domain">[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','payment')]</field>
@ -262,8 +262,7 @@
<p class="oe_view_nocontent_create">
Click to create a new supplier payment.
</p><p>
OpenERP helps you easily track payments you do and remining
balance to pay to your supplier.
OpenERP helps you easily track payments you make and the remaining balances you need to pay your suppliers.
</p>
</field>
</record>
@ -520,7 +519,7 @@
</record>
<record id="action_vendor_receipt" model="ir.actions.act_window">
<field name="name">Customer Payment</field>
<field name="name">Customer Payments</field>
<field name="res_model">account.voucher</field>
<field name="view_type">form</field>
<field name="domain">[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt')]</field>

View File

@ -46,7 +46,7 @@
</record>
<record id="act_pay_voucher" model="ir.actions.act_window">
<field name="name">Customer Payment</field>
<field name="name">Customer Payments</field>
<field name="res_model">account.voucher</field>
<field name="view_type">form</field>
<field name="domain">[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt'), ('partner_id','=',partner_id)]</field>
@ -68,7 +68,7 @@
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
<field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header>
<sheet string="Sales Receipt" >
<sheet string="Sales Receipts" >
<h1><label for="number" string="Sale Receipt"/> <field name="number" class="oe_inline" readonly="1"/></h1>
<group>
<group>
@ -156,7 +156,7 @@
<!-- Sales Voucher -->
<record id="action_sale_receipt" model="ir.actions.act_window">
<field name="name">Sales Receipt</field>
<field name="name">Sales Receipts</field>
<field name="res_model">account.voucher</field>
<field name="view_type">form</field>
<field name="domain">[('journal_id.type','in',['sale','sale_refund']), ('type','=','sale')]</field>
@ -310,7 +310,7 @@
</field>
</record>
<record id="action_purchase_receipt" model="ir.actions.act_window">
<field name="name">Purchase Receipt</field>
<field name="name">Purchase Receipts</field>
<field name="res_model">account.voucher</field>
<field name="view_type">form</field>
<field name="domain">[('journal_id.type','in',['purchase','purchase_refund']), ('type','=','purchase')]</field>

View File

@ -211,7 +211,7 @@
<dl>
<dt><a href="#" class="oe_import_toggle">
How can I import a one2many relationship (e.g. several
Order Lines of a Sale Order)?</a></dt>
Order Lines of a Sales Order)?</a></dt>
<dd>
<p>If you want to import sales order having several
order lines; for each order line, you need to reserve

View File

@ -39,7 +39,7 @@
</record>
<record model="crm.payment.mode" id="payment_mode_2">
<field name="name">Cheque</field>
<field name="name">Check</field>
<field name="section_id" ref="crm.section_sales_department"/>
</record>

View File

@ -104,7 +104,7 @@
to each method.
</p><p>
These methods allows to automaticaly compute the delivery price
according to your settings; on the sale order (based on the
according to your settings; on the sales order (based on the
quotation) or the invoice (based on the delivery orders).
</p>
</field>

View File

@ -292,7 +292,7 @@ class event_registration(osv.osv):
_inherit = ['mail.thread', 'ir.needaction_mixin']
_columns = {
'id': fields.integer('ID'),
'origin': fields.char('Source Document', size=124,readonly=True,help="Name of the sale order which create the registration"),
'origin': fields.char('Source Document', size=124,readonly=True,help="Reference of the sales order which created the registration"),
'nb_register': fields.integer('Number of Participants', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'event_id': fields.many2one('event.event', 'Event', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}),

View File

@ -28,7 +28,7 @@
Creating registration with sale orders.
=======================================
This module allows you to automatize and connect your registration creation with
This module allows you to automate 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

View File

@ -25,8 +25,8 @@ from openerp.tools.translate import _
class product(osv.osv):
_inherit = 'product.product'
_columns = {
'event_ok': fields.boolean('Event Subscription', help='Determine if a product needs to create automatically an event registration at the confirmation of a sale order line.'),
'event_type_id': fields.many2one('event.type', 'Type of Event', help='Select event types so when we use this product in Sale order line, it will filter events of this type only.'),
'event_ok': fields.boolean('Event Subscription', help='Determine if a product needs to create automatically an event registration at the confirmation of a sales order line.'),
'event_type_id': fields.many2one('event.type', 'Type of Event', help='Select event types so when we use this product in sales order lines, it will filter events of this type only.'),
}
def onchange_event_ok(self, cr, uid, ids, event_ok, context=None):
@ -69,7 +69,7 @@ class sale_order_line(osv.osv):
def button_confirm(self, cr, uid, ids, context=None):
'''
create registration with sale order
create registration with sales order
'''
registration_obj = self.pool.get('event.registration')
sale_obj = self.pool.get('sale.order')
@ -85,6 +85,6 @@ class sale_order_line(osv.osv):
'event_id': order_line.event_id.id,
}
registration_id = registration_obj.create(cr, uid, dic, context=context)
message = _("The registration %s has been created from the Sale Order %s.") % (registration_id, order_line.order_id.name)
message = _("The registration %s has been created from the Sales Order %s.") % (registration_id, order_line.order_id.name)
registration_obj.message_post(cr, uid, [registration_id], body=message, context=context)
return super(sale_order_line, self).button_confirm(cr, uid, ids, context=context)

View File

@ -124,7 +124,7 @@ class fleet_vehicle_state(osv.Model):
_order = 'sequence asc'
_columns = {
'name': fields.char('Name', required=True),
'sequence': fields.integer('Order', help="Used to order the note stages")
'sequence': fields.integer('Sequence', help="Used to order the note stages")
}
_sql_constraints = [('fleet_state_name_unique','unique(name)', 'State name already exists')]

View File

@ -379,7 +379,7 @@
<field name="search_view_id" ref="view_hr_evaluation_interview_search"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a new interview request related to a personnal evaluation.
Click to create a new interview request related to a personal evaluation.
</p><p>
Interview requests are usually generated automatically by
OpenERP according to an employee's appraisal plan. Each user

View File

@ -212,7 +212,7 @@
<field name="search_view_id" ref="product.product_search_form_view"/>
</record>
<menuitem id="menu_hr_product" name="Types of Expenses" parent="hr.menu_hr_configuration" action="hr_expense_product"/>
<menuitem id="menu_hr_product" name="Expense Categories" parent="hr.menu_hr_configuration" action="hr_expense_product"/>
<menuitem id="next_id_49" name="Expenses" sequence="15" parent="hr.menu_hr_root"/>
<menuitem action="expense_all" id="menu_expense_all" name="Expenses" parent="next_id_49"/>

View File

@ -72,7 +72,7 @@ class account_analytic_account(osv.osv):
'amount_invoiced': fields.function(_invoiced_calc, string='Invoiced Amount',
help="Total invoiced"),
'to_invoice': fields.many2one('hr_timesheet_invoice.factor', 'Timesheet Invoicing Ratio',
help="You usually invoice 100% of the timesheets. But if you mix fixed price and timesheet invoicing, you may use another ratio. For instance, if you do a 20% advance invoice (fixed price, based on a sale order), you should invoice the rest on timesheet with a 80% ratio."),
help="You usually invoice 100% of the timesheets. But if you mix fixed price and timesheet invoicing, you may use another ratio. For instance, if you do a 20% advance invoice (fixed price, based on a sales order), you should invoice the rest on timesheet with a 80% ratio."),
}
_defaults = {
'pricelist_id': lambda self, cr, uid, ctx: ctx.get('pricelist_id', False),

View File

@ -203,7 +203,7 @@
</p>
</field>
</record>
<menuitem name="Employee's Payment" parent="menu_lunch_cash" id="menu_lunch_cashmove" action="action_lunch_cashmove" />
<menuitem name="Employee Payments" parent="menu_lunch_cash" id="menu_lunch_cashmove" action="action_lunch_cashmove" />
<!--Action for Products-->
<record model="ir.actions.act_window" id="action_lunch_products">

View File

@ -16,7 +16,7 @@
<field name="subtype_id" ref="mail.mt_comment"/>
<field name="subject">Welcome to OpenERP!</field>
<field name="body"><![CDATA[<p>Your homepage is a summary of messages you received and key information about documents you follow.</p>
<p>The top menu bar contains all applications you installed. You can use the <i>Settings</i> menu to install more applications, activate others features or give access to new users.</p>
<p>The top menu bar contains all applications you installed. You can use the <i>Settings</i> menu to install more applications, activate other features or give access to new users.</p>
<p>To setup your preferences (name, email signature, avatar), click on the top right corner.</p>]]></field>
</record>
</data>

View File

@ -55,7 +55,7 @@
</record>
<record id="action_mail_star_feeds" model="ir.actions.client">
<field name="name">Todo</field>
<field name="name">To-do</field>
<field name="tag">mail.wall</field>
<field name="res_model">mail.message</field>
<field name="context">{
@ -130,7 +130,7 @@
<field name="parent_id" ref="mail.mail_feeds"/>
</record>
<record id="mail_starfeeds" model="ir.ui.menu">
<field name="name">Todo</field>
<field name="name">To-do</field>
<field name="sequence" eval="14"/>
<field name="action" ref="action_mail_star_feeds"/>
<field name="parent_id" ref="mail.mail_feeds"/>

View File

@ -223,7 +223,7 @@
<div class='oe_msg_icons' t-if="!widget.options.readonly">
<span class='oe_read' t-if="widget.options.show_read"><a title="Done" class="oe_e">W</a></span>
<span class='oe_unread' t-if="widget.is_favorite and widget.options.show_unread"><a title="Set back to Todo" class="oe_e">v</a></span>
<span class='oe_unread' t-if="!widget.is_favorite and widget.options.show_unread"><a title="Set back to Inbox" class="oe_e">v</a></span>
<span class='oe_unread' t-if="!widget.is_favorite and widget.options.show_unread"><a title="Move to Inbox" class="oe_e">v</a></span>
<span class='oe_reply' t-if="widget.options.show_reply_button"><a title="Reply" class="oe_e">(</a></span>
<span t-attf-class="oe_star #{widget.is_favorite?'oe_starred':''}"><a title="Mark as Todo" class="oe_e">7</a></span>
</div>

View File

@ -47,11 +47,11 @@
Define specific property groups that can be assigned to your
bill of materials and sales orders. Properties allows OpenERP
to automatically select the right bill of materials according
to properties selected in the sale order by salesperson.
to properties selected in the sales order by salesperson.
</p><p>
For instance, in the property group "Warranty", you an have
two properties: 1 year warranty, 3 years warranty. Depending
on the propoerties selected in the sale order, OpenERP will
on the propoerties selected in the sales order, OpenERP will
schedule a production using the matching bill of materials.
</p>
</field>
@ -121,7 +121,7 @@
materials for manufacturing a product when you have different
ways of building the same product. You can assign several
properties to each bill of materials. When a salesperson
creates a sale order, they can relate it to several properties
creates a sales order, they can relate it to several properties
and OpenERP will automatically select the BoM to use according
the needs.
</p>
@ -370,7 +370,7 @@
<field name="code" string="Reference"/>
<field name="type"/>
<p colspan="2" class="oe_grey" attrs="{'invisible': [('type','=','normal')]}">
When processing a sale order for this product, the delivery order
When processing a sales order for this product, the delivery order
will contain the raw materials, instead of the finished product.
</p>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
@ -1031,7 +1031,7 @@
<menuitem id="menu_mrp_planning" name="Planning"
parent="base.menu_mrp_root" sequence="2"/>
<menuitem action="mrp.mrp_production_action_planning"
id="menu_mrp_production_order_action" name="Orders Planning"
id="menu_mrp_production_order_action" name="Order Planning"
parent="menu_mrp_planning" sequence="1"/>

View File

@ -63,7 +63,7 @@ class mrp_config_settings(osv.osv_memory):
that will define the required raw materials."""),
'group_mrp_properties': fields.boolean("Allow several bill of materials per products using properties",
implied_group='product.group_mrp_properties',
help="""The selection of the right Bill of Material to use will depend on the properties specified on the sale order and the Bill of Material."""),
help="""The selection of the right Bill of Material to use will depend on the properties specified on the sales order and the Bill of Material."""),
'module_product_manufacturer': fields.boolean("Define manufacturers on products ",
help="""This allows you to define the following for a product:
* Manufacturer

View File

@ -21,7 +21,7 @@
<li>kind: the kind of document on which the payment form is rendered (translated to user language, e.g. "Invoice")</li>
<li>currency: the currency record in which the document is issued (e.g. currency.name could be EUR)</li>
<li>amount: the total amount to pay, as a float</li>
<li>object: the document on which the payment form is rendered (usually an invoice or sale order record)</li>
<li>object: the document on which the payment form is rendered (usually an invoice or sales order record)</li>
<li>quote(): a method to quote special string character to make them suitable for inclusion in a URL</li>
<li>cr: the current database cursor</li>
<li>uid: the current user id</li>

View File

@ -14,7 +14,7 @@
<!-- Mail group for the company's news -->
<record id="company_news_feed" model="mail.group">
<field name="name">Company's news</field>
<field name="name">Company News</field>
<field name="public">public</field>
</record>
@ -46,7 +46,7 @@
<!-- Mail group for the company's jobs -->
<record id="company_jobs" model="mail.group">
<field name="name">Company's jobs</field>
<field name="name">Company Jobs</field>
<field name="public">public</field>
</record>

View File

@ -5,7 +5,7 @@
<!--Email template -->
<record id="email_template_edi_sale" model="email.template">
<field name="name">Sale Order - Send by Email (Portal)</field>
<field name="name">Sales Order - Send by Email (Portal)</field>
<field name="email_from">${object.user_id.email or ''}</field>
<field name="subject">${object.company_id.name} ${object.state in ('draft', 'sent') and 'Quotation' or 'Order'} (Ref ${object.name or 'n/a' })</field>
<field name="email_recipients">${object.partner_invoice_id.id}</field>
@ -180,4 +180,4 @@
</record>
</data>
</openerp>
</openerp>

View File

@ -46,7 +46,7 @@
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="sale.view_sales_order_filter"/>
<field name="context">{"search_default_sales":1}</field>
<field name="help">We haven't sent you any sale order.</field>
<field name="help">We haven't sent you any sales order.</field>
</record>
<record id="portal_action_invoices" model="ir.actions.act_window">

View File

@ -13,8 +13,8 @@
<record id="node_quotation" model="process.node">
<field name="name">Quotation</field>
<field name="note">Quotations are sale orders in draft mode</field>
<field name="model_id" model="ir.model" search="[('name', '=', 'Sale Order')]"></field>
<field name="note">Quotations are sales orders in draft mode</field>
<field name="model_id" model="ir.model" search="[('name', '=', 'Sales Order')]"></field>
<field name="menu_id" model="ir.ui.menu" search="[('name', '=', 'My Quotations')]"></field>
<field name="kind">state</field>
<field name="model_states">object.state == 'draft'</field>
@ -22,9 +22,9 @@
</record>
<record id="node_sale_order" model="process.node">
<field name="name">Sale Order</field>
<field name="name">Sales Order</field>
<field name="note">Manages the delivery in invoicing process</field>
<field name="model_id" model="ir.model" search="[('name', '=', 'Sale Order')]"></field>
<field name="model_id" model="ir.model" search="[('name', '=', 'Sales Order')]"></field>
<field name="menu_id" model="ir.ui.menu" search="[('name', '=', 'All Sales Order')]"></field>
<field name="kind">state</field>
<field name="model_states">object.state == 'manual'</field>
@ -33,7 +33,7 @@
<record id="node_invoice_on_sale" model="process.node">
<field name="name">Invoice</field>
<field name="note">In case you invoiced on Sale Order</field>
<field name="note">In case you invoiced on Sales Order</field>
<field name="model_id" model="ir.model" search="[('name', '=', 'Invoice')]"></field>
<field name="menu_id" model="ir.ui.menu" search="[('name', '=', 'Invoices')]"></field>
<field name="kind">state</field>
@ -85,14 +85,14 @@
<record id="node_condition_invoice_on_order" model="process.condition">
<field name="name">Invoice on order</field>
<field name="model_id" model="ir.model" search="[('name', '=', 'Sale Order')]"></field>
<field name="model_id" model="ir.model" search="[('name', '=', 'Sales Order')]"></field>
<field name="model_states">object.order_policy != 'picking'</field>
<field name="node_id" ref="node_invoice_on_sale"/>
</record>
<record id="node_condition_invoice_on_delivery" model="process.condition">
<field name="name">Invoice on delivery</field>
<field name="model_id" model="ir.model" search="[('name', '=', 'Sale Order')]"></field>
<field name="model_id" model="ir.model" search="[('name', '=', 'Sales Order')]"></field>
<field name="model_states">object.order_policy == 'picking'</field>
<field name="node_id" ref="node_invoice_on_delivery"/>
</record>

View File

@ -60,7 +60,7 @@
<field name="name">project.user.allocation.search</field>
<field name="model">project.user.allocation</field>
<field name="arch" type="xml">
<search string="Planning of Users">
<search string="Team Planning">
<field name="user_id"/>
<field name="phase_id"/>
<field name="project_id"/>
@ -73,7 +73,7 @@
</field>
</record>
<record id="act_resouce_allocation" model="ir.actions.act_window">
<field name="name">Planning of Users</field>
<field name="name">Team Planning</field>
<field name="res_model">project.user.allocation</field>
<field name="view_type">form</field>
<field name="view_mode">gantt,tree,form,calendar</field>
@ -171,7 +171,7 @@
</group>
</group>
<notebook>
<page string="Planning of Users">
<page string="Team Planning">
<field name="user_ids">
<tree editable="bottom" string="Project Users">
<field name="user_id"/>

View File

@ -22,8 +22,8 @@
<field name="menu_id" ref="sale.menu_sale_order"/>
<field name="model_id" ref="sale.model_sale_order"/>
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Sale Order Task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;In case you sell services on sale order&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Sales Order Task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;In case you sell services on sales order&quot;&quot;&quot;" name="note"/>
<field name="subflow_id" ref="sale.process_process_salesprocess0"/>
<field name="process_id" ref="project.process_process_tasksprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>

View File

@ -27,7 +27,7 @@ class project_task(osv.osv):
_inherit = "project.task"
_columns = {
'procurement_id': fields.many2one('procurement.order', 'Procurement', ondelete='set null'),
'sale_line_id': fields.related('procurement_id', 'sale_line_id', type='many2one', relation='sale.order.line', store=True, string='Sale Order Line'),
'sale_line_id': fields.related('procurement_id', 'sale_line_id', type='many2one', relation='sale.order.line', store=True, string='Sales Order Line'),
}
def _validate_subflows(self, cr, uid, ids):

View File

@ -43,7 +43,7 @@
<p attrs="{'invisible': ['|','|',('type','&lt;&gt;','service'),('procure_method','&lt;&gt;','make_to_order'),('supply_method','&lt;&gt;','produce')]}">
When you sell this service to a customer, <b>a task</b> will be
created to follow up the job to do. This task will appear
in the project related to the contract of the sale order.
in the project related to the contract of the sales order.
</p>
</group>
</field>

View File

@ -27,7 +27,7 @@ class procurement_order(osv.osv):
_inherit = "procurement.order"
_columns = {
'task_id': fields.many2one('project.task', 'Task'),
'sale_line_id': fields.many2one('sale.order.line', 'Sale order line')
'sale_line_id': fields.many2one('sale.order.line', 'Sales order line')
}
def action_check_finished(self, cr, uid, ids):
@ -59,7 +59,7 @@ class procurement_order(osv.osv):
project_project = self.pool.get('project.project')
project = procurement.product_id.project_id
if not project and procurement.sale_line_id:
# find the project corresponding to the analytic account of the sale order
# find the project corresponding to the analytic account of the sales order
account = procurement.sale_line_id.order_id.project_id
project_ids = project_project.search(cr, uid, [('analytic_account_id', '=', account.id)])
projects = project_project.browse(cr, uid, project_ids, context=context)

View File

@ -32,7 +32,7 @@
<field eval="&quot;&quot;&quot;subflow&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Trigger Invoice&quot;&quot;&quot;" name="name"/>
<field name="subflow_id" ref="account.process_process_invoiceprocess0"/>
<field eval="&quot;&quot;&quot;Trigger invoices from sale order lines&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Trigger invoices from sales order lines&quot;&quot;&quot;" name="note"/>
<field name="process_id" ref="project.process_process_tasksprocess0"/>
<field eval="&quot;&quot;&quot;object.state=='paid'&quot;&quot;&quot;" name="model_states"/>
<field eval="0" name="flow_start"/>

View File

@ -78,7 +78,7 @@
<!-- Menus -->
<record id="action_project_timesheet_bill_task" model="ir.actions.act_window">
<field name="name">Invoice Tasks Work</field>
<field name="name">Invoice Tasks</field>
<field name="res_model">account.analytic.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@ -100,7 +100,7 @@
<menuitem id="menu_project_billing" name="Invoicing"
parent="base.menu_main_pm" sequence="5"
groups="project.group_project_manager"/>
<menuitem id="menu_project_billing_line" name="Invoice Tasks Work"
<menuitem id="menu_project_billing_line" name="Invoice Tasks"
parent="menu_project_billing" action="action_project_timesheet_bill_task"/>
<!--

View File

@ -219,7 +219,7 @@
<record id="process_transition_packinginvoice0" model="process.transition">
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;From a Pick list&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;A Pick list generates an invoice. Depending on the Invoicing control of the sale order, the invoice is based on delivered or on ordered quantities.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;A Pick list generates an invoice. Depending on the Invoicing control of the sales order, the invoice is based on delivered or on ordered quantities.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="account.process_node_draftinvoices0"/>
<field model="process.node" name="source_node_id" ref="process_node_packinginvoice0"/>
</record>

View File

@ -168,10 +168,10 @@ class purchase_order(osv.osv):
_columns = {
'name': fields.char('Order Reference', size=64, required=True, select=True, help="Unique number of the purchase order, computed automatically when the purchase order is created."),
'origin': fields.char('Source Document', size=64,
help="Reference of the document that generated this purchase order request; a sale order or an internal procurement request."
help="Reference of the document that generated this purchase order request; a sales order or an internal procurement request."
),
'partner_ref': fields.char('Supplier Reference', states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, size=64,
help="Reference of the sale order or quotation sent by your supplier. It's mainly used to do the matching when you receive the products as this reference is usually written on the delivery order sent by your supplier."),
help="Reference of the sales order or quotation sent by your supplier. It's mainly used to do the matching when you receive the products as this reference is usually written on the delivery order sent by your supplier."),
'date_order':fields.date('Order Date', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, select=True, help="Date on which this document has been created."),
'date_approve':fields.date('Date Approved', readonly=1, select=True, help="Date on which purchase order has been approved"),
'partner_id':fields.many2one('res.partner', 'Supplier', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]},
@ -329,7 +329,7 @@ class purchase_order(osv.osv):
def view_invoice(self, cr, uid, ids, context=None):
'''
This function returns an action that display existing invoices of given sale order ids. It can either be a in a list or in a form view, if there is only one invoice to show.
This function returns an action that display existing invoices of given sales order ids. It can either be a in a list or in a form view, if there is only one invoice to show.
'''
mod_obj = self.pool.get('ir.model.data')
wizard_obj = self.pool.get('purchase.order.line_invoice')

View File

@ -8,7 +8,7 @@
<field name="name">Create invoices</field>
<field name="model">purchase.order.line_invoice</field>
<field name="arch" type="xml">
<form string="Select an Open Sale Order" version="7.0">
<form string="Select an Open Sales Order" version="7.0">
<group>
<label string="Do you want to generate the supplier invoices?"/>
</group>

View File

@ -24,7 +24,7 @@
'version': '1.0',
'category': 'Sales Management',
'sequence': 14,
'summary': 'Quotations, Sale Orders, Invoicing',
'summary': 'Quotations, Sales Orders, Invoicing',
'description': """
Manage sales quotations and orders
==================================

View File

@ -19,7 +19,7 @@
<!--Email template -->
<record id="email_template_edi_sale" model="email.template">
<field name="name">Sale Order - Send by Email</field>
<field name="name">Sales Order - Send by Email</field>
<field name="email_from">${object.user_id.email or ''}</field>
<field name="subject">${object.company_id.name} ${object.state in ('draft', 'sent') and 'Quotation' or 'Order'} (Ref ${object.name or 'n/a' })</field>
<field name="email_recipients">${object.partner_invoice_id.id}</field>

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<document filename="Sale Order.pdf">
<template title="Sale Order" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<document filename="Sales Order.pdf">
<template title="Sales Order" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="15.0" y1="42.0" width="539" height="758"/>
</pageTemplate>

View File

@ -27,9 +27,9 @@ class sale_configuration(osv.osv_memory):
_inherit = 'sale.config.settings'
_columns = {
'group_invoice_so_lines': fields.boolean('Generate invoices based on the sale order lines',
'group_invoice_so_lines': fields.boolean('Generate invoices based on the sales order lines',
implied_group='sale.group_invoice_so_lines',
help="To allow your salesman to make invoices for sale order lines using the menu 'Lines to Invoice'."),
help="To allow your salesman to make invoices for sales order lines using the menu 'Lines to Invoice'."),
'timesheet': fields.boolean('Prepare invoices based on timesheets',
help = """For modifying account analytic view to show important data to project manager of services companies.
You can also view the report of account analytic summary user-wise as well as month wise.
@ -48,9 +48,9 @@ Example: 10% for retailers, promotion of 5 EUR on this product, etc."""),
'group_uom':fields.boolean("Allow using different units of measures",
implied_group='product.group_uom',
help="""Allows you to select and maintain different units of measure for products."""),
'group_discount_per_so_line': fields.boolean("Allow setting a discount on the sale order lines",
'group_discount_per_so_line': fields.boolean("Allow setting a discount on the sales order lines",
implied_group='sale.group_discount_per_so_line',
help="Allows you to apply some discount per sale order line."),
help="Allows you to apply some discount per sales order line."),
'module_warning': fields.boolean("Allow configuring alerts by customer or products",
help="""Allow to configure notification on products and trigger them when a user wants to sale a given product or a given customer.
Example: Product: this product is deprecated, do not purchase more than 5.
@ -69,7 +69,7 @@ Example: Product: this product is deprecated, do not purchase more than 5.
But the possibility to change these values is still available.
This installs the module analytic_user_function."""),
'module_project': fields.boolean("Project"),
'module_sale_stock': fields.boolean("Trigger delivery orders automatically from sale orders",
'module_sale_stock': fields.boolean("Trigger delivery orders automatically from sales orders",
help="""Allows you to Make Quotation, Sale Order using different Order policy and Manage Related Stock.
This installs the module sale_stock."""),
}
@ -126,7 +126,7 @@ class account_config_settings(osv.osv_memory):
help="""This allows install module sale_analytic_plans."""),
'group_analytic_account_for_sales': fields.boolean('Analytic accounting for sales',
implied_group='sale.group_analytic_accounting',
help="Allows you to specify an analytic account on sale orders."),
help="Allows you to specify an analytic account on sales orders."),
}
def onchange_sale_analytic_plans(self, cr, uid, ids, module_sale_analytic_plans, context=None):

View File

@ -10,15 +10,15 @@
<field name="groups_id" eval="[(4, ref('base.group_sale_salesman'))]"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a quotation or sale order for this customer.
Click to create a quotation or sales order for this customer.
</p><p>
OpenERP will help you efficiently handle the complete sale flow:
quotation, sale order, delivery, invoicing and
quotation, sales order, delivery, invoicing and
payment.
</p><p>
The social feature helps you organize discussions on each sale
The social feature helps you organize discussions on each sales
order, and allow your customer to keep track of the evolution
of the sale order.
of the sales order.
</p>
</field>
</record>

View File

@ -189,12 +189,12 @@ class sale_order(osv.osv):
('sent', 'Quotation Sent'),
('cancel', 'Cancelled'),
('waiting_date', 'Waiting Schedule'),
('progress', 'Sale Order'),
('progress', 'Sales Order'),
('manual', 'Sale to Invoice'),
('invoice_except', 'Invoice Exception'),
('done', 'Done'),
], 'Status', readonly=True, track_visibility='onchange',
help="Gives the status of the quotation or sales order. \nThe exception status is automatically set when a cancel operation occurs in the processing of a document linked to the sale order. \nThe 'Waiting Schedule' status is set when the invoice is confirmed but waiting for the scheduler to run on the order date.", select=True),
help="Gives the status of the quotation or sales order. \nThe exception status is automatically set when a cancel operation occurs in the processing of a document linked to the sales order. \nThe 'Waiting Schedule' status is set when the invoice is confirmed but waiting for the scheduler to run on the order date.", select=True),
'date_order': fields.date('Date', required=True, readonly=True, select=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}),
'create_date': fields.datetime('Creation Date', readonly=True, select=True, help="Date on which sales order is created."),
'date_confirm': fields.date('Confirmation Date', readonly=True, select=True, help="Date on which sales order is confirmed."),
@ -217,7 +217,7 @@ class sale_order(osv.osv):
'invoiced': fields.function(_invoiced, string='Paid',
fnct_search=_invoiced_search, type='boolean', help="It indicates that an invoice has been paid."),
'invoice_exists': fields.function(_invoice_exists, string='Invoiced',
fnct_search=_invoiced_search, type='boolean', help="It indicates that sale order has at least one invoice."),
fnct_search=_invoiced_search, type='boolean', help="It indicates that sales order has at least one invoice."),
'note': fields.text('Terms and conditions'),
'amount_untaxed': fields.function(_amount_all, digits_compute=dp.get_precision('Account'), string='Untaxed Amount',
@ -239,7 +239,7 @@ class sale_order(osv.osv):
},
multi='sums', help="The total amount."),
'invoice_quantity': fields.selection([('order', 'Ordered Quantities')], 'Invoice on', help="The sale order will automatically create the invoice proposition (draft invoice).", required=True, readonly=True, states={'draft': [('readonly', False)]}),
'invoice_quantity': fields.selection([('order', 'Ordered Quantities')], 'Invoice on', help="The sales order will automatically create the invoice proposition (draft invoice).", required=True, readonly=True, states={'draft': [('readonly', False)]}),
'payment_term': fields.many2one('account.payment.term', 'Payment Term'),
'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position'),
'company_id': fields.related('shop_id','company_id',type='many2one',relation='res.company',string='Company',store=True,readonly=True)
@ -267,7 +267,7 @@ class sale_order(osv.osv):
if s['state'] in ['draft', 'cancel']:
unlink_ids.append(s['id'])
else:
raise osv.except_osv(_('Invalid Action!'), _('In order to delete a confirmed sale order, you must cancel it before !'))
raise osv.except_osv(_('Invalid Action!'), _('In order to delete a confirmed sales order, you must cancel it before !'))
return osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
@ -342,7 +342,7 @@ class sale_order(osv.osv):
def _prepare_invoice(self, cr, uid, order, lines, context=None):
"""Prepare the dict of values to create the new invoice for a
sale order. This method may be overridden to implement custom
sales order. This method may be overridden to implement custom
invoice generation (making sure to call super() to establish
a clean extension chain).
@ -407,7 +407,7 @@ class sale_order(osv.osv):
def print_quotation(self, cr, uid, ids, context=None):
'''
This function prints the sale order and mark it as sent, so that we can see more easily the next step of the workflow
This function prints the sales order and mark it as sent, so that we can see more easily the next step of the workflow
'''
assert len(ids) == 1, 'This option should only be used for a single id at a time'
wf_service = netsvc.LocalService("workflow")
@ -420,13 +420,13 @@ class sale_order(osv.osv):
return {'type': 'ir.actions.report.xml', 'report_name': 'sale.order', 'datas': datas, 'nodestroy': True}
def manual_invoice(self, cr, uid, ids, context=None):
""" create invoices for the given sale orders (ids), and open the form
""" create invoices for the given sales orders (ids), and open the form
view of one of the newly created invoices
"""
mod_obj = self.pool.get('ir.model.data')
wf_service = netsvc.LocalService("workflow")
# create invoices through the sale orders' workflow
# create invoices through the sales orders' workflow
inv_ids0 = set(inv.id for sale in self.browse(cr, uid, ids, context) for inv in sale.invoice_ids)
for id in ids:
wf_service.trg_validate(uid, 'sale.order', id, 'manual_invoice', cr)
@ -452,7 +452,7 @@ class sale_order(osv.osv):
def action_view_invoice(self, cr, uid, ids, context=None):
'''
This function returns an action that display existing invoices of given sale order ids. It can either be a in a list or in a form view, if there is only one invoice to show.
This function returns an action that display existing invoices of given sales order ids. It can either be a in a list or in a form view, if there is only one invoice to show.
'''
mod_obj = self.pool.get('ir.model.data')
act_obj = self.pool.get('ir.actions.act_window')
@ -570,7 +570,7 @@ class sale_order(osv.osv):
wf_service = netsvc.LocalService('workflow')
wf_service.trg_validate(uid, 'sale.order', ids[0], 'order_confirm', cr)
# redisplay the record as a sale order
# redisplay the record as a sales order
view_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'sale', 'view_order_form')
view_id = view_ref and view_ref[1] or False,
return {
@ -589,7 +589,7 @@ class sale_order(osv.osv):
context = context or {}
for o in self.browse(cr, uid, ids):
if not o.order_line:
raise osv.except_osv(_('Error!'),_('You cannot confirm a sale order which has no line.'))
raise osv.except_osv(_('Error!'),_('You cannot confirm a sales order which has no line.'))
noprod = self.test_no_product(cr, uid, o, context)
if (o.order_policy == 'manual') or noprod:
self.write(cr, uid, [o.id], {'state': 'manual', 'date_confirm': fields.date.context_today(self, cr, uid, context=context)})
@ -735,7 +735,7 @@ class sale_order_line(osv.osv):
def _prepare_order_line_invoice_line(self, cr, uid, line, account_id=False, context=None):
"""Prepare the dict of values to create the new invoice line for a
sale order line. This method may be overridden to implement custom
sales order line. This method may be overridden to implement custom
invoice generation (making sure to call super() to establish
a clean extension chain).
@ -809,7 +809,7 @@ class sale_order_line(osv.osv):
def button_cancel(self, cr, uid, ids, context=None):
for line in self.browse(cr, uid, ids, context=context):
if line.invoiced:
raise osv.except_osv(_('Invalid Action!'), _('You cannot cancel a sale order line that has already been invoiced.'))
raise osv.except_osv(_('Invalid Action!'), _('You cannot cancel a sales order line that has already been invoiced.'))
return self.write(cr, uid, ids, {'state': 'cancel'})
def button_confirm(self, cr, uid, ids, context=None):

View File

@ -51,7 +51,7 @@
<field name="description">Quotation send</field>
</record>
<record id="mt_order_confirmed" model="mail.message.subtype">
<field name="name">Sale Order Confirmed</field>
<field name="name">Sales Order Confirmed</field>
<field name="res_model">sale.order</field>
<field name="description">Quotation confirmed</field>
</record>

View File

@ -58,7 +58,7 @@
<p class="oe_view_nocontent_create">
Click to define a new sale shop.
</p><p>
Each quotation or sale order must be linked to a shop. The
Each quotation or sales order must be linked to a shop. The
shop also defines the warehouse from which the products will be
delivered for each particular sales.
</p>
@ -148,7 +148,7 @@
<sheet>
<h1>
<label string="Quotation " attrs="{'invisible': [('state','not in',('draft','sent'))]}"/>
<label string="Sale Order " attrs="{'invisible': [('state','in',('draft','sent'))]}"/>
<label string="Sales Order " attrs="{'invisible': [('state','in',('draft','sent'))]}"/>
<field name="name" class="oe_inline" readonly="1"/>
</h1>
<group>
@ -307,7 +307,7 @@
<filter icon="terp-dolar_ok!" string="To Invoice" domain="[('state','=','manual')]" help="Sales Order ready to be invoiced"/>
<filter icon="terp-dolar_ok!" string="Done" domain="[('state','=','done')]" help="Sales Order done"/>
<separator/>
<filter string="My Sale Orders" domain="[('user_id','=',uid)]" help="My Sale Orders" icon="terp-personal" name="my_sale_orders_filter"/>
<filter string="My Sales Orders" domain="[('user_id','=',uid)]" help="My Sales Orders" icon="terp-personal" name="my_sale_orders_filter"/>
<field name="partner_id"/>
<field name="user_id"/>
<field name="project_id"/>
@ -322,7 +322,7 @@
</record>
<record id="action_orders" model="ir.actions.act_window">
<field name="name">Sale Orders</field>
<field name="name">Sales Orders</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order</field>
<field name="view_type">form</field>
@ -332,11 +332,11 @@
<field name="domain">[('state','not in',('draft','sent','cancel'))]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a quotation that can be converted into a sale
Click to create a quotation that can be converted into a sales
order.
</p><p>
OpenERP will help you efficiently handle the complete sales flow:
quotation, sale order, delivery, invoicing and payment.
quotation, sales order, delivery, invoicing and payment.
</p>
</field>
</record>
@ -379,12 +379,12 @@
Click to create a quotation, the first step of a new sale.
</p><p>
OpenERP will help you handle efficiently the complete sale flow:
from the quotation to the sale order, the
from the quotation to the sales order, the
delivery, the invoicing and the payment collection.
</p><p>
The social feature helps you organize discussions on each sale
The social feature helps you organize discussions on each sales
order, and allow your customers to keep track of the evolution
of the sale order.
of the sales order.
</p>
</field>
</record>
@ -468,7 +468,7 @@
<field name="model">sale.order.line</field>
<field name="arch" type="xml">
<search string="Search Sales Order">
<filter icon="terp-dolar_ok!" string="To Invoice" domain="[('invoiced','&lt;&gt;', 1),('state','=','done')]" help="Sale Order Lines ready to be invoiced"/>
<filter icon="terp-dolar_ok!" string="To Invoice" domain="[('invoiced','&lt;&gt;', 1),('state','=','done')]" help="Sales Order Lines ready to be invoiced"/>
<separator/>
<filter string="My Sales Order Lines" icon="terp-personnal" domain="[('salesman_id','=',uid)]" help="Sales Order Lines related to a Sales Order of mine"/>
<field name="order_id"/>
@ -490,11 +490,11 @@
<field name="model">sale.order.line</field>
<field name="arch" type="xml">
<search string="Search Uninvoiced Lines">
<filter icon="terp-gtk-go-back-rtl" string="To Do" domain="[('state','=','confirmed')]" name="sale order" help="Confirmed sale order lines, not yet delivered"/>
<filter icon="terp-dialog-close" string="Done" domain="[('state','=','done')]" name="sale_order_done" help="Sale order lines done"/>
<filter icon="terp-accessories-archiver" string="Shipped" domain="[('state','=','done')]" name="unshipped" help="Sale Order Lines that are in 'done' state"/>
<filter icon="terp-gtk-go-back-rtl" string="To Do" domain="[('state','=','confirmed')]" name="sale order" help="Confirmed sales order lines, not yet delivered"/>
<filter icon="terp-dialog-close" string="Done" domain="[('state','=','done')]" name="sale_order_done" help="Sales order lines done"/>
<filter icon="terp-accessories-archiver" string="Shipped" domain="[('state','=','done')]" name="unshipped" help="Sales Order Lines that are in 'done' state"/>
<separator/>
<filter icon="terp-dolar_ok!" string="Uninvoiced" name="uninvoiced" domain="[('invoiced','&lt;&gt;', 1),('state','&lt;&gt;','draft'),('state','&lt;&gt;','cancel')]" help="Sale Order Lines that are confirmed, done or in exception state and haven't yet been invoiced"/>
<filter icon="terp-dolar_ok!" string="Uninvoiced" name="uninvoiced" domain="[('invoiced','&lt;&gt;', 1),('state','&lt;&gt;','draft'),('state','&lt;&gt;','cancel')]" help="Sales Order Lines that are confirmed, done or in exception state and haven't yet been invoiced"/>
<separator/>
<filter string="My Sales Order Lines" icon="terp-personal" domain="[('salesman_id','=',uid)]" help="My Sales Order Lines"/>
<field name="order_id"/>

View File

@ -25,12 +25,12 @@
</record>
<record id="group_invoice_so_lines" model="res.groups">
<field name="name">Enable Invoicing Sale order lines</field>
<field name="name">Enable Invoicing Sales order lines</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
<record id="group_delivery_invoice_address" model="res.groups">
<field name="name">Addresses in Sale Orders</field>
<field name="name">Addresses in Sales Orders</field>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
@ -65,14 +65,14 @@
<!-- Multi - Company Rules -->
<record model="ir.rule" id="sale_order_comp_rule">
<field name="name">Sale Order multi-company</field>
<field name="name">Sales Order multi-company</field>
<field name="model_id" ref="model_sale_order"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="sale_order_line_comp_rule">
<field name="name">Sale Order Line multi-company</field>
<field name="name">Sales Order Line multi-company</field>
<field name="model_id" ref="model_sale_order_line"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>

View File

@ -7,8 +7,8 @@
<field name="arch" type="xml">
<form string="Create invoices" version="7.0">
<p class="oe_grey">
All items in these order lines will be invoiced. You can also invoice a percentage of the sale order
or a fixed price (for advances) directly from the sale order form if you prefer.
All items in these order lines will be invoiced. You can also invoice a percentage of the sales order
or a fixed price (for advances) directly from the sales order form if you prefer.
</p>
<footer>
<button name="make_invoices" string="Create &amp; View Invoice" type="object"

View File

@ -28,13 +28,13 @@ class sale_advance_payment_inv(osv.osv_memory):
_columns = {
'advance_payment_method':fields.selection(
[('all', 'Invoice the whole sale order'), ('percentage','Percentage'), ('fixed','Fixed price (deposit)'),
[('all', 'Invoice the whole sales order'), ('percentage','Percentage'), ('fixed','Fixed price (deposit)'),
('lines', 'Some order lines')],
'What do you want to invoice?', required=True,
help="""Use All to create the final invoice.
Use Percentage to invoice a percentage of the total amount.
Use Fixed Price to invoice a specific amound in advance.
Use Some Order Lines to invoice a selection of the sale order lines."""),
Use Some Order Lines to invoice a selection of the sales order lines."""),
'qtty': fields.float('Quantity', digits=(16, 2), required=True),
'product_id': fields.many2one('product.product', 'Advance Product',
help="""Select a product of type service which is called 'Advance Product'.
@ -154,26 +154,26 @@ class sale_advance_payment_inv(osv.osv_memory):
sale_obj = self.pool.get('sale.order')
inv_id = inv_obj.create(cr, uid, inv_values, context=context)
inv_obj.button_reset_taxes(cr, uid, [inv_id], context=context)
# add the invoice to the sale order's invoices
# add the invoice to the sales order's invoices
sale_obj.write(cr, uid, sale_id, {'invoice_ids': [(4, inv_id)]}, context=context)
return inv_id
def create_invoices(self, cr, uid, ids, context=None):
""" create invoices for the active sale orders """
""" create invoices for the active sales orders """
sale_obj = self.pool.get('sale.order')
act_window = self.pool.get('ir.actions.act_window')
wizard = self.browse(cr, uid, ids[0], context)
sale_ids = context.get('active_ids', [])
if wizard.advance_payment_method == 'all':
# create the final invoices of the active sale orders
# create the final invoices of the active sales orders
res = sale_obj.manual_invoice(cr, uid, sale_ids, context)
if context.get('open_invoices', False):
return res
return {'type': 'ir.actions.act_window_close'}
if wizard.advance_payment_method == 'lines':
# open the list view of sale order lines to invoice
# open the list view of sales order lines to invoice
res = act_window.for_xml_id(cr, uid, 'sale', 'action_order_line_tree2', context)
res['context'] = {
'search_default_uninvoiced': 1,

View File

@ -5,7 +5,7 @@
<field name="name">Invoice Order</field>
<field name="model">sale.advance.payment.inv</field>
<field name="arch" type="xml">
<form string="Invoice Sale Order" version="7.0">
<form string="Invoice Sales Order" version="7.0">
<p class="oe_grey">
Select how you want to invoice this order. This
will create a draft invoice that can be modified

View File

@ -10,7 +10,7 @@
<field name="relation_field">section_id</field>
</record>
<record id="mt_salesteam_order_confirmed" model="mail.message.subtype">
<field name="name">Sale Order Confirmed</field>
<field name="name">Sales Order Confirmed</field>
<field name="res_model">crm.case.section</field>
<field name="parent_id" eval="ref('sale.mt_order_confirmed')"/>
<field name="relation_field">section_id</field>

View File

@ -145,7 +145,7 @@ class crm_make_sale(osv.osv_memory):
_columns = {
'shop_id': fields.many2one('sale.shop', 'Shop', required=True),
'partner_id': fields.many2one('res.partner', 'Customer', required=True, domain=[('customer','=',True)]),
'close': fields.boolean('Mark Won', help='Check this to close the opportunity after having created the sale order.'),
'close': fields.boolean('Mark Won', help='Check this to close the opportunity after having created the sales order.'),
}
_defaults = {
'shop_id': _get_shop_id,

View File

@ -28,8 +28,8 @@
Add additional date information to the sales order.
===================================================
You can add the following additional dates to a sale order:
-----------------------------------------------------------
You can add the following additional dates to a sales order:
------------------------------------------------------------
* Requested Date
* Commitment Date
* Effective Date

View File

@ -29,7 +29,7 @@ class sale_configuration(osv.osv_memory):
_columns = {
'group_sale_delivery_address': fields.boolean("Allow a different address for delivery and invoicing ",
implied_group='sale.group_delivery_invoice_address',
help="Allows you to specify different delivery and invoice addresses on a sale order."),
help="Allows you to specify different delivery and invoice addresses on a sales order."),
'group_invoice_deli_orders': fields.boolean('Generate invoices after and based on delivery orders',
implied_group='sale_stock.group_invoice_deli_orders',
help="To allow your salesman to make invoices for Delivery Orders using the menu 'Deliveries to Invoice'."),
@ -43,14 +43,14 @@ class sale_configuration(osv.osv_memory):
'The default invoicing method is', default_model='sale.order',
help="You can generate invoices based on sales orders or based on shippings."),
'module_delivery': fields.boolean('Allow adding shipping costs',
help ="""Allows you to add delivery methods in sale orders and delivery orders.
help ="""Allows you to add delivery methods in sales orders and delivery orders.
You can define your own carrier and delivery grids for prices.
This installs the module delivery."""),
'default_picking_policy' : fields.boolean("Deliver all at once when all products are available.",
help = "Sales order by default will be configured to deliver all products at once instead of delivering each product when it is available. This may have an impact on the shipping price."),
'group_mrp_properties': fields.boolean('Product properties on order lines',
implied_group='sale.group_mrp_properties',
help="Allows you to tag sale order lines with properties."),
help="Allows you to tag sales order lines with properties."),
'group_multiple_shops': fields.boolean("Manage multiple shops",
implied_group='stock.group_locations',
help="This allows to configure and use multiple shops."),

View File

@ -118,7 +118,7 @@ class sale_order(osv.osv):
('sent', 'Quotation Sent'),
('cancel', 'Cancelled'),
('waiting_date', 'Waiting Schedule'),
('progress', 'Sale Order'),
('progress', 'Sales Order'),
('manual', 'Sale to Invoice'),
('shipping_except', 'Shipping Exception'),
('invoice_except', 'Invoice Exception'),
@ -141,7 +141,7 @@ class sale_order(osv.osv):
'shipped': fields.boolean('Delivered', readonly=True, help="It indicates that the sales order has been delivered. This field is updated only after the scheduler(s) have been launched."),
'picked_rate': fields.function(_picked_rate, string='Picked', type='float'),
'invoice_quantity': fields.selection([('order', 'Ordered Quantities'), ('procurement', 'Shipped Quantities')], 'Invoice on',
help="The sale order will automatically create the invoice proposition (draft invoice).\
help="The sales order will automatically create the invoice proposition (draft invoice).\
You have to choose if you want your invoice based on ordered ", required=True, readonly=True, states={'draft': [('readonly', False)]}),
}
_defaults = {
@ -164,7 +164,7 @@ class sale_order(osv.osv):
def action_view_delivery(self, cr, uid, ids, context=None):
'''
This function returns an action that display existing delivery orders of given sale order ids. It can either be a in a list or in a form view, if there is only one delivery order to show.
This function returns an action that display existing delivery orders of given sales order ids. It can either be a in a list or in a form view, if there is only one delivery order to show.
'''
mod_obj = self.pool.get('ir.model.data')
act_obj = self.pool.get('ir.actions.act_window')
@ -329,8 +329,8 @@ class sale_order(osv.osv):
# FIXME: deals with potentially cancelled shipments, seems broken (specially if shipment has production lot)
"""
Define ship_recreate for process after shipping exception
param order: sale order to which the order lines belong
param line: sale order line records to procure
param order: sales order to which the order lines belong
param line: sales order line records to procure
param move_id: the ID of stock move
param proc_id: the ID of procurement
"""
@ -353,9 +353,9 @@ class sale_order(osv.osv):
return date_planned
def _create_pickings_and_procurements(self, cr, uid, order, order_lines, picking_id=False, context=None):
"""Create the required procurements to supply sale order lines, also connecting
"""Create the required procurements to supply sales order lines, also connecting
the procurements to appropriate stock moves in order to bring the goods to the
sale order's requested location.
sales order's requested location.
If ``picking_id`` is provided, the stock moves will be added to it, otherwise
a standard outgoing picking will be created to wrap the stock moves, as returned
@ -365,8 +365,8 @@ class sale_order(osv.osv):
multiple stock pickings may override this method and call ``super()`` with
different subsets of ``order_lines`` and/or preset ``picking_id`` values.
:param browse_record order: sale order to which the order lines belong
:param list(browse_record) order_lines: sale order line records to procure
:param browse_record order: sales order to which the order lines belong
:param list(browse_record) order_lines: sales order line records to procure
:param int picking_id: optional ID of a stock picking to which the created stock moves
will be added. A new picking will be created if ommitted.
:return: True

View File

@ -50,7 +50,7 @@ class stock_picking(osv.osv):
def _get_partner_to_invoice(self, cr, uid, picking, context=None):
""" Inherit the original function of the 'stock' module
We select the partner of the sale order as the partner of the customer invoice
We select the partner of the sales order as the partner of the customer invoice
"""
if picking.sale_id:
return picking.sale_id.partner_id
@ -63,7 +63,7 @@ class stock_picking(osv.osv):
def _prepare_invoice(self, cr, uid, picking, partner, inv_type, journal_id, context=None):
""" Inherit the original function of the 'stock' module in order to override some
values if the picking has been generated by a sale order
values if the picking has been generated by a sales order
"""
invoice_vals = super(stock_picking, self)._prepare_invoice(cr, uid, picking, partner, inv_type, journal_id, context=context)
if picking.sale_id:

View File

@ -49,7 +49,7 @@ This installs the module product_expiry."""),
'group_uom': fields.boolean("Manage different units of measure for products",
implied_group='product.group_uom',
help="""Allows you to select and maintain different units of measure for products."""),
'group_uos': fields.boolean("Invoice products in a different unit of measure than the sale order",
'group_uos': fields.boolean("Invoice products in a different unit of measure than the sales order",
implied_group='product.group_uos',
help="""Allows you to sell units of a product, but invoice based on a different unit of measure.
For instance, you can sell pieces of meat that you invoice based on their weight."""),

View File

@ -2048,7 +2048,7 @@ class stock_move(osv.osv):
# name of new picking according to its type
new_pick_name = seq_obj.get(cr, uid, 'stock.picking.' + ptype)
pickid = self._create_chained_picking(cr, uid, new_pick_name, picking, ptype, todo, context=context)
# Need to check name of old picking because it always considers picking as "OUT" when created from Sale Order
# Need to check name of old picking because it always considers picking as "OUT" when created from Sales Order
old_ptype = location_obj.picking_type_get(cr, uid, picking.move_lines[0].location_id, picking.move_lines[0].location_dest_id)
if old_ptype != picking.type:
old_pick_name = seq_obj.get(cr, uid, 'stock.picking.' + old_ptype)

View File

@ -34,8 +34,8 @@ WARNING_HELP = _('Selecting the "Warning" option will notify user with the messa
class res_partner(osv.osv):
_inherit = 'res.partner'
_columns = {
'sale_warn' : fields.selection(WARNING_MESSAGE, 'Sale Order', help=WARNING_HELP, required=True),
'sale_warn_msg' : fields.text('Message for Sale Order'),
'sale_warn' : fields.selection(WARNING_MESSAGE, 'Sales Order', help=WARNING_HELP, required=True),
'sale_warn_msg' : fields.text('Message for Sales Order'),
'purchase_warn' : fields.selection(WARNING_MESSAGE, 'Purchase Order', help=WARNING_HELP, required=True),
'purchase_warn_msg' : fields.text('Message for Purchase Order'),
'picking_warn' : fields.selection(WARNING_MESSAGE, 'Stock Picking', help=WARNING_HELP, required=True),
@ -232,8 +232,8 @@ class stock_picking_out(osv.osv):
class product_product(osv.osv):
_inherit = 'product.product'
_columns = {
'sale_line_warn' : fields.selection(WARNING_MESSAGE,'Sale Order Line', help=WARNING_HELP, required=True),
'sale_line_warn_msg' : fields.text('Message for Sale Order Line'),
'sale_line_warn' : fields.selection(WARNING_MESSAGE,'Sales Order Line', help=WARNING_HELP, required=True),
'sale_line_warn_msg' : fields.text('Message for Sales Order Line'),
'purchase_line_warn' : fields.selection(WARNING_MESSAGE,'Purchase Order Line', help=WARNING_HELP, required=True),
'purchase_line_warn_msg' : fields.text('Message for Purchase Order Line'),
}

View File

@ -10,7 +10,7 @@
<notebook position="inside">
<page string="Warnings">
<group colspan="2" col="2">
<separator string="Warning on the Sale Order" colspan="4"/>
<separator string="Warning on the Sales Order" colspan="4"/>
<field name="sale_warn" nolabel="1" />
<field name="sale_warn_msg" colspan="3" nolabel="1"
attrs="{'required':[('sale_warn','!=','no-message')],'readonly':[('sale_warn','=','no-message')]}"/>