[MERGE] lp:openobject-addons

bzr revid: jam@tinyerp.com-20120628043300-y3hc96fwwzvoe9hv
This commit is contained in:
Jigar Amin - OpenERP 2012-06-28 10:03:00 +05:30
commit bf65bf1223
77 changed files with 781 additions and 567 deletions

View File

@ -96,7 +96,7 @@ class account_config_settings(osv.osv_memory):
'module_account_voucher': fields.boolean('Manage Customer Payments',
help="""This includes all the basic requirements of voucher entries for bank, cash, sales, purchase, expense, contra, etc.
This installs the module account_voucher."""),
'module_account_followup': fields.boolean('Manage Customer Payment Follow-Ups',
'module_account_followup': fields.boolean('Manage Customer Payment Follow-ups',
help="""This allows to automate letters for unpaid invoices, with multi-level recalls.
This installs the module account_followup."""),
'module_account_invoice_layout': fields.boolean('Allow Notes and Subtotals',

View File

@ -20,7 +20,7 @@
##############################################################################
{
'name': 'Followup Management',
'name': 'Follow-up Management',
'version': '1.0',
'category': 'Accounting & Finance',
'description': """
@ -28,16 +28,16 @@ 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
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 followups
Accounting/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 followup level for a given partner/account entry, you can do from in 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
""",

View File

@ -23,11 +23,11 @@ from osv import fields, osv
class followup(osv.osv):
_name = 'account_followup.followup'
_description = 'Account Follow Up'
_description = 'Account Follow-up'
_columns = {
'name': fields.char('Name', size=64, required=True),
'description': fields.text('Description'),
'followup_line': fields.one2many('account_followup.followup.line', 'followup_id', 'Follow-Up'),
'followup_line': fields.one2many('account_followup.followup.line', 'followup_id', 'Follow-up'),
'company_id': fields.many2one('res.company', 'Company', required=True),
}
_defaults = {
@ -38,7 +38,7 @@ followup()
class followup_line(osv.osv):
_name = 'account_followup.followup.line'
_description = 'Follow-Up Criteria'
_description = 'Follow-up Criteria'
_columns = {
'name': fields.char('Name', size=64, required=True),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of follow-up lines."),

View File

@ -3,7 +3,7 @@
<data noupdate="1">
<record id="demo_followup1" model="account_followup.followup">
<field name="name">Default Follow-Up</field>
<field name="name">Default Follow-up</field>
<field name="company_id" ref="base.main_company"/>
<field name="description">First letter after 15 net days, 30 net days and 45 days end of month levels.</field>
</record>

View File

@ -6,7 +6,7 @@
<field name="model">account_followup.followup.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Follow-Up Steps">
<tree string="Follow-up Steps">
<field name="name"/>
<field name="delay"/>
<field name="start"/>
@ -19,7 +19,7 @@
<field name="model">account_followup.followup.line</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Follow-Up Steps" version="7.0">
<form string="Follow-up Steps" version="7.0">
<group col="4">
<field name="name"/>
<field name="delay"/>
@ -43,7 +43,7 @@
<field name="model">account_followup.followup</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Follow-Up" version="7.0">
<form string="Follow-up" version="7.0">
<group col="4">
<field name="name"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
@ -58,7 +58,7 @@
<field name="model">account_followup.followup</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Follow-Up">
<tree string="Follow-up">
<field name="name"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
@ -70,9 +70,9 @@
<field name="model">account_followup.followup</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Followup">
<search string="Search Follow-up">
<group>
<field name="name" string="Followup"/>
<field name="name" string="Follow-up"/>
<separator orientation="vertical"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
@ -81,16 +81,16 @@
</record>
<record id="action_account_followup_definition_form" model="ir.actions.act_window">
<field name="name">Follow-Ups</field>
<field name="name">Follow-ups</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account_followup.followup</field>
<field name="search_view_id" ref="view_account_followup_filter"/>
<field name="view_type">form</field>
<field name="help">Define follow up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages.</field>
<field name="help">Define follow-up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages.</field>
</record>
<menuitem action="action_account_followup_definition_form" id="account_followup_menu" parent="account.menu_configuration_misc"/>
<report auto="False" id="account_followup_followup_report" menu="False" model="account_followup.followup" name="account_followup.followup.print" rml="account_followup/report/account_followup_print.rml" string="Followup Report"/>
<report auto="False" id="account_followup_followup_report" menu="False" model="account_followup.followup" name="account_followup.followup.print" rml="account_followup/report/account_followup_print.rml" string="Follow-up Report"/>
<record id="account_move_line_partner_tree" model="ir.ui.view">
<field name="name">account.move.line.partner.tree</field>

View File

@ -17,7 +17,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.followup:0
msgid "Search Followup"
msgid "Search Follow-up"
msgstr ""
#. module: account_followup
@ -34,12 +34,12 @@ msgstr ""
#. module: account_followup
#: view:account_followup.followup:0
#: field:account_followup.followup,followup_line:0
msgid "Follow-Up"
msgid "Follow-up"
msgstr ""
#. module: account_followup
#: help:account.followup.print.all,test_print:0
msgid "Check if you want to print followups without changing followups level."
msgid "Check if you want to print follow-ups without changing follow-ups level."
msgstr ""
#. module: account_followup
@ -80,7 +80,7 @@ msgstr ""
#. module: account_followup
#: model:ir.actions.act_window,help:account_followup.action_followup_stat
msgid "Follow up on the reminders sent over to your partners for unpaid invoices."
msgid "Follow-up on the reminders sent over to your partners for unpaid invoices."
msgstr ""
#. module: account_followup
@ -91,7 +91,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Follow up Entries with period in current year"
msgid "Follow-up Entries with period in current year"
msgstr ""
#. module: account_followup
@ -117,7 +117,7 @@ msgstr ""
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.action_account_followup_definition_form
#: model:ir.ui.menu,name:account_followup.account_followup_menu
msgid "Follow-Ups"
msgid "Follow-ups"
msgstr ""
#. module: account_followup
@ -175,7 +175,7 @@ msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_followup
msgid "Account Follow Up"
msgid "Account Follow-up"
msgstr ""
#. module: account_followup
@ -227,7 +227,7 @@ msgstr ""
#. module: account_followup
#: field:account_followup.stat,date_followup:0
#: field:account_followup.stat.by.partner,date_followup:0
msgid "Latest followup"
msgid "Latest follow-up"
msgstr ""
#. module: account_followup
@ -269,7 +269,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account_followup.action_account_followup_print
#: model:ir.actions.act_window,name:account_followup.action_account_followup_print_all
#: model:ir.ui.menu,name:account_followup.account_followup_print_menu
msgid "Send followups"
msgid "Send follow-ups"
msgstr ""
#. module: account_followup
@ -280,13 +280,13 @@ msgstr ""
#. module: account_followup
#: field:account_followup.followup.line,followup_id:0
#: field:account_followup.stat,followup_id:0
msgid "Follow Ups"
msgid "Follow-ups"
msgstr ""
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:296
#, python-format
msgid "All E-mails have been successfully sent to Partners:.\n"
msgid "All Emails have been successfully sent to Partners:.\n"
"\n"
"%s"
msgstr ""
@ -308,7 +308,7 @@ msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_stat_by_partner
msgid "Followup Statistics by Partner"
msgid "Follow-up Statistics by Partner"
msgstr ""
#. module: account_followup
@ -326,7 +326,7 @@ msgstr ""
#, python-format
msgid "\n"
"\n"
"E-Mail sent to following Partners successfully. !\n"
"Email sent to following Partners successfully. !\n"
"\n"
"%s"
msgstr ""
@ -354,7 +354,7 @@ msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "Print Follow Ups"
msgid "Print Follow-ups"
msgstr ""
#. module: account_followup
@ -364,7 +364,7 @@ msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_stat
msgid "Followup Statistics"
msgid "Follow-up Statistics"
msgstr ""
#. module: account_followup
@ -430,7 +430,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Follow-Up lines"
msgid "Follow-up lines"
msgstr ""
#. module: account_followup
@ -453,7 +453,7 @@ msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_print
#: model:ir.model,name:account_followup.model_account_followup_print_all
msgid "Print Followup & Send Mail to Customers"
msgid "Print Follow-up & Send Mail to Customers"
msgstr ""
#. module: account_followup
@ -464,12 +464,12 @@ msgstr ""
#. module: account_followup
#: model:ir.actions.report.xml,name:account_followup.account_followup_followup_report
msgid "Followup Report"
msgid "Follow-up Report"
msgstr ""
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "Follow-Up Steps"
msgid "Follow-up Steps"
msgstr ""
#. module: account_followup
@ -480,7 +480,7 @@ msgstr ""
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:307
#, python-format
msgid "Followup Summary"
msgid "Follow-up Summary"
msgstr ""
#. module: account_followup
@ -496,12 +496,12 @@ msgstr ""
#. module: account_followup
#: field:account_followup.stat.by.partner,max_followup_id:0
msgid "Max Follow Up Level"
msgid "Max Follow-up Level"
msgstr ""
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.action_view_account_followup_followup_form
msgid "Review Invoicing Follow-Ups"
msgid "Review Invoicing Follow-ups"
msgstr ""
#. module: account_followup
@ -511,7 +511,7 @@ msgstr ""
#. module: account_followup
#: model:ir.actions.act_window,help:account_followup.action_account_followup_definition_form
msgid "Define follow up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages."
msgid "Define follow-up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages."
msgstr ""
#. module: account_followup
@ -522,7 +522,7 @@ msgstr ""
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:298
#, python-format
msgid "E-Mail not sent to following Partners, E-mail not available !\n"
msgid "Email not sent to following Partners, Email not available !\n"
"\n"
"%s"
msgstr ""
@ -545,7 +545,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Followup Level"
msgid "Follow-up Level"
msgstr ""
#. module: account_followup
@ -556,7 +556,7 @@ msgstr ""
#. module: account_followup
#: constraint:account_followup.followup:0
msgid "Only One Followup by Company."
msgid "Only One Follow-up by Company."
msgstr ""
#. module: account_followup
@ -682,11 +682,11 @@ msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Latest Followup Date"
msgid "Latest Follow-up Date"
msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_followup_line
msgid "Follow-Up Criteria"
msgid "Follow-up Criteria"
msgstr ""

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<document filename="Account Followup.pdf">
<template title="Account Followup" author="OpenERP S.A. (sales@openerp.com)" allowSplitting="20">
<document filename="Account Follow-up.pdf">
<template title="Account Follow-up" author="OpenERP S.A. (sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="31.0" y1="28.0" width="532" height="786"/>
</pageTemplate>

View File

@ -24,7 +24,7 @@ import tools
class account_followup_stat(osv.osv):
_name = "account_followup.stat"
_description = "Followup Statistics"
_description = "Follow-up Statistics"
_rec_name = 'partner_id'
_auto = False
_columns = {

View File

@ -7,7 +7,7 @@
<field name="model">account_followup.stat</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Follow-Up lines">
<tree string="Follow-up lines">
<field name="partner_id"/>
<field name="date_move"/>
<field name="date_move_last"/>
@ -28,7 +28,7 @@
<field name="model">account_followup.stat</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Follow-Up lines" type="bar">
<graph string="Follow-up lines" type="bar">
<field name="partner_id"/>
<field name="balance" operator="+"/>
</graph>
@ -47,7 +47,7 @@
<filter icon="terp-go-year" string="This Fiscal year"
name="fiscalyear"
domain="[('period_id','in','current_year')]"
help="Follow up Entries with period in current year"/>
help="Follow-up Entries with period in current year"/>
<separator orientation="vertical"/>
<filter icon="terp-camera_test" string="Not Litigation"
domain="[('blocked','=', False)]"
@ -62,8 +62,8 @@
<separator orientation="vertical"/>
<filter string="Litigation" icon="terp-camera_test" context="{'group_by':'blocked'}" />
<separator orientation="vertical"/>
<filter string="Followup Level" icon="terp-stock_effects-object-colorize" name="followup_level" context="{'group_by':'followup_id'}" />
<filter string="Latest Followup Date" icon="terp-go-month" context="{'group_by':'date_followup'}" />
<filter string="Follow-up Level" icon="terp-stock_effects-object-colorize" name="followup_level" context="{'group_by':'followup_id'}" />
<filter string="Latest Follow-up Date" icon="terp-go-month" context="{'group_by':'date_followup'}" />
<separator orientation="vertical" groups="base.group_multi_company"/>
<filter string="Company" groups="base.group_multi_company" icon="terp-go-home" context="{'group_by':'company_id'}" />
</group>
@ -77,7 +77,7 @@
<field name="view_mode">tree,graph</field>
<field name="context">{'search_default_followup_level':1}</field>
<field name="search_view_id" ref="view_account_followup_stat_search"/>
<field name="help">Follow up on the reminders sent over to your partners for unpaid invoices.</field>
<field name="help">Follow-up on the reminders sent over to your partners for unpaid invoices.</field>
</record>
<menuitem action="action_followup_stat" id="menu_action_followup_stat_follow" parent="account.next_id_22" groups="account.group_account_user"/>

View File

@ -3,14 +3,14 @@
<data>
<record id="account_followup_comp_rule" model="ir.rule">
<field name="name">Account Followup multi company rule</field>
<field name="name">Account Follow-up multi company rule</field>
<field model="ir.model" name="model_id" ref="model_account_followup_followup"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="account_followup_stat_by_partner_comp_rule" model="ir.rule">
<field name="name">Account Followup Statistics by Partner Rule</field>
<field name="name">Account Follow-up Statistics by Partner Rule</field>
<field ref="model_account_followup_stat_by_partner" name="model_id"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>

View File

@ -1,23 +1,23 @@
-
In order to test account followup module in OpenERP, I change the state of invoice to "open".
In order to test account follow-up module in OpenERP, I change the state of invoice to "open".
-
!record {model: account.invoice, id: account.demo_invoice_0}:
check_total: 14.0
-
!workflow {model: account.invoice, action: invoice_open, ref: account.demo_invoice_0}
-
I create a followup.
I create a follow-up.
-
!record {model: account.followup.print, id: account_followup_print_0}:
{}
-
I select the followup to send it to the partner.
I select the follow-up to send it to the partner.
-
!python {model: account.followup.print}: |
self.do_continue(cr, uid, [ref("account_followup_print_0")], {"active_ids": [ref("account_followup.account_followup_print_menu")], "active_id": ref("account_followup.account_followup_print_menu"),
})
-
I select partners whom I want to send followups.
I select partners whom I want to send follow-ups.
-
!record {model: account.followup.print.all, id: account_followup_print_all_0}:
email_body: 'Date : %(date)s\n\nDear %(partner_name)s,\n\nPlease find in attachment
@ -28,7 +28,7 @@
- base.res_partner_desertic_hispafuentes
partner_lang: 1
-
I send a followup mail to partner.
I send a follow-up mail to partner.
-
!python {model: account.followup.print.all}: |
import time

View File

@ -1,10 +1,10 @@
-
In order to test the report I print followup report.
In order to test the report I print follow-up report.
-
!python {model: account.followup.print.all}: |
import time
ctx = {'form_view_ref':'account_followup.view_account_followup_print_all', 'followup_id': ref('account_followup.demo_followup1'),'date': time.strftime('%Y-%m-%d'),'model': 'account_followup.followup','active_ids':[ref('account_followup_print_all_0')], 'company_id':ref('base.main_company')}
data_dict = {'email_conf': 1}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_followup_print_all', context=ctx, wiz_data=data_dict,wiz_buttons=["Print Follow Ups"], our_module='account_followup')
test_reports.try_report_action(cr, uid, 'action_account_followup_print_all', context=ctx, wiz_data=data_dict,wiz_buttons=["Print Follow-ups"], our_module='account_followup')

View File

@ -28,7 +28,7 @@ from tools.translate import _
class account_followup_print(osv.osv_memory):
_name = 'account.followup.print'
_description = 'Print Followup & Send Mail to Customers'
_description = 'Print Follow-up & Send Mail to Customers'
_columns = {
'date': fields.date('Follow-up Sending Date', required=True, help="This field allow you to select a forecast date to plan your follow-ups"),
'followup_id': fields.many2one('account_followup.followup', 'Follow-up', required=True),
@ -71,14 +71,14 @@ account_followup_print()
class account_followup_stat_by_partner(osv.osv):
_name = "account_followup.stat.by.partner"
_description = "Followup Statistics by Partner"
_description = "Follow-up Statistics by Partner"
_rec_name = 'partner_id'
_auto = False
_columns = {
'partner_id': fields.many2one('res.partner', 'Partner', readonly=True),
'date_move':fields.date('First move', readonly=True),
'date_move_last':fields.date('Last move', readonly=True),
'date_followup':fields.date('Latest followup', readonly=True),
'date_followup':fields.date('Latest follow-up', readonly=True),
'max_followup_id': fields.many2one('account_followup.followup.line',
'Max Follow Up Level', readonly=True, ondelete="cascade"),
'balance':fields.float('Balance', readonly=True),
@ -90,7 +90,7 @@ class account_followup_stat_by_partner(osv.osv):
# Here we don't have other choice but to create a virtual ID based on the concatenation
# of the partner_id and the company_id, because if a partner is shared between 2 companies,
# we want to see 2 lines for him in this table. It means that both company should be able
# to send him followups separately . An assumption that the number of companies will not
# to send him follow-ups separately . An assumption that the number of companies will not
# reach 10 000 records is made, what should be enough for a time.
cr.execute("""
create or replace view account_followup_stat_by_partner as (
@ -118,7 +118,7 @@ account_followup_stat_by_partner()
class account_followup_print_all(osv.osv_memory):
_name = 'account.followup.print.all'
_description = 'Print Followup & Send Mail to Customers'
_description = 'Print Follow-up & Send Mail to Customers'
_columns = {
'partner_ids': fields.many2many('account_followup.stat.by.partner', 'partner_stat_rel', 'osv_memory_id', 'partner_id', 'Partners', required=True),
'email_conf': fields.boolean('Send email confirmation'),
@ -126,7 +126,7 @@ class account_followup_print_all(osv.osv_memory):
'partner_lang': fields.boolean('Send Email in Partner Language', help='Do not change message text, if you want to send email in partner language, or configure from company'),
'email_body': fields.text('Email body'),
'summary': fields.text('Summary', required=True, readonly=True),
'test_print': fields.boolean('Test Print', help='Check if you want to print followups without changing followups level.')
'test_print': fields.boolean('Test Print', help='Check if you want to print follow-ups without changing follow-ups level.')
}
def _get_summary(self, cr, uid, context=None):
if context is None:
@ -289,15 +289,15 @@ class account_followup_print_all(osv.osv_memory):
msg += partner.name + '\n'
msg_unsent += msg
if not msg_unsent:
summary = _("All E-mails have been successfully sent to Partners:.\n\n%s") % msg_sent
summary = _("All Emails have been successfully sent to Partners:.\n\n%s") % msg_sent
else:
msg_unsent = _("E-Mail not sent to following Partners, E-mail not available !\n\n%s") % msg_unsent
msg_sent = msg_sent and _("\n\nE-Mail sent to following Partners successfully. !\n\n%s") % msg_sent
msg_unsent = _("Email not sent to following Partners, Email not available !\n\n%s") % msg_unsent
msg_sent = msg_sent and _("\n\nEmail sent to following Partners successfully. !\n\n%s") % msg_sent
line = '=========================================================================='
summary = msg_unsent + line + msg_sent
context.update({'summary': summary})
else:
context.update({'summary': '\n\n\nE-Mail has not been sent to any partner. If you want to send it, please tick send email confirmation on wizard.'})
context.update({'summary': '\n\n\nEmail has not been sent to any partner. If you want to send it, please tick send email confirmation on wizard.'})
return {
'name': _('Followup Summary'),

View File

@ -7,12 +7,12 @@
<field name="model">account.followup.print</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Send followups" version="7.0">
<form string="Send follow-ups" version="7.0">
<header>
<button name="do_continue" string="Continue" colspan="1" type="object" icon="gtk-ok"/>
<button special="cancel" string="Cancel" icon='gtk-cancel'/>
</header>
<separator string="Send Follow-Ups"/>
<separator string="Send Follow-ups"/>
<label string ="This feature allows you to send reminders to partners with pending invoices. You can send them the default message for unpaid invoices or manually enter a message should you need to remind them of a specific information."/>
<group col="4">
<field name="followup_id"/>
@ -23,7 +23,7 @@
</record>
<record id="action_account_followup_print" model="ir.actions.act_window">
<field name="name">Send followups</field>
<field name="name">Send follow-ups</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.followup.print</field>
<field name="view_type">form</field>
@ -75,7 +75,7 @@
<field name="model">account.followup.print.all</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Send followups" version="7.0">
<form string="Send follow-ups" version="7.0">
<header>
<button name="do_mail" string="Send Mails" colspan="1" type="object" icon="gtk-execute"/>
<button name="do_print" string="Print Follow Ups" colspan="1" type="object" icon="gtk-print"/>
@ -126,7 +126,7 @@
</record>
<record id="action_account_followup_print_all" model="ir.actions.act_window">
<field name="name">Send followups</field>
<field name="name">Send follow-ups</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.followup.print.all</field>
<field name="view_type">form</field>

View File

@ -41,7 +41,6 @@ This module is for modifying project view to show some data related to the hr_ex
],
'installable': True,
'auto_install': True,
'certificate': '',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -327,7 +327,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
reply_to = emailfrom
if not emailfrom:
raise osv.except_osv(_('Error!'),
_("No E-Mail ID Found for your Company address!"))
_("No Email ID Found for your Company address!"))
return mail_message.schedule_with_attach(cr, uid, emailfrom, emails, name, body, model='base.action.rule', reply_to=reply_to, res_id=obj.id)

View File

@ -286,7 +286,7 @@ msgstr ""
#. module: base_action_rule
#: code:addons/base_action_rule/base_action_rule.py:329
#, python-format
msgid "No E-Mail ID Found for your Company address!"
msgid "No Email ID Found for your Company address!"
msgstr ""
#. module: base_action_rule

View File

@ -59,7 +59,7 @@ class base_action_rule(osv.osv):
else:
reply_to = emailfrom
if not emailfrom:
raise osv.except_osv(_('Error!'), _("No E-Mail Found for your Company address!"))
raise osv.except_osv(_('Error!'), _("No Email Found for your Company address!"))
return mail_message.schedule_with_attach(cr, uid, emailfrom, emails, name, body, model=obj._name, reply_to=reply_to, res_id=obj.id)
def do_check(self, cr, uid, action, obj, context=None):

View File

@ -11,7 +11,7 @@
<field name="name">direct</field>
</record>
<record model="crm.case.channel">
<field name="name">e-mail</field>
<field name="name">email</field>
</record>
<record model="crm.case.section" id="section_sales_department">
<field name="name">Sales Department</field>

View File

@ -193,7 +193,7 @@ class crm_lead(base_stage, osv.osv):
'active': fields.boolean('Active', required=False),
'date_action_last': fields.datetime('Last Action', readonly=1),
'date_action_next': fields.datetime('Next Action', readonly=1),
'email_from': fields.char('Email', size=128, help="E-mail address of the contact", select=1),
'email_from': fields.char('Email', size=128, help="Email address of the contact", select=1),
'section_id': fields.many2one('crm.case.section', 'Sales Team', \
select=True, help='When sending mails, the default email address is taken from the sales team.'),
'create_date': fields.datetime('Creation Date' , readonly=True),

View File

@ -263,7 +263,7 @@
<field name="categ_id" ref="crm.categ_oppor3"/>
<field name="stage_id" ref="crm.stage_lead3"/>
<field eval="'Interest in your Kitchen Design Project'" name="name"/>
<field eval="'Send Catalogue by E-Mail'" name="title_action"/>
<field eval="'Send Catalogue by Email'" name="title_action"/>
<field eval="time.strftime('%Y-01-10')" name="date_action"/>
<field eval="time.strftime('%Y-02-23')" name="date_deadline"/>
<field name="partner_name">Lucie Vonck</field>

View File

@ -540,7 +540,7 @@ msgstr ""
#. module: crm
#: field:crm.lead,email:0
msgid "E-Mail"
msgid "Email"
msgstr ""
#. module: crm
@ -2675,7 +2675,7 @@ msgstr ""
#. module: crm
#: help:crm.lead,email_from:0
msgid "E-mail address of the contact"
msgid "Email address of the contact"
msgstr ""
#. module: crm
@ -3401,7 +3401,7 @@ msgstr ""
#. module: crm
#: code:addons/crm/crm_action_rule.py:61
#, python-format
msgid "No E-Mail Found for your Company address!"
msgid "No Email Found for your Company address!"
msgstr ""
#. module: crm
@ -3563,7 +3563,7 @@ msgstr ""
#. module: crm
#: model:ir.model,name:crm.model_mail_compose_message
msgid "E-mail composition wizard"
msgid "Email composition wizard"
msgstr ""
#. module: crm

View File

@ -13,7 +13,8 @@
<header>
<button name="action_schedule" type="object" string="Log call" icon="gtk-ok" attrs="{'invisible' : [('action', '!=', 'log')]}" />
<button name="action_schedule" type="object" string="Schedule Call" icon="gtk-ok" attrs="{'invisible' : [('action', '!=', 'schedule')]}" />
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
or
<button name="action_cancel" string="_Cancel" class="oe_link" special="cancel" />
</header>
<group>
<group>

View File

@ -832,7 +832,7 @@ msgstr ""
#. module: crm_partner_assign
#: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner
msgid "E-mail composition wizard"
msgid "Email composition wizard"
msgstr ""
#. module: crm_partner_assign

View File

@ -21,7 +21,7 @@
##############################################################################
{
"name" : "E-Mail Templates",
"name" : "Email Templates",
"version" : "1.1",
"author" : "OpenERP,OpenLabs",
"website" : "http://openerp.com",

View File

@ -173,7 +173,7 @@ msgstr ""
#. module: email_template
#: model:ir.model,name:email_template.model_mail_compose_message
msgid "E-mail composition wizard"
msgid "Email composition wizard"
msgstr ""
#. module: email_template

View File

@ -191,7 +191,7 @@ class hr_employee(osv.osv):
'bank_account_id':fields.many2one('res.partner.bank', 'Bank Account Number', domain="[('partner_id','=',address_home_id)]", help="Employee bank salary account"),
'work_phone': fields.char('Work Phone', size=32, readonly=False),
'mobile_phone': fields.char('Work Mobile', size=32, readonly=False),
'work_email': fields.char('Work E-mail', size=240),
'work_email': fields.char('Work Email', size=240),
'work_location': fields.char('Office Location', size=32),
'notes': fields.text('Notes'),
'parent_id': fields.many2one('hr.employee', 'Manager'),

View File

@ -249,7 +249,7 @@ msgstr ""
#. module: hr
#: field:hr.employee,work_email:0
msgid "Work E-mail"
msgid "Work Email"
msgstr ""
#. module: hr

View File

@ -307,7 +307,7 @@ msgstr ""
#. module: hr_evaluation
#: model:ir.model,name:hr_evaluation.model_mail_compose_message
msgid "E-mail composition wizard"
msgid "Email composition wizard"
msgstr ""
#. module: hr_evaluation

View File

@ -116,7 +116,7 @@
<tr><td>${_("Fax") |entity}: ${inv.partner_id.fax|entity}</td></tr>
%endif
%if inv.partner_id.email :
<tr><td>${_("E-mail") |entity}: ${inv.partner_id.email|entity}</td></tr>
<tr><td>${_("Email") |entity}: ${inv.partner_id.email|entity}</td></tr>
%endif
%if inv.partner_id.vat :
<tr><td>${_("VAT") |entity}: ${inv.partner_id.vat|entity}</td></tr>

View File

@ -23,7 +23,7 @@
<tr><td>${_("Fax") |entity}: ${inv.partner_id.fax|entity}</td></tr>
%endif
%if inv.partner_id.email :
<tr><td>${_("E-mail") |entity}: ${inv.partner_id.email|entity}</td></tr>
<tr><td>${_("Email") |entity}: ${inv.partner_id.email|entity}</td></tr>
%endif
%if inv.partner_id.vat :
<tr><td>${_("VAT") |entity}: ${inv.partner_id.vat|entity}</td></tr>

View File

@ -42,7 +42,7 @@
<td>${company.partner_id and company.partner_id.street2 or ''|entity}</td><td>${_('Fax')}:</td><td>${company.partner_id and company.partner_id.fax or ''|entity} </td><td></td>
</tr>
<tr>
<td>${company.partner_id and company.partner_id.zip or ''|entity} ${company.partner_id and company.partner_id.city or ''|entity}</td><td>${_('e-mail')}:</td><td><a href="mailto:${company.partner_id and company.partner_id.email or ''|entity}">${company.partner_id and company.partner_id.email or ''|entity}</a></td><td></td>
<td>${company.partner_id and company.partner_id.zip or ''|entity} ${company.partner_id and company.partner_id.city or ''|entity}</td><td>${_('email')}:</td><td><a href="mailto:${company.partner_id and company.partner_id.email or ''|entity}">${company.partner_id and company.partner_id.email or ''|entity}</a></td><td></td>
</tr>
<tr>
<td>${company.partner_id and company.partner_id.country_id.name or ''|entity}</td><td></td><td style="text-align:right;font-size:12" ><span class="page"/></td><td style="text-align:left;font-size:12;"> / <span class="topage"/></td>

View File

@ -194,7 +194,7 @@ msgstr ""
#. module: mail
#: model:ir.model,name:mail.model_mail_compose_message
msgid "E-mail composition wizard"
msgid "Email composition wizard"
msgstr ""
#. module: mail

View File

@ -202,10 +202,10 @@ class mail_message(osv.osv):
_columns = {
'type': fields.selection([
('email', 'e-mail'),
('email', 'email'),
('comment', 'Comment'),
('notification', 'System notification'),
], 'Type', help="Message type: e-mail for e-mail message, notification for system message, comment for other messages such as user replies"),
], 'Type', help="Message type: email for email message, notification for system message, comment for other messages such as user replies"),
'partner_id': fields.many2one('res.partner', 'Related partner'),
'user_id': fields.many2one('res.users', 'Related User', readonly=1),
'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel', 'message_id', 'attachment_id', 'Attachments'),
@ -228,7 +228,7 @@ class mail_message(osv.osv):
}
#------------------------------------------------------
# E-Mail api
# Email api
#------------------------------------------------------
def init(self, cr):

View File

@ -37,7 +37,7 @@ class res_users(osv.osv):
('comments', 'Only comments'),
('to_me', 'Only when sent directly to me'),
('none', 'Never')
], 'Receive Feeds by E-mail', required=True,
], 'Receive Feeds by Email', required=True,
help="Choose in which case you want to receive an email when you receive new feeds."),
'alias_id': fields.many2one('mail.alias', 'Mail Alias', ondelete="cascade", required=True),
}

View File

@ -34,7 +34,7 @@ from ..mail_message import to_email
EXPRESSION_PATTERN = re.compile('(\$\{.+?\})')
class mail_compose_message(osv.osv_memory):
"""Generic E-mail composition wizard. This wizard is meant to be inherited
"""Generic Email composition wizard. This wizard is meant to be inherited
at model and view level to provide specific wizard features.
The behavior of the wizard can be modified through the use of context
@ -58,7 +58,7 @@ class mail_compose_message(osv.osv_memory):
"""
_name = 'mail.compose.message'
_inherit = 'mail.message.common'
_description = 'E-mail composition wizard'
_description = 'Email composition wizard'
def default_get(self, cr, uid, fields, context=None):
"""Overridden to provide specific defaults depending on the context

View File

@ -491,7 +491,7 @@ msgstr ""
#. module: marketing_campaign
#: help:marketing.campaign.activity,email_template_id:0
msgid "The e-mail to send when this activity is activated"
msgid "The email to send when this activity is activated"
msgstr ""
#. module: marketing_campaign
@ -837,7 +837,7 @@ msgstr ""
#. module: marketing_campaign
#: selection:marketing.campaign.activity,type:0
msgid "E-mail"
msgid "Email"
msgstr ""
#. module: marketing_campaign
@ -957,7 +957,7 @@ msgstr ""
#. module: marketing_campaign
#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_workitem
#: model:ir.ui.menu,name:marketing_campaign.menu_action_marketing_campaign_workitem
msgid "Campaign Followup"
msgid "Campaign Follow-up"
msgstr ""
#. module: marketing_campaign

View File

@ -392,7 +392,7 @@ class marketing_campaign_activity(osv.osv):
_description = "Campaign Activity"
_action_types = [
('email', 'E-mail'),
('email', 'Email'),
('report', 'Report'),
('action', 'Custom Action'),
# TODO implement the subcampaigns.
@ -423,7 +423,7 @@ class marketing_campaign_activity(osv.osv):
- Report: print an existing Report defined on the resource item and save it into a specific directory
- Custom Action: execute a predefined action, e.g. to modify the fields of the resource record
"""),
'email_template_id': fields.many2one('email.template', "Email Template", help='The e-mail to send when this activity is activated'),
'email_template_id': fields.many2one('email.template', "Email Template", help='The email to send when this activity is activated'),
'report_id': fields.many2one('ir.actions.report.xml', "Report", help='The report to generate when this activity is activated', ),
'report_directory_id': fields.many2one('document.directory','Directory',
help="This folder is used to store the generated reports"),

View File

@ -421,7 +421,7 @@
</record>
<record model="ir.actions.act_window" id="action_marketing_campaign_workitem">
<field name="name">Campaign Followup</field>
<field name="name">Campaign Follow-up</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">marketing.campaign.workitem</field>
<field name="view_type">form</field>
@ -442,7 +442,7 @@
context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
/>
<!-- Campaign Followups -->
<!-- Campaign Follow-ups -->
<act_window
context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
id="act_marketing_campaing_followup"

View File

@ -42,37 +42,37 @@
record = self.browse(cr, uid, ids[0])
assert record.state == 'todo' or record.state == 'done' , 'Marketing Workitem shoud be in draft state.'
-
I check followup detail of first activity.
I check follow-up detail of first activity.
-
!python {model: marketing.campaign.workitem}: |
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_0'))])
assert ids, 'Followup item is not created for first activity.'
assert ids, 'Follow-up item is not created for first activity.'
work_item_id = self.browse(cr ,uid ,ids[0] ,context)
assert work_item_id.res_name, 'Resource Name is not defined.'
-
I process followup of first activity.
I process follow-up of first activity.
-
!python {model: marketing.campaign.workitem}: |
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_0'))])
self.process(cr, uid, ids)
record = self.browse(cr, uid, ids)[0]
assert record.state == "done", "Followup item should be closed after process."
assert record.state == "done", "Follow-up item should be closed after process."
-
I check followup detail of second activity after process of first activity.
I check follow-up detail of second activity after process of first activity.
-
!python {model: marketing.campaign.workitem}: |
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_1'))])
assert ids, 'Followup item is not created for second activity.'
assert ids, 'Follow-up item is not created for second activity.'
-
Now I increase credit limit of customer
-
!python {model: res.partner}: |
self.write(cr, uid, [ref("base.res_partner_agrolait")], {'credit_limit':41000}, context=context)
-
I process followup of second activity after set draft.
I process follow-up of second activity after set draft.
-
!python {model: marketing.campaign.workitem}: |
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
@ -80,21 +80,21 @@
self.button_draft(cr, uid, ids, context=context)
self.process(cr, uid, ids, context=context)
record = self.browse(cr, uid, ids[0], context=context)
assert record.state == "done", "Followup item should be closed after process."
assert record.state == "done", "Follow-up item should be closed after process."
-
I check followup detail of third activity after process of second activity.
I check follow-up detail of third activity after process of second activity.
-
!python {model: marketing.campaign.workitem}: |
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_2'))])
assert ids, 'Followup item is not created for third activity.'
assert ids, 'Follow-up item is not created for third activity.'
-
Now I increase credit limit of customer
-
!python {model: res.partner}: |
self.write(cr, uid, [ref("base.res_partner_agrolait")], {'credit_limit':151000}, context=context)
-
I process followup of third activity after set draft.
I process follow-up of third activity after set draft.
-
!python {model: marketing.campaign.workitem}: |
ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
@ -102,7 +102,7 @@
self.button_draft(cr, uid, ids, context=context)
self.process(cr, uid, ids, context=context)
record = self.browse(cr, uid, ids[0], context=context)
assert record.state == "done", "Followup item should be closed after process."
assert record.state == "done", "Follow-up item should be closed after process."
-
I print workitem report.
-

View File

@ -454,7 +454,7 @@ class mrp_production(osv.osv):
'priority': fields.selection([('0','Not urgent'),('1','Normal'),('2','Urgent'),('3','Very Urgent')], 'Priority', select=True),
'product_id': fields.many2one('product.product', 'Product', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product Unit of Measure'), required=True, states={'draft':[('readonly',False)]}, readonly=True),
'product_qty': fields.float('Product Quantity', digits_compute=dp.get_precision('Product Unit of Measure'), required=True, states={'draft':[('readonly',False)]}, readonly=True),
'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True, states={'draft':[('readonly',False)]}, readonly=True),
'product_uos_qty': fields.float('Product UoS Qty', states={'draft':[('readonly',False)]}, readonly=True),
'product_uos': fields.many2one('product.uom', 'Product UoS', states={'draft':[('readonly',False)]}, readonly=True),
@ -466,13 +466,13 @@ class mrp_production(osv.osv):
'date_planned_end': fields.function(_production_date_end, type='date', string='Scheduled End Date'),
'date_planned_date': fields.function(_production_date, type='date', string='Scheduled Date'),
'date_planned': fields.datetime('Scheduled date', required=True, select=1),
'date_planned': fields.datetime('Scheduled Date', required=True, select=1),
'date_start': fields.datetime('Start Date', select=True),
'date_finished': fields.datetime('End Date', select=True),
'bom_id': fields.many2one('mrp.bom', 'Bill of Material', domain=[('bom_id','=',False)], readonly=True, states={'draft':[('readonly',False)]}),
'routing_id': fields.many2one('mrp.routing', string='Routing', on_delete='set null', readonly=True, states={'draft':[('readonly',False)]}, help="The list of operations (list of work centers) to produce the finished product. The routing is mainly used to compute work center costs during operations and to plan future loads on work centers based on production plannification."),
'picking_id': fields.many2one('stock.picking', 'Picking list', readonly=True, ondelete="restrict",
'picking_id': fields.many2one('stock.picking', 'Picking List', readonly=True, ondelete="restrict",
help="This is the Internal Picking List that brings the finished product to the production plan"),
'move_prod_id': fields.many2one('stock.move', 'Move product', readonly=True),
'move_lines': fields.many2many('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Products to Consume', domain=[('state','not in', ('done', 'cancel'))], states={'done':[('readonly',True)]}),
@ -1094,8 +1094,8 @@ class mrp_production_workcenter_line(osv.osv):
_columns = {
'name': fields.char('Work Order', size=64, required=True),
'workcenter_id': fields.many2one('mrp.workcenter', 'Work Center', required=True),
'cycle': fields.float('Nbr of cycles', digits=(16,2)),
'hour': fields.float('Nbr of hours', digits=(16,2)),
'cycle': fields.float('Number of Cycles', digits=(16,2)),
'hour': fields.float('Number of Hours', digits=(16,2)),
'sequence': fields.integer('Sequence', required=True, help="Gives the sequence order when displaying a list of work orders."),
'production_id': fields.many2one('mrp.production', 'Production Order', select=True, ondelete='cascade', required=True),
}
@ -1112,7 +1112,7 @@ class mrp_production_product_line(osv.osv):
_columns = {
'name': fields.char('Name', size=64, required=True),
'product_id': fields.many2one('product.product', 'Product', required=True),
'product_qty': fields.float('Product Qty', digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
'product_qty': fields.float('Product Quantity', digits_compute=dp.get_precision('Product Unit of Measure'), required=True),
'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True),
'product_uos_qty': fields.float('Product UOS Qty'),
'product_uos': fields.many2one('product.uom', 'Product UOS'),

View File

@ -37,7 +37,9 @@
<field name="res_model">mrp.property.group</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="help">Define specific property groups that can be assigned to the properties of your bill of materials.</field>
<field name="help">
Define specific property groups that can be assigned to the properties of your bill of materials.
</field>
</record>
<menuitem
id="menu_mrp_configuration"
@ -103,7 +105,13 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_mrp_property_search"/>
<field name="help">The Properties in OpenERP are used to select the right bill of 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 sales person creates a sales order, he can relate it to several properties and OpenERP will automatically select the BoM to use according the needs.</field>
<field name="help">
The Properties in OpenERP are used to select the right bill of 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
and OpenERP will automatically select the BoM to use according the needs.
</field>
</record>
<menuitem name="Master Bill of Materials"
id="menu_mrp_property"
@ -307,7 +315,11 @@
<field name="view_type">form</field>
<field name="view_id" ref="mrp_routing_tree_view"/>
<field name="search_view_id" ref="mrp_routing_search_view"/>
<field name="help">Routings allow you to create and manage the manufacturing operations that should be followed within your work centers in order to produce a product. They are attached to bills of materials that will define the required raw materials.</field>
<field name="help">
Routings allow you to create and manage the manufacturing operations that should be
followed within your work centers in order to produce a product.
They are attached to bills of materials that will define the required raw materials.
</field>
</record>
<menuitem action="mrp_routing_action" id="menu_mrp_routing_action" parent="mrp.menu_mrp_bom" groups="mrp.group_mrp_routings" sequence="15"/>
@ -321,65 +333,65 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Bill of Material" version="7.0">
<sheet>
<label for="product_id" class="oe_edit_only"/>
<h1>
<field name="product_id" on_change="onchange_product_id(product_id, name, context)" class="oe_inline"/>:
<field name="product_qty" class="oe_inline"/>
<field name="product_uom" class="oe_inline"/>
</h1>
<label for="routing_id" class="oe_edit_only"/>
<h2>
<field name="routing_id" groups="mrp.group_mrp_routings"/>
</h2>
<group>
<group>
<field name="name"/>
<field name="code" string="Reference"/>
</group>
<group>
<field name="type"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="product_uos_qty" groups="product.group_uos" />
<field name="product_uos" groups="product.group_uos"/>
</group>
</group>
<notebook>
<page string="Components">
<field name="bom_lines" widget="one2many_list">
<tree string="Components" editable="bottom">
<field name="product_id" on_change="onchange_product_id(product_id, name)"/>
<field name="product_qty"/>
<field name="product_uom"/>
<field name="name" invisible="1"/>
<field name="date_start"/>
<field name="date_stop"/>
</tree>
</field>
</page>
<page string="Revisions" attrs="{'invisible': [('bom_id','!=',False)]}">
<field name="revision_ids"/>
</page>
<page string="Properties" groups="product.group_mrp_properties">
<group>
<group>
<field name="position"/>
<field name="bom_id"/>
<field name="sequence"/>
<field name="active"/>
</group>
<group>
<field name="date_start"/>
<field name="date_stop"/>
<field name="product_rounding"/>
<field name="product_efficiency"/>
</group>
</group>
<separator string="Properties"/>
<field name="property_ids" widget="many2many_tags" />
</page>
</notebook>
<newline/>
<sheet>
<label for="product_id" string="Product and Quantity" class="oe_edit_only"/>
<h1>
<field name="product_id" on_change="onchange_product_id(product_id, name, context)" class="oe_inline"/>:
<field name="product_qty" class="oe_inline"/>
<field name="product_uom" class="oe_inline" groups="product.group_uom"/>
</h1>
<div groups="mrp.group_mrp_routings">
<label for="routing_id" class="oe_edit_only"/>
<h2><field name="routing_id" class="oe_inline"/></h2>
</div>
<group>
<group>
<field name="name"/>
<field name="code" string="Reference"/>
</group>
<group>
<field name="type"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="product_uos_qty" groups="product.group_uos" />
<field name="product_uos" groups="product.group_uos"/>
</group>
</group>
<notebook>
<page string="Components">
<field name="bom_lines" widget="one2many_list">
<tree string="Components" editable="bottom">
<field name="product_id" on_change="onchange_product_id(product_id, name)"/>
<field name="product_qty"/>
<field name="product_uom" groups="product.group_uom"/>
<field name="name" invisible="1"/>
<field name="date_start"/>
<field name="date_stop"/>
</tree>
</field>
</page>
<page string="Revisions" attrs="{'invisible': [('bom_id','!=',False)]}">
<field name="revision_ids"/>
</page>
<page string="Properties" groups="product.group_mrp_properties">
<group>
<group>
<field name="position"/>
<field name="bom_id"/>
<field name="sequence"/>
<field name="active"/>
</group>
<group>
<field name="date_start"/>
<field name="date_stop"/>
<field name="product_rounding"/>
<field name="product_efficiency"/>
</group>
</group>
<separator string="Properties"/>
<field name="property_ids" widget="many2many_tags" />
</page>
</notebook>
<newline/>
</sheet>
</form>
</field>
@ -423,7 +435,7 @@
<field name="code"/>
<field name="product_id"/>
<field name="product_qty"/>
<field name="product_uom"/>
<field name="product_uom" groups="product.group_uom"/>
<field name="type"/>
<field name="method"/>
<field name="routing_id" groups="mrp.group_mrp_routings"/>
@ -445,7 +457,7 @@
<field name="product_id" string="Component Product"/>
<field name="bom_id"/>
<field name="product_qty"/>
<field name="product_uom"/>
<field name="product_uom" groups="product.group_uom"/>
<field name="type"/>
<field name="method"/>
<field name="routing_id" groups="mrp.group_mrp_routings"/>
@ -461,7 +473,13 @@
<field name="view_type">form</field>
<field name="domain">[('bom_id','=',False)]</field>
<field name="search_view_id" ref="view_mrp_bom_filter"/>
<field name="help">Master Bills of Materials allow you to create and manage the list of necessary raw materials used to make a finished product. OpenERP will use these BoMs to automatically propose manufacturing orders according to product needs. You can either create a bill of materials to define specific production steps or define a single multi-level bill of materials.</field>
<field name="help">
Master Bills of Materials allow you to create and manage the list of necessary
raw materials used to make a finished product.
OpenERP uses these BoMs to automatically propose manufacturing orders according to product needs.
You can either create a bill of materials to define specific production steps,
or define a single multi-level bill of materials.
</field>
</record>
<record id="mrp_bom_form_action2" model="ir.actions.act_window">
<field name="name">Bill of Material Components</field>
@ -470,7 +488,10 @@
<field name="view_type">form</field>
<field name="view_id" ref="mrp_bom_component_tree_view"/>
<field name="domain">[('bom_id','!=',False)]</field>
<field name="help">Bills of materials components are components and sub-products used to create master bills of materials. Use this menu to search in which BoM a specific component is used.</field>
<field name="help">
Bills of materials components are components and sub-products used to create master bills of materials.
Use this menu to search in which BoM a specific component is used.
</field>
</record>
<!-- BOM menus -->
@ -541,13 +562,13 @@
<field name="model">mrp.production</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree fonts="bold:needaction_pending==True" colors="blue:state in ('draft','confirmed');red:date_planned&lt;current_date and state not in ('done','cancel');black:date_planned&gt;=current_date;gray:state in ('done','cancel') " string="Manufacturing Orders">
<tree fonts="bold:needaction_pending==True" colors="blue:state in ('draft','confirmed');red:date_planned&lt;current_date and state not in ('done','cancel');black:date_planned&gt;=current_date and state not in ('done','cancel');gray:state in ('done','cancel')" string="Manufacturing Orders">
<field name="needaction_pending" invisible="1"/>
<field name="name"/>
<field name="date_planned"/>
<field name="product_id"/>
<field name="product_qty" sum="Total Qty"/>
<field name="product_uom"/>
<field name="product_uom" groups="product.group_uom"/>
<field name="routing_id" groups="mrp.group_mrp_routings"/>
<field name="hour_total" sum="Total Hours"/>
<field name="cycle_total" sum="Total Cycles"/>
@ -603,9 +624,9 @@
<field name="arch" type="xml">
<form string="Manufacturing Orders" version="7.0">
<header>
<button name="button_confirm" states="draft" string="Confirm Production"/>
<button name="button_produce" states="ready" string="Start Production"/>
<button name="%(act_mrp_product_produce)d" states="in_production" string="Produce" type="action"/>
<button name="button_confirm" states="draft" string="Confirm Production" class="oe_highlight"/>
<button name="button_produce" states="ready" string="Start Production" class="oe_highlight"/>
<button name="%(act_mrp_product_produce)d" states="in_production" string="Produce" type="action" class="oe_highlight"/>
<button name="force_production" states="confirmed,picking_except" string="Force Reservation" type="object"/>
<button name="button_recreate" states="picking_except" string="Recreate Picking"/>
<button name="button_cancel" states="draft,ready,in_production,picking_except" string="Cancel"/>
@ -613,20 +634,22 @@
<field name="state" widget="statusbar" statusbar_visible="draft,ready,in_production,done" statusbar_colors='{"picking_except":"red","confirmed":"blue"}'/>
</header>
<sheet>
<label for="product_id" class="oe_edit_only"/>
<h1>
<field name="product_id" on_change="product_id_change(product_id)" domain="[('supply_method','=','produce')]" class="oe_inline"/>
<field name="product_qty" class="oe_inline"/>
<field name="product_uom" class="oe_inline"/>
<button type="action"
icon="terp-accessories-archiver+" class="oe_inline"
name="%(mrp.action_change_production_qty)d"
string="Change Qty" states="ready,confirmed" />
</h1>
<label for="routing_id" groups="mrp.group_mrp_routings" class="oe_edit_only"/>
<h2>
<field name="routing_id" groups="mrp.group_mrp_routings"/>
</h2>
<div class="oe_button_box oe_right">
<button name="%(mrp.action_change_production_qty)d" type="action" states="ready,confirmed"
string="Change Quantity" icon="terp-accessories-archiver+"/>
</div>
<div class="oe_title">
<label for="product_id" string="Product and Quantity" class="oe_edit_only"/>
<h1>
<field name="product_id" on_change="product_id_change(product_id)" domain="[('supply_method','=','produce')]" class="oe_inline"/>:
<field name="product_qty" class="oe_inline"/>
<field name="product_uom" class="oe_inline" groups="product.group_uom"/>
</h1>
<div groups="mrp.group_mrp_routings">
<label for="routing_id" class="oe_edit_only"/>
<h2><field name="routing_id" class="oe_inline"/></h2>
</div>
</div>
<group>
<group>
<field name="name"/>
@ -641,20 +664,22 @@
</group>
<notebook>
<page string="Consumed Products">
<group col="4">
<group>
<group>
<group groups="stock.group_locations">
<field name="location_src_id" domain="[('usage','=','internal')]" on_change="location_id_change(location_src_id,location_dest_id)"/>
<field name="location_dest_id" domain="[('usage','=','internal')]"/>
</group>
<group>
<field name="bom_id" domain="[('product_id','=',product_id),('bom_id','=',False)]" on_change="bom_id_change(bom_id)"/>
<field name="bom_id" domain="[('product_id','=',product_id)]" context="{'default_product_id': product_id}" on_change="bom_id_change(bom_id)"/>
</group>
</group>
<group>
<field name="move_lines" domain="[('state','&lt;&gt;', ('done', 'cancel'))]">
<tree colors="blue:state == 'draft';black:state in ('picking_except','confirmed','ready','in_production');gray:state in ('cancel','done') " string="Products to Consume">
<field name="product_id" />
<field name="product_qty" string="Qty"/>
<field name="product_uom" string="Unit of Measure"/>
<field name="location_id" string="Source Loc."/>
<field name="product_id"/>
<field name="product_qty"/>
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="location_id" string="Source Loc." groups="stock.group_locations"/>
<field name="state" invisible="1"/>
<button name="%(stock.move_consume)d"
string="Consume Products" type="action"
@ -674,8 +699,8 @@
<field name="move_lines2" domain="[('state','in', ('done', 'cancel'))]">
<tree colors="red:scrapped==True;blue:state == 'draft';black:state in('picking_except','confirmed','ready','in_production');gray:state == 'cancel' " string="Consumed Products" editable="bottom">
<field name="product_id" readonly="1"/>
<field name="product_qty" readonly="1" string="Qty"/>
<field name="product_uom" readonly="1" string="Unit of Measure"/>
<field name="product_qty" readonly="1"/>
<field name="product_uom" readonly="1" string="Unit of Measure" groups="product.group_uom"/>
<field name="prodlot_id" context="{'product_id': product_id}"/>
<field name="state" invisible="1"/>
<field name="scrapped" invisible="1"/>
@ -692,9 +717,9 @@
<group>
<field name="move_created_ids" domain="[('state','&lt;&gt;', ('done', 'cancel'))]">
<tree string="Products to Finish">
<field name="product_id" />
<field name="product_qty" string="Qty"/>
<field name="product_uom" string="Unit of Measure"/>
<field name="product_id"/>
<field name="product_qty"/>
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
<field name="state" invisible="1"/>
<button name="%(stock.action_partial_move_server)d"
string="Partial"
@ -709,9 +734,9 @@
<field name="move_created_ids2" domain="[('state','in', ('done', 'cancel'))]">
<tree colors="red:scrapped==True;blue:state == 'draft';black:state in('picking_except','confirmed','ready','in_production');gray:state in('cancel','done') " string="Finished Products">
<field name="product_id" readonly="1"/>
<field name="product_qty" readonly="1" string="Qty"/>
<field name="product_uom" readonly="1" string="Unit of Measure"/>
<field name="location_dest_id" readonly="1" string="Destination Loc." widget="selection"/>
<field name="product_qty" readonly="1"/>
<field name="product_uom" readonly="1" string="Unit of Measure" groups="product.group_uom"/>
<field name="location_dest_id" readonly="1" string="Destination Loc." widget="selection" groups="stock.group_locations"/>
<field name="prodlot_id" context="{'product_id': product_id}"/>
<field name="scrapped" invisible="1"/>
<field name="state" invisible="1"/>
@ -754,13 +779,17 @@
<field name="product_lines"/>
</page>
<page string="Extra Information">
<group col="4">
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="priority"/>
<field name="date_start"/>
<field name="date_finished"/>
<field name="picking_id"/>
<field name="move_prod_id"/>
<group>
<group>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="priority"/>
<field name="picking_id"/>
<field name="move_prod_id" groups="stock.group_locations"/>
</group>
<group>
<field name="date_start"/>
<field name="date_finished"/>
</group>
</group>
</page>
</notebook>
@ -819,7 +848,12 @@
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="view_mrp_production_filter"/>
<field name="context">{}</field>
<field name="help">Manufacturing Orders are usually proposed automatically by OpenERP based on the bill of materials and the procurement rules, but you can also create manufacturing orders manually. OpenERP will handle the consumption of the raw materials (stock decrease) and the production of the finished products (stock increase) when the order is processed.</field>
<field name="help">
Click here to create a new Manufacturing Order.
&lt;p&gt;
To process the production, do not forget to create a Bill of Material.
Manufacturing orders can be automatically generated based on procurement rules specified on the product.
</field>
</record>
<menuitem action="mrp_production_action" id="menu_mrp_production_action"
parent="menu_mrp_manufacturing" sequence="1"/>
@ -831,7 +865,14 @@
<field name="view_type">form</field>
<field name="view_mode">calendar,tree,form,graph</field>
<field name="domain">[('state','in',('ready','confirmed','in_production'))]</field>
<field name="help">Manufacturing Orders describe the operations that need to be carried out and the raw materials usage for each production stage. You use specifications (bills of materials or BoM) to work out the raw material requirements and the manufacturing orders needed for the finished products. Once the bills of materials have been defined, OpenERP is capable of automatically deciding on the manufacturing route depending on the needs of the company.</field>
<field name="help">
Manufacturing Orders describe the operations that need to be carried out,
and the raw materials usage for each production stage.
You use specifications (bills of materials or BoM) to work out the raw material requirements
and the manufacturing orders needed for the finished products.
Once the bills of materials have been defined, OpenERP is capable of automatically deciding
on the manufacturing route depending on the needs of the company.
</field>
</record>
<record id="mrp_production_action2" model="ir.actions.act_window">
@ -877,7 +918,7 @@
<field name="name"/>
<field name="product_id"/>
<field name="product_qty"/>
<field name="product_uom"/>
<field name="product_uom" groups="product.group_uom"/>
<field name="product_uos_qty" groups="product.group_uos"/>
<field name="product_uos" groups="product.group_uos"/>
</group>
@ -892,7 +933,7 @@
<tree string="Scheduled Products">
<field name="product_id"/>
<field name="product_qty"/>
<field name="product_uom"/>
<field name="product_uom" groups="product.group_uom"/>
<field name="product_uos_qty" groups="product.group_uos"/>
<field name="product_uos" groups="product.group_uos"/>
</tree>
@ -929,10 +970,19 @@
<field name="type">form</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<group name="misc" position="after">
<separator string="Bill of Materials" colspan="4"/>
<field name="bom_ids" nolabel="1" colspan="4" context="{'default_product_id': active_id}"/>
</group>
<page string="Procurement &amp; Locations" position="inside">
<separator string="Bill of Materials"/>
<field name="bom_ids" widget="one2many_list" mode="tree" context="{'default_product_id': active_id}">
<tree string="Bill of Materials">
<field name="name" string="Component Name"/>
<field name="bom_id"/>
<field name="product_qty" string="Quantity of Product"/>
<field name="type"/>
<field name="date_start"/>
<field name="date_stop"/>
</tree>
</field>
</page>
</field>
</record>
@ -965,7 +1015,12 @@
<field name="view_type">form</field>
<field name="view_id" ref="mrp_workcenter_tree_view"/>
<field name="search_view_id" ref="view_mrp_workcenter_search"/>
<field name="help">Work Centers allow you to create and manage manufacturing units. They consist of workers and/or machines, which are considered as units for capacity and planning forecast. Keep in mind that the working time and resource leave are not taken into account in the time computation of the work center.</field>
<field name="help">
Work Centers allow you to create and manage manufacturing units.
They consist of workers and/or machines, which are considered as units for capacity and planning forecast.
Keep in mind that the working time and resource leave are not taken into account in the time computation
of the work center.
</field>
</record>
<menuitem id="menu_pm_resources_config" name="Resources" parent="menu_mrp_configuration"/>

View File

@ -30,8 +30,8 @@ class report_workcenter_load(osv.osv):
_columns = {
'name': fields.char('Week', size=64, required=True),
'workcenter_id': fields.many2one('mrp.workcenter', 'Work Center', required=True),
'cycle': fields.float('Nbr of cycle'),
'hour': fields.float('Nbr of hour'),
'cycle': fields.float('Number of Cycles'),
'hour': fields.float('Number of Hours'),
}
def init(self, cr):

View File

@ -12,13 +12,13 @@
<field name="sub_products">
<tree string="sub products" editable="top">
<field name="product_id" on_change="onchange_product_id(product_id)"/>
<field name="product_uom"/>
<field name="product_uom" groups="product.group_uom"/>
<field name="product_qty"/>
<field name="subproduct_type"/>
</tree>
<form string="Sub Products">
<field name="product_id" on_change="onchange_product_id(product_id)"/>
<field name="product_uom"/>
<field name="product_uom" groups="product.group_uom"/>
<field name="product_qty"/>
<field name="subproduct_type"/>
</form>

View File

@ -52,7 +52,7 @@ msgstr ""
#. module: plugin_thunderbird
#: view:plugin_thunderbird.installer:0
msgid ""
"This plug-in allows you to link your e-mail to OpenERP's documents. You can "
"This plug-in allows you to link your email to OpenERP's documents. You can "
"attach it to any existing one in OpenERP or create a new one."
msgstr ""

View File

@ -12,7 +12,7 @@
<attribute name="string">Install Thunderbird Plug-In</attribute>
</form>
<separator string="title" position="before">
<label string="This plug-in allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."/>
<label string="This plug-in allows you to link your email to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."/>
</separator>
<xpath expr="//button[@string='Install Modules']" position="replace">
<button colspan="1" icon="gtk-close" special="cancel" string="_Close"/>

View File

@ -884,7 +884,7 @@ openerp.point_of_sale = function(db) {
*/
var CategoryWidget = db.web.OldWidget.extend({
start: function() {
this.$element.find(".oe-pos-categories-list a").click(_.bind(this.changeCategory, this));
this.$element.find(".oe_pos_categories_list a").click(_.bind(this.changeCategory, this));
},
template_fct: qweb_template('pos-category-template'),
renderElement: function() {
@ -1009,7 +1009,7 @@ openerp.point_of_sale = function(db) {
},
start: function() {
$('button#validate-order', this.$element).click(_.bind(this.validateCurrentOrder, this));
$('.oe-back-to-products', this.$element).click(_.bind(this.back, this));
$('.oe_back_to_products', this.$element).click(_.bind(this.back, this));
},
back: function() {
this.shop.get('selectedOrder').set({"step": "products"});

View File

@ -120,7 +120,7 @@
</table>
</div>
<div class="pos-payment-buttons">
<button class="oe-back-to-products">
<button class="oe_back_to_products">
<img src="/web/static/src/img/icons/gtk-go-back.png"></img>
Back to Products</button>
<button id="validate-order">
@ -147,13 +147,13 @@
<t t-name="pos-category-template">
<header>
<ol class="breadcrumb">
<li class="oe-pos-categories-list">
<li class="oe_pos_categories_list">
<a href="javascript:void(0)">
<img src="/point_of_sale/static/src/img/home.png" class="homeimg" />
</a>
</li>
<t t-foreach="breadcrumb" t-as="category">
<li class="oe-pos-categories-list">
<li class="oe_pos_categories_list">
<img src="/point_of_sale/static/src/img/bc-arrow.png" class="bc-arrow" />
<a href="javascript:void(0)" t-att-data-category-id="category.id">
<t t-esc="category.name"/>
@ -169,7 +169,7 @@
<div id="categories">
<ol>
<t t-foreach="categories" t-as="category">
<li class="oe-pos-categories-list">
<li class="oe_pos_categories_list">
<a href="javascript:void(0)" t-att-data-category-id="category.id" class="button">
<t t-esc="category.name"/>
</a>

View File

@ -60,7 +60,7 @@ msgstr ""
#. module: portal
#: field:res.portal.wizard.user,user_email:0
msgid "E-mail"
msgid "Email"
msgstr ""
#. module: portal

View File

@ -197,7 +197,7 @@ class wizard_user(osv.osv_memory):
string='User Name',
help="The user's real name"),
'user_email': fields.char(size=64, required=True,
string='E-mail',
string='Email',
help="Will be used as user login. "
"Also necessary to send the account information to new users"),
'lang': fields.selection(_lang_get, required=True,

View File

@ -550,10 +550,10 @@ class stock_warehouse_orderpoint(osv.osv):
'location_id': fields.many2one('stock.location', 'Location', required=True, ondelete="cascade"),
'product_id': fields.many2one('product.product', 'Product', required=True, ondelete='cascade', domain=[('type','=','product')]),
'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True),
'product_min_qty': fields.float('Min Quantity', required=True,
'product_min_qty': fields.float('Minimum Quantity', required=True,
help="When the virtual stock goes below the Min Quantity specified for this field, OpenERP generates "\
"a procurement to bring the virtual stock to the Max Quantity."),
'product_max_qty': fields.float('Max Quantity', required=True,
'product_max_qty': fields.float('Maximum Quantity', required=True,
help="When the virtual stock goes below the Min Quantity, OpenERP generates "\
"a procurement to bring the virtual stock to the Quantity specified as Max Quantity."),
'qty_multiple': fields.integer('Qty Multiple', required=True,

View File

@ -280,12 +280,17 @@
<field name="type">form</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<group name="misc" position="after">
<group colspan="4" attrs="{'invisible':[('type','=','service')]}" groups="stock.group_stock_manager">
<separator string="Minimum Stock Rules" colspan="4"/>
<field name="orderpoint_ids" nolabel="1" colspan="4" context="{'default_product_id': active_id}"/>
</group>
</group>
<page string="Procurement &amp; Locations" position="inside">
<separator string="Minimum Stock Rules"/>
<field name="orderpoint_ids" widget="one2many_list" mode="tree" context="{'default_product_id': active_id}">
<tree string="Reordering Rules">
<field name="name"/>
<field name="warehouse_id"/>
<field name="product_min_qty"/>
<field name="product_max_qty"/>
</tree>
</field>
</page>
</field>
</record>

View File

@ -149,7 +149,7 @@
<field name="seller_ids" context="{'uom_id': uom_id}"/>
</page>
<page string="Descriptions">
<separator string="Description"/>
<separator string="Internal Description"/>
<field name="description"/>
<separator string="Sale Description"/>
<field name="description_sale" placeholder="This note will be displayed on quotations..."/>
@ -548,7 +548,7 @@
<field name="product_name"/>
<field name="product_code"/>
<field name="min_qty"/>
<field name="product_uom"/>
<field name="product_uom" groups="product.group_uom"/>
<field name="delay"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
@ -702,7 +702,7 @@
<field name="seller_ids"/>
</page>
<page string="Descriptions">
<separator string="Description"/>
<separator string="Internal Description"/>
<field name="description"/>
<separator string="Sale Description"/>
<field name="description_sale"/>

View File

@ -0,0 +1,62 @@
# Swedish 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:37+0000\n"
"PO-Revision-Date: 2012-06-26 22:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Swedish <sv@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-06-27 05:28+0000\n"
"X-Generator: Launchpad (build 15482)\n"
#. module: product_visible_discount
#: code:addons/product_visible_discount/product_visible_discount.py:153
#, python-format
msgid "No Sale Pricelist Found!"
msgstr "Ingen försäljningsprislista funnen!"
#. module: product_visible_discount
#: field:product.pricelist,visible_discount:0
msgid "Visible Discount"
msgstr "Synlig rabatt"
#. module: product_visible_discount
#: code:addons/product_visible_discount/product_visible_discount.py:145
#, python-format
msgid "No Purchase Pricelist Found!"
msgstr ""
#. module: product_visible_discount
#: model:ir.model,name:product_visible_discount.model_account_invoice_line
msgid "Invoice Line"
msgstr "Fakturarad"
#. module: product_visible_discount
#: model:ir.model,name:product_visible_discount.model_product_pricelist
msgid "Pricelist"
msgstr "Prislista"
#. module: product_visible_discount
#: code:addons/product_visible_discount/product_visible_discount.py:145
#, python-format
msgid "You must first define a pricelist on the supplier form!"
msgstr ""
#. module: product_visible_discount
#: model:ir.model,name:product_visible_discount.model_sale_order_line
msgid "Sales Order Line"
msgstr "Orderrad"
#. module: product_visible_discount
#: code:addons/product_visible_discount/product_visible_discount.py:153
#, python-format
msgid "You must first define a pricelist on the customer form!"
msgstr ""

View File

@ -663,7 +663,7 @@ msgstr ""
#. module: project
#: model:ir.model,name:project.model_mail_compose_message
msgid "E-mail composition wizard"
msgid "Email composition wizard"
msgstr ""
#. module: project

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.14\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
"PO-Revision-Date: 2011-08-03 23:22+0000\n"
"Last-Translator: Stefan Lind <Unknown>\n"
"PO-Revision-Date: 2012-06-26 07:07+0000\n"
"Last-Translator: Anders Wallenquist <anders.wallenquist@vertel.se>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-05-11 04:41+0000\n"
"X-Generator: Launchpad (build 15225)\n"
"X-Launchpad-Export-Date: 2012-06-27 05:28+0000\n"
"X-Generator: Launchpad (build 15482)\n"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder0
@ -54,13 +54,13 @@ msgstr "Datum när detta dokument blev skapat"
#: view:purchase.order:0 view:purchase.order.line:0 view:purchase.report:0
#: view:stock.picking:0
msgid "Group By..."
msgstr ""
msgstr "Gruppera på..."
#. module: purchase
#: field:purchase.order,create_uid:0 view:purchase.report:0
#: field:purchase.report,user_id:0
msgid "Responsible"
msgstr ""
msgstr "Ansvarig"
#. module: purchase
#: model:ir.actions.act_window,help:purchase.purchase_rfq
@ -86,7 +86,7 @@ msgstr ""
#. module: purchase
#: view:purchase.order:0
msgid "Approved purchase order"
msgstr ""
msgstr "Godkänd inköpsorder"
#. module: purchase
#: view:purchase.order:0 field:purchase.order,partner_id:0
@ -99,12 +99,12 @@ msgstr "Supplier"
#: model:ir.ui.menu,name:purchase.menu_product_pricelist_action2_purchase
#: model:ir.ui.menu,name:purchase.menu_purchase_config_pricelist
msgid "Pricelists"
msgstr ""
msgstr "Prislistor"
#. module: purchase
#: view:stock.picking:0
msgid "To Invoice"
msgstr ""
msgstr "Att fakturera"
#. module: purchase
#: view:purchase.order.line_invoice:0
@ -128,7 +128,7 @@ msgstr "Leverantörsfakturor"
#. module: purchase
#: view:purchase.report:0
msgid "Purchase Orders Statistics"
msgstr ""
msgstr "Inköpsorderstatistik"
#. module: purchase
#: model:process.transition,name:purchase.process_transition_packinginvoice0
@ -145,7 +145,7 @@ msgstr "No Pricelist !"
#. module: purchase
#: model:ir.model,name:purchase.model_purchase_config_wizard
msgid "purchase.config.wizard"
msgstr ""
msgstr "purchase.config.wizard"
#. module: purchase
#: view:board.board:0 model:ir.actions.act_window,name:purchase.purchase_draft
@ -155,7 +155,7 @@ msgstr "Offertförfrågan"
#. module: purchase
#: selection:purchase.config.wizard,default_method:0
msgid "Based on Receptions"
msgstr ""
msgstr "Baserad på mottagning"
#. module: purchase
#: field:purchase.order,company_id:0 field:purchase.order.line,company_id:0
@ -172,7 +172,7 @@ msgstr ""
#: model:ir.actions.act_window,name:purchase.action_purchase_order_monthly_categ_graph
#: view:purchase.report:0
msgid "Monthly Purchase by Category"
msgstr ""
msgstr "Månatlig försäljning per kategori"
#. module: purchase
#: view:purchase.order:0
@ -187,7 +187,7 @@ msgstr "Invoice Exception"
#. module: purchase
#: model:product.pricelist,name:purchase.list0
msgid "Default Purchase Pricelist"
msgstr "Default Purchase Pricelist"
msgstr "Standardinköpslista"
#. module: purchase
#: help:purchase.order,dest_address_id:0
@ -217,12 +217,12 @@ msgstr "Fax :"
#. module: purchase
#: view:purchase.order:0
msgid "To Approve"
msgstr ""
msgstr "Att godkänna"
#. module: purchase
#: view:res.partner:0
msgid "Purchase Properties"
msgstr ""
msgstr "Inköpsegenskaper"
#. module: purchase
#: model:ir.model,name:purchase.model_stock_partial_picking
@ -242,22 +242,22 @@ msgstr "Approve Purchase"
#. module: purchase
#: view:purchase.report:0 field:purchase.report,day:0
msgid "Day"
msgstr ""
msgstr "Dag"
#. module: purchase
#: selection:purchase.order,invoice_method:0
msgid "Based on generated draft invoice"
msgstr ""
msgstr "Baserad på genererad preleminär faktura"
#. module: purchase
#: view:purchase.report:0
msgid "Order of Day"
msgstr ""
msgstr "Dagens ordrar"
#. module: purchase
#: view:board.board:0
msgid "Monthly Purchases by Category"
msgstr ""
msgstr "Månatliga inköp per kategori"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_purchase_line_product_tree
@ -267,7 +267,7 @@ msgstr "Inköp"
#. module: purchase
#: view:purchase.order:0
msgid "Purchase order which are in draft state"
msgstr ""
msgstr "Preleminära inköpsorder"
#. module: purchase
#: view:purchase.order:0
@ -283,7 +283,7 @@ msgstr "Anteckningar"
#. module: purchase
#: selection:purchase.report,month:0
msgid "September"
msgstr ""
msgstr "september"
#. module: purchase
#: report:purchase.order:0 field:purchase.order,amount_tax:0
@ -341,7 +341,7 @@ msgstr "Cancelled"
#. module: purchase
#: view:purchase.order:0
msgid "Convert to Purchase Order"
msgstr ""
msgstr "Konvertera till inköpsorder"
#. module: purchase
#: field:purchase.order,pricelist_id:0 field:purchase.report,pricelist_id:0
@ -356,7 +356,7 @@ msgstr "Shipping Exception"
#. module: purchase
#: field:purchase.order.line,invoice_lines:0
msgid "Invoice Lines"
msgstr ""
msgstr "Fakturarader"
#. module: purchase
#: model:process.node,name:purchase.process_node_packinglist0
@ -382,13 +382,14 @@ msgstr "Reference"
#. module: purchase
#: model:ir.model,name:purchase.model_stock_move
msgid "Stock Move"
msgstr ""
msgstr "Lagertransaktion"
#. module: purchase
#: code:addons/purchase/purchase.py:419
#, python-format
msgid "You must first cancel all invoices related to this purchase order."
msgstr ""
"Du måste först avbryta all fakturering med anknytning till denna inköpsorder"
#. module: purchase
#: field:purchase.report,dest_address_id:0
@ -404,7 +405,7 @@ msgstr "TVA :"
#: code:addons/purchase/purchase.py:326
#, python-format
msgid "Purchase order '%s' has been set in draft state."
msgstr ""
msgstr "Inköpsorder '%s' har åter fått status utkast."
#. module: purchase
#: field:purchase.order.line,account_analytic_id:0
@ -414,7 +415,7 @@ msgstr "Analytic Account"
#. module: purchase
#: view:purchase.report:0 field:purchase.report,nbr:0
msgid "# of Lines"
msgstr ""
msgstr "# Rader"
#. module: purchase
#: code:addons/purchase/purchase.py:754 code:addons/purchase/purchase.py:769
@ -422,7 +423,7 @@ msgstr ""
#: code:addons/purchase/wizard/purchase_order_group.py:47
#, python-format
msgid "Warning"
msgstr ""
msgstr "Varning"
#. module: purchase
#: field:purchase.order,validator:0 view:purchase.report:0
@ -432,7 +433,7 @@ msgstr "Validerad av"
#. module: purchase
#: view:purchase.report:0
msgid "Order in last month"
msgstr ""
msgstr "Ordrar under senaste månaden"
#. module: purchase
#: code:addons/purchase/purchase.py:412
@ -443,7 +444,7 @@ msgstr ""
#. module: purchase
#: selection:purchase.order.line,state:0
msgid "Draft"
msgstr ""
msgstr "Preliminär"
#. module: purchase
#: report:purchase.order:0
@ -458,7 +459,7 @@ msgstr "Order Line"
#. module: purchase
#: help:purchase.order,shipped:0
msgid "It indicates that a picking has been done"
msgstr ""
msgstr "Anger att plockningen är klar."
#. module: purchase
#: view:purchase.order:0
@ -479,7 +480,7 @@ msgstr "Confirmed"
#. module: purchase
#: view:purchase.report:0 field:purchase.report,price_average:0
msgid "Average Price"
msgstr ""
msgstr "Snittpris"
#. module: purchase
#: view:stock.picking:0
@ -502,17 +503,17 @@ msgstr "Bekräfta"
#: model:ir.ui.menu,name:purchase.menu_action_picking_tree4_picking_to_invoice
#: selection:purchase.order,invoice_method:0
msgid "Based on receptions"
msgstr ""
msgstr "Baserad på mottagning"
#. module: purchase
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr ""
msgstr "Fel! Du kan inte skapa rekursiva bolagsstrukturer."
#. module: purchase
#: field:purchase.order,partner_ref:0
msgid "Supplier Reference"
msgstr ""
msgstr "Leverantörens referens"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_productrecept0
@ -563,7 +564,7 @@ msgstr "Skriv ut"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_view_purchase_order_group
msgid "Merge Purchase orders"
msgstr ""
msgstr "Sammanslagna inköpsordrar"
#. module: purchase
#: field:purchase.order,order_line:0
@ -584,32 +585,32 @@ msgstr "Fax:"
#. module: purchase
#: view:purchase.report:0 field:purchase.report,price_total:0
msgid "Total Price"
msgstr ""
msgstr "Totalt belopp"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_import_create_supplier_installer
msgid "Create or Import Suppliers"
msgstr ""
msgstr "Skapa eller importera leverantörer"
#. module: purchase
#: view:stock.picking:0
msgid "Available"
msgstr ""
msgstr "Tillgänglig"
#. module: purchase
#: field:purchase.report,partner_address_id:0
msgid "Address Contact Name"
msgstr ""
msgstr "Kontaktadressnamn"
#. module: purchase
#: report:purchase.order:0
msgid "Shipping address :"
msgstr "Shipping address :"
msgstr "Leveransadress :"
#. module: purchase
#: help:purchase.order,invoice_ids:0
msgid "Invoices generated for a purchase order"
msgstr ""
msgstr "Fakturor skapade för en inköpsorder"
#. module: purchase
#: code:addons/purchase/purchase.py:285 code:addons/purchase/purchase.py:348
@ -639,6 +640,8 @@ msgstr ""
#, python-format
msgid "There is no purchase journal defined for this company: \"%s\" (id:%d)"
msgstr ""
"Det finns ingen inköpssjournal definierad för det här företaget: \"%s\" "
"(id:%d)"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_invoicefrompackinglist0
@ -664,7 +667,7 @@ msgstr ""
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_configuration_misc
msgid "Miscellaneous"
msgstr ""
msgstr "Allmänt"
#. module: purchase
#: code:addons/purchase/purchase.py:769
@ -692,7 +695,7 @@ msgstr "Create invoice"
#: model:ir.ui.menu,name:purchase.menu_purchase_unit_measure_purchase
#: model:ir.ui.menu,name:purchase.menu_purchase_uom_form_action
msgid "Units of Measure"
msgstr ""
msgstr "Enhet"
#. module: purchase
#: field:purchase.order.line,move_dest_id:0
@ -713,13 +716,13 @@ msgstr "Fiscal Position"
#. module: purchase
#: selection:purchase.report,month:0
msgid "July"
msgstr ""
msgstr "juli"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_purchase_config_purchase
#: view:res.company:0
msgid "Configuration"
msgstr ""
msgstr "Konfiguration"
#. module: purchase
#: view:purchase.order:0
@ -756,22 +759,22 @@ msgstr "RFQ"
#: code:addons/purchase/edi/purchase_order.py:139
#, python-format
msgid "EDI Pricelist (%s)"
msgstr ""
msgstr "EDI-prislista (%s)"
#. module: purchase
#: selection:purchase.order,state:0
msgid "Waiting Approval"
msgstr ""
msgstr "Väntar på godkännande"
#. module: purchase
#: selection:purchase.report,month:0
msgid "January"
msgstr ""
msgstr "januari"
#. module: purchase
#: model:ir.actions.server,name:purchase.ir_actions_server_edi_purchase
msgid "Auto-email confirmed purchase orders"
msgstr ""
msgstr "Automatisk e-post bekräftade inköpsorder"
#. module: purchase
#: model:process.transition,name:purchase.process_transition_approvingpurchaseorder0
@ -783,18 +786,18 @@ msgstr ""
#: field:purchase.order,date_order:0 field:purchase.order.line,date_order:0
#: field:purchase.report,date:0 view:stock.picking:0
msgid "Order Date"
msgstr ""
msgstr "Orderdatum"
#. module: purchase
#: constraint:stock.move:0
msgid "You must assign a production lot for this product"
msgstr ""
msgstr "Du måste tilldela ett produktionsbatch för denna produkt"
#. module: purchase
#: model:ir.model,name:purchase.model_res_partner
#: field:purchase.order.line,partner_id:0 view:stock.picking:0
msgid "Partner"
msgstr ""
msgstr "Företag"
#. module: purchase
#: model:process.node,name:purchase.process_node_invoiceafterpacking0
@ -810,7 +813,7 @@ msgstr "Qty"
#. module: purchase
#: view:purchase.report:0
msgid "Month-1"
msgstr ""
msgstr "Månad-1"
#. module: purchase
#: help:purchase.order,minimum_planned_date:0
@ -824,17 +827,17 @@ msgstr ""
#. module: purchase
#: model:ir.model,name:purchase.model_purchase_order_group
msgid "Purchase Order Merge"
msgstr ""
msgstr "Inköpsorderradsammanslagning"
#. module: purchase
#: view:purchase.report:0
msgid "Order in current month"
msgstr ""
msgstr "Ordrar i innevarande månad"
#. module: purchase
#: view:purchase.report:0 field:purchase.report,delay_pass:0
msgid "Days to Deliver"
msgstr ""
msgstr "Dagar för att leverera"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_action_picking_tree_in_move
@ -845,22 +848,22 @@ msgstr "Ta emot Produkter"
#. module: purchase
#: model:ir.model,name:purchase.model_procurement_order
msgid "Procurement"
msgstr ""
msgstr "Anskaffning"
#. module: purchase
#: view:purchase.order:0 field:purchase.order,invoice_ids:0
msgid "Invoices"
msgstr ""
msgstr "Fakturor"
#. module: purchase
#: selection:purchase.report,month:0
msgid "December"
msgstr ""
msgstr "december"
#. module: purchase
#: field:purchase.config.wizard,config_logo:0
msgid "Image"
msgstr ""
msgstr "Bild"
#. module: purchase
#: view:purchase.report:0
@ -870,17 +873,17 @@ msgstr ""
#. module: purchase
#: view:purchase.order:0
msgid "Approved purchase orders"
msgstr ""
msgstr "Godkända inköpsordrar"
#. module: purchase
#: view:purchase.report:0 field:purchase.report,month:0
msgid "Month"
msgstr ""
msgstr "Månad"
#. module: purchase
#: model:email.template,subject:purchase.email_template_edi_purchase
msgid "${object.company_id.name} Order (Ref ${object.name or 'n/a' })"
msgstr ""
msgstr "${object.company_id.name} Order (Ref ${object.name or 'n/a' })"
#. module: purchase
#: report:purchase.quotation:0
@ -895,12 +898,12 @@ msgstr "Inköpsorder för godkännande"
#. module: purchase
#: view:purchase.order:0
msgid "Total Untaxed amount"
msgstr ""
msgstr "Totalt ex moms"
#. module: purchase
#: model:res.groups,name:purchase.group_purchase_user
msgid "User"
msgstr ""
msgstr "Användare"
#. module: purchase
#: field:purchase.order,shipped:0 field:purchase.order,shipped_rate:0
@ -922,18 +925,18 @@ msgstr ""
#. module: purchase
#: view:stock.picking:0
msgid "Is a Back Order"
msgstr ""
msgstr "Är en restorder"
#. module: purchase
#: model:process.node,note:purchase.process_node_invoiceafterpacking0
#: model:process.node,note:purchase.process_node_invoicecontrol0
msgid "To be reviewed by the accountant."
msgstr ""
msgstr "Skall granskas av bokföraren."
#. module: purchase
#: help:purchase.order,amount_total:0
msgid "The total amount"
msgstr ""
msgstr "Den totala summan"
#. module: purchase
#: report:purchase.order:0
@ -943,18 +946,18 @@ msgstr "Taxes :"
#. module: purchase
#: field:purchase.order,invoiced_rate:0 field:purchase.order.line,invoiced:0
msgid "Invoiced"
msgstr "Invoiced"
msgstr "Fakturerad"
#. module: purchase
#: view:purchase.report:0 field:purchase.report,category_id:0
msgid "Category"
msgstr ""
msgstr "Kategori"
#. module: purchase
#: model:process.node,note:purchase.process_node_approvepurchaseorder0
#: model:process.node,note:purchase.process_node_confirmpurchaseorder0
msgid "State of the Purchase Order."
msgstr ""
msgstr "Status för inköpsordern."
#. module: purchase
#: field:purchase.order,dest_address_id:0
@ -964,12 +967,12 @@ msgstr "Destination Address"
#. module: purchase
#: field:purchase.report,state:0
msgid "Order State"
msgstr ""
msgstr "Orderstatus"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_product_category_config_purchase
msgid "Product Categories"
msgstr ""
msgstr "Produktkategorier"
#. module: purchase
#: selection:purchase.config.wizard,default_method:0
@ -979,12 +982,12 @@ msgstr ""
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_view_purchase_line_invoice
msgid "Create invoices"
msgstr ""
msgstr "Skapa fakturor"
#. module: purchase
#: sql_constraint:res.company:0
msgid "The company name must be unique !"
msgstr ""
msgstr "Bolagsnamnet måste vara unikt !"
#. module: purchase
#: model:ir.model,name:purchase.model_purchase_order_line
@ -1005,7 +1008,7 @@ msgstr ""
#. module: purchase
#: help:purchase.order,amount_untaxed:0
msgid "The amount without tax"
msgstr ""
msgstr "Summa utan moms."
#. module: purchase
#: code:addons/purchase/purchase.py:754
@ -1017,7 +1020,7 @@ msgstr ""
#: code:addons/purchase/purchase.py:907
#, python-format
msgid "PO: %s"
msgstr ""
msgstr "IO: %s"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_purchaseinvoice0
@ -1035,22 +1038,22 @@ msgstr "Untaxed Amount"
#. module: purchase
#: help:purchase.order,invoiced:0
msgid "It indicates that an invoice has been paid"
msgstr ""
msgstr "Anger att en faktura är betald."
#. module: purchase
#: model:process.node,note:purchase.process_node_packinginvoice0
msgid "Outgoing products to invoice"
msgstr ""
msgstr "Utlevererade produkter att fakturera"
#. module: purchase
#: selection:purchase.report,month:0
msgid "August"
msgstr ""
msgstr "augusti"
#. module: purchase
#: constraint:stock.move:0
msgid "You try to assign a lot which is not from the same product"
msgstr ""
msgstr "Du försöker tilldela ett parti som inte är från samma produkt."
#. module: purchase
#: help:purchase.order,date_order:0
@ -1060,12 +1063,12 @@ msgstr "Date on which this document has been created."
#. module: purchase
#: view:res.partner:0
msgid "Sales & Purchases"
msgstr ""
msgstr "Försäljning och inköp"
#. module: purchase
#: selection:purchase.report,month:0
msgid "June"
msgstr ""
msgstr "juni"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_invoicefrompurchase0
@ -1079,17 +1082,17 @@ msgstr ""
#: model:ir.actions.act_window,name:purchase.action_email_templates
#: model:ir.ui.menu,name:purchase.menu_email_templates
msgid "Email Templates"
msgstr ""
msgstr "E-postmallar"
#. module: purchase
#: model:ir.model,name:purchase.model_purchase_report
msgid "Purchases Orders"
msgstr ""
msgstr "Inköpsorder"
#. module: purchase
#: view:purchase.order.line:0
msgid "Manual Invoices"
msgstr ""
msgstr "Manuella fakturor"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_procurement_management_invoice
@ -1100,17 +1103,17 @@ msgstr "Invoice Control"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_purchase_uom_categ_form_action
msgid "UoM Categories"
msgstr ""
msgstr "Enhetskategorier"
#. module: purchase
#: selection:purchase.report,month:0
msgid "November"
msgstr ""
msgstr "november"
#. module: purchase
#: view:purchase.report:0
msgid "Extended Filters..."
msgstr ""
msgstr "Utökade filter..."
#. module: purchase
#: view:purchase.config.wizard:0
@ -1130,21 +1133,24 @@ msgid ""
"can import your existing partners by CSV spreadsheet from \"Import Data\" "
"wizard"
msgstr ""
"Skapa eller Importera leverantörer och deras kontakter manuellt från detta "
"formulär eller så kan du importera dina befintliga företag med CSV-filer "
"från \"Importera data\" guiden."
#. module: purchase
#: model:process.transition,name:purchase.process_transition_createpackinglist0
msgid "Pick list generated"
msgstr ""
msgstr "Plocklista skapad"
#. module: purchase
#: view:purchase.order:0
msgid "Exception"
msgstr ""
msgstr "Undantag"
#. module: purchase
#: selection:purchase.report,month:0
msgid "October"
msgstr ""
msgstr "oktober"
#. module: purchase
#: view:purchase.order:0
@ -1154,17 +1160,17 @@ msgstr "Compute"
#. module: purchase
#: view:stock.picking:0
msgid "Incoming Shipments Available"
msgstr ""
msgstr "Inkommande leveranser tillgängliga."
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_purchase_partner_cat
msgid "Address Book"
msgstr ""
msgstr "Adressbok"
#. module: purchase
#: model:ir.model,name:purchase.model_res_company
msgid "Companies"
msgstr ""
msgstr "Bolag"
#. module: purchase
#: view:purchase.order:0
@ -1194,12 +1200,12 @@ msgstr ""
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_purchase_deshboard
msgid "Dashboard"
msgstr ""
msgstr "Infopanel"
#. module: purchase
#: sql_constraint:stock.picking:0
msgid "Reference must be unique per Company!"
msgstr ""
msgstr "Referensen måste vara unik per bolag!"
#. module: purchase
#: view:purchase.report:0 field:purchase.report,price_standard:0
@ -1209,17 +1215,17 @@ msgstr ""
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_partner_categories_in_form
msgid "Partner Categories"
msgstr ""
msgstr "Företagskategorier"
#. module: purchase
#: help:purchase.order,amount_tax:0
msgid "The tax amount"
msgstr ""
msgstr "Moms"
#. module: purchase
#: view:purchase.order:0 view:purchase.report:0
msgid "Quotations"
msgstr ""
msgstr "Offerter"
#. module: purchase
#: help:purchase.order,invoice_method:0
@ -1233,7 +1239,7 @@ msgstr ""
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_supplier_address_form
msgid "Addresses"
msgstr ""
msgstr "Adresser"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.purchase_rfq
@ -1306,7 +1312,7 @@ msgstr ""
#: view:purchase.order.line:0 field:purchase.order.line,state:0
#: view:purchase.report:0 view:stock.picking:0
msgid "State"
msgstr ""
msgstr "Tillstånd"
#. module: purchase
#: model:process.node,name:purchase.process_node_approvepurchaseorder0
@ -1318,7 +1324,7 @@ msgstr "Approved"
#. module: purchase
#: view:purchase.order.line:0
msgid "General Information"
msgstr ""
msgstr "Allmän information"
#. module: purchase
#: view:purchase.order:0
@ -1351,7 +1357,7 @@ msgstr "Faktura"
#. module: purchase
#: model:process.node,note:purchase.process_node_purchaseorder0
msgid "Confirmed purchase order to invoice"
msgstr ""
msgstr "Bekräftade inköpsorder att fakturera"
#. module: purchase
#: model:process.transition.action,name:purchase.process_transition_action_approvingcancelpurchaseorder0
@ -1384,12 +1390,12 @@ msgstr "Inköpsordrar"
#. module: purchase
#: sql_constraint:purchase.order:0
msgid "Order Reference must be unique per Company!"
msgstr ""
msgstr "Orderreferensen måste vara unik per bolag!"
#. module: purchase
#: field:purchase.order,origin:0
msgid "Source Document"
msgstr ""
msgstr "Källdokument"
#. module: purchase
#: view:purchase.order.group:0
@ -1404,7 +1410,7 @@ msgstr ""
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_action_picking_tree4
msgid "Incoming Shipments"
msgstr ""
msgstr "Inkommande leveranser"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_purchase_order_by_user_all
@ -1425,7 +1431,7 @@ msgstr "Tél. :"
#. module: purchase
#: view:purchase.report:0
msgid "Order of Month"
msgstr ""
msgstr "Ordrar denna månad"
#. module: purchase
#: report:purchase.order:0
@ -1484,7 +1490,7 @@ msgstr ""
#. module: purchase
#: field:purchase.order.line,date_planned:0
msgid "Scheduled Date"
msgstr ""
msgstr "Planerat datum"
#. module: purchase
#: field:purchase.order,product_id:0 view:purchase.order.line:0
@ -1497,7 +1503,7 @@ msgstr "Product"
#: model:process.transition,name:purchase.process_transition_confirmingpurchaseorder0
#: model:process.transition,name:purchase.process_transition_confirmingpurchaseorder1
msgid "Confirmation"
msgstr ""
msgstr "Bekräftan"
#. module: purchase
#: report:purchase.order:0 field:purchase.order.line,name:0
@ -1508,7 +1514,7 @@ msgstr "Beskrivning"
#. module: purchase
#: view:purchase.report:0
msgid "Order of Year"
msgstr ""
msgstr "Ordrar i år"
#. module: purchase
#: report:purchase.quotation:0
@ -1518,7 +1524,7 @@ msgstr "Expected Delivery address:"
#. module: purchase
#: view:stock.picking:0
msgid "Journal"
msgstr ""
msgstr "Journal"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_stock_move_report_po
@ -1529,7 +1535,7 @@ msgstr "Mottagningsanalys"
#. module: purchase
#: field:res.company,po_lead:0
msgid "Purchase Lead Time"
msgstr ""
msgstr "Leverantörens ledtid"
#. module: purchase
#: model:ir.actions.act_window,help:purchase.action_supplier_address_form
@ -1547,7 +1553,7 @@ msgstr "Delivery"
#. module: purchase
#: view:purchase.order:0
msgid "Purchase orders which are in done state."
msgstr ""
msgstr "Klara inköpsordrar"
#. module: purchase
#: field:purchase.order.line,product_uom:0
@ -1567,7 +1573,7 @@ msgstr "Väntar"
#. module: purchase
#: field:purchase.order,partner_address_id:0
msgid "Address"
msgstr ""
msgstr "Adress"
#. module: purchase
#: field:purchase.report,product_uom:0
@ -1592,7 +1598,7 @@ msgstr "Untaxed amount"
#. module: purchase
#: view:stock.picking:0
msgid "Picking to Invoice"
msgstr ""
msgstr "Plockning att fakturera"
#. module: purchase
#: view:purchase.config.wizard:0
@ -1611,13 +1617,13 @@ msgstr ""
#. module: purchase
#: selection:purchase.report,month:0
msgid "February"
msgstr ""
msgstr "februari"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.action_purchase_order_report_all
#: model:ir.ui.menu,name:purchase.menu_action_purchase_order_report_all
msgid "Purchase Analysis"
msgstr ""
msgstr "Inköpsanalys"
#. module: purchase
#: report:purchase.order:0
@ -1647,17 +1653,17 @@ msgstr ""
#. module: purchase
#: view:purchase.order:0
msgid "Purchase Control"
msgstr "Purchase Control"
msgstr "Inköpskontroll"
#. module: purchase
#: selection:purchase.report,month:0
msgid "March"
msgstr ""
msgstr "mars"
#. module: purchase
#: selection:purchase.report,month:0
msgid "April"
msgstr ""
msgstr "april"
#. module: purchase
#: view:purchase.order.group:0
@ -1689,7 +1695,7 @@ msgstr ""
#: model:product.pricelist.type,name:purchase.pricelist_type_purchase
#: field:res.partner,property_product_pricelist_purchase:0
msgid "Purchase Pricelist"
msgstr "Purchase Pricelist"
msgstr "Inköpsprislista"
#. module: purchase
#: field:purchase.order,invoice_method:0
@ -1699,7 +1705,7 @@ msgstr "Invoicing Control"
#. module: purchase
#: view:stock.picking:0
msgid "Back Orders"
msgstr ""
msgstr "Restordrar"
#. module: purchase
#: model:process.transition.action,name:purchase.process_transition_action_approvingpurchaseorder0
@ -1709,7 +1715,7 @@ msgstr "Approve"
#. module: purchase
#: model:product.pricelist.version,name:purchase.ver0
msgid "Default Purchase Pricelist Version"
msgstr "Default Purchase Pricelist Version"
msgstr "Standardinköpsprislisteversion"
#. module: purchase
#: view:purchase.order.line:0
@ -1732,7 +1738,7 @@ msgstr ""
#: code:addons/purchase/purchase.py:426
#, python-format
msgid "Purchase order '%s' is cancelled."
msgstr ""
msgstr "Inköpsorder '%s' är avbruten."
#. module: purchase
#: field:purchase.order,amount_total:0
@ -1742,12 +1748,12 @@ msgstr "Total"
#. module: purchase
#: model:ir.ui.menu,name:purchase.menu_product_pricelist_action_purhase
msgid "Pricelist Versions"
msgstr ""
msgstr "Prislisteversioner"
#. module: purchase
#: constraint:res.partner:0
msgid "Error ! You cannot create recursive associated members."
msgstr ""
msgstr "Fel ! Du kan inte ansluta medlemmar rekursivt"
#. module: purchase
#: code:addons/purchase/purchase.py:359
@ -1839,32 +1845,32 @@ msgstr ""
#. module: purchase
#: selection:purchase.report,month:0
msgid "May"
msgstr ""
msgstr "maj"
#. module: purchase
#: model:res.groups,name:purchase.group_purchase_manager
msgid "Manager"
msgstr ""
msgstr "Chef"
#. module: purchase
#: view:purchase.config.wizard:0
msgid "res_config_contents"
msgstr ""
msgstr "res_config_contents"
#. module: purchase
#: view:purchase.report:0
msgid "Order in current year"
msgstr ""
msgstr "Ordrar i innevarande år"
#. module: purchase
#: model:process.process,name:purchase.process_process_purchaseprocess0
msgid "Purchase"
msgstr ""
msgstr "Inköp"
#. module: purchase
#: view:purchase.report:0 field:purchase.report,name:0
msgid "Year"
msgstr ""
msgstr "År"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.purchase_line_form_action2
@ -1892,7 +1898,7 @@ msgstr "Välj en öppen säljorder"
#. module: purchase
#: view:purchase.report:0
msgid "Orders"
msgstr ""
msgstr "Ordrar"
#. module: purchase
#: help:purchase.order,name:0
@ -1906,7 +1912,7 @@ msgstr ""
#: model:ir.actions.act_window,name:purchase.open_board_purchase
#: model:ir.ui.menu,name:purchase.menu_board_purchase
msgid "Purchase Dashboard"
msgstr ""
msgstr "Inköpsorder infopanel"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
@ -2177,3 +2183,6 @@ msgstr ""
#~ msgid "Products Categories"
#~ msgstr "Produktkategorier"
#~ msgid "Not invoiced"
#~ msgstr "Icke fakturerat"

View File

@ -31,6 +31,7 @@ import decimal_precision as dp
class purchase_requisition(osv.osv):
_name = "purchase.requisition"
_description="Purchase Requisition"
_inherit = ['ir.needaction_mixin', 'mail.thread']
_columns = {
'name': fields.char('Requisition Reference', size=32,required=True),
'origin': fields.char('Source', size=32),
@ -43,10 +44,10 @@ class purchase_requisition(osv.osv):
'purchase_ids' : fields.one2many('purchase.order','requisition_id','Purchase Orders',states={'done': [('readonly', True)]}),
'line_ids' : fields.one2many('purchase.requisition.line','requisition_id','Products to Purchase',states={'done': [('readonly', True)]}),
'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse'),
'state': fields.selection([('draft','New'),('in_progress','In Progress'),('cancel','Cancelled'),('done','Done')], 'Status', required=True)
'state': fields.selection([('draft','New'),('in_progress','Sent to Suppliers'),('cancel','Cancelled'),('done','Purchase Done')], 'Status', required=True)
}
_defaults = {
'date_start': time.strftime('%Y-%m-%d %H:%M:%S'),
'date_start': lambda *args: time.strftime('%Y-%m-%d %H:%M:%S'),
'state': 'draft',
'exclusive': 'multiple',
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'purchase.requisition', context=c),
@ -63,6 +64,7 @@ class purchase_requisition(osv.osv):
'name': self.pool.get('ir.sequence').get(cr, uid, 'purchase.order.requisition'),
})
return super(purchase_requisition, self).copy(cr, uid, id, default, context)
def tender_cancel(self, cr, uid, ids, context=None):
purchase_order_obj = self.pool.get('purchase.order')
for purchase in self.browse(cr, uid, ids, context=context):
@ -70,20 +72,36 @@ class purchase_requisition(osv.osv):
if str(purchase_id.state) in('draft','wait'):
purchase_order_obj.action_cancel(cr,uid,[purchase_id.id])
self.write(cr, uid, ids, {'state': 'cancel'})
self.cancel_send_note(cr, uid, ids, context=context)
return True
def tender_in_progress(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state':'in_progress'} ,context=context)
self.in_progress_send_note(cr, uid, ids, context=context)
return True
def tender_reset(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state': 'draft'})
self.reset_send_note(cr, uid, ids, context=context)
return True
def tender_done(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state':'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S')}, context=context)
self.done_to_send_note(cr, uid, ids, context=context)
return True
def in_progress_send_note(self, cr, uid, ids, context=None):
self.message_append_note(cr, uid, ids, body=_("Draft Requisition has been <b>sent to suppliers</b>."), context=context)
def reset_send_note(self, cr, uid, ids, context=None):
self.message_append_note(cr, uid, ids, body=_("Purchase Requisition has been set to <b>draft</b>."), context=context)
def done_to_send_note(self, cr, uid, ids, context=None):
self.message_append_note(cr, uid, ids, body=_("Purchase Requisition has been <b>done</b>."), context=context)
def cancel_send_note(self, cr, uid, ids, context=None):
self.message_append_note(cr, uid, ids, body=_("Purchase Requisition has been <b>cancelled</b>."), context=context)
def _planned_date(self, requisition, delay=0.0):
company = requisition.company_id
date_planned = False
@ -164,9 +182,45 @@ class purchase_requisition(osv.osv):
}, context=context)
return res
def get_needaction_user_ids(self, cr, uid, ids, context=None):
result = dict.fromkeys(ids, [])
for obj in self.browse(cr, uid, ids, context=context):
if (obj.state == 'draft') and obj.user_id:
result[obj.id] = [obj.user_id.id]
return result
def create_send_note(self, cr, uid, ids, context=None):
return self.message_append_note(cr, uid, ids, body=_("Purchase Requisition has been <b>created</b>."), context=context)
def create(self, cr, uid, vals, context=None):
requisition = super(purchase_requisition, self).create(cr, uid, vals, context=context)
if requisition:
self.create_send_note(cr, uid, [requisition], context=context)
return requisition
purchase_requisition()
class mail_message(osv.osv):
_inherit = 'mail.message'
def schedule_with_attach(self, cr, uid, email_from, email_to, subject, body, model=False, email_cc=None,
email_bcc=None, reply_to=False, attachments=None, message_id=False, references=False,
res_id=False, subtype='plain', headers=None, mail_server_id=False, auto_delete=False,
context=None):
purchase_order_obj = self.pool.get('purchase.order')
requisition_id = purchase_order_obj.browse(cr, uid, res_id, context=context).requisition_id.id
result = super(mail_message, self).schedule_with_attach(cr, uid, email_from, email_to, subject, body, model=model, email_cc=email_cc,
email_bcc=email_bcc, reply_to=reply_to, attachments=attachments, message_id=message_id, references=references,
res_id=res_id, subtype='plain', headers=headers, mail_server_id=mail_server_id, auto_delete=auto_delete,
context=context)
if requisition_id:
result = self.schedule_with_attach(cr, uid, email_from, email_to, subject, body, 'purchase.requisition', email_cc=email_cc,
email_bcc=email_bcc, reply_to=reply_to, attachments=attachments, message_id=message_id, references=references,
res_id=requisition_id, subtype='plain', headers=headers, mail_server_id=mail_server_id, auto_delete=auto_delete,
context=context)
return result
class purchase_requisition_line(osv.osv):
_name = "purchase.requisition.line"
@ -203,13 +257,14 @@ class purchase_order(osv.osv):
_columns = {
'requisition_id' : fields.many2one('purchase.requisition','Purchase Requisition')
}
def wkf_confirm_order(self, cr, uid, ids, context=None):
res = super(purchase_order, self).wkf_confirm_order(cr, uid, ids, context=context)
proc_obj = self.pool.get('procurement.order')
for po in self.browse(cr, uid, ids, context=context):
if po.requisition_id and (po.requisition_id.exclusive=='exclusive'):
for order in po.requisition_id.purchase_ids:
if order.id<>po.id:
if order.id != po.id:
proc_ids = proc_obj.search(cr, uid, [('purchase_id', '=', order.id)])
if proc_ids and po.state=='confirmed':
proc_obj.write(cr, uid, proc_ids, {'purchase_id': po.id})
@ -224,7 +279,7 @@ class product_product(osv.osv):
_inherit = 'product.product'
_columns = {
'purchase_requisition': fields.boolean('Purchase Requisition', help="Check this box so that requisitions generates purchase requisitions instead of directly requests for quotations.")
'purchase_requisition': fields.boolean('Purchase Requisition', help="Check this box to generates purchase requisition instead of generating requests for quotation from procurement.")
}
_defaults = {
'purchase_requisition': False
@ -239,27 +294,31 @@ class procurement_order(osv.osv):
'requisition_id' : fields.many2one('purchase.requisition','Latest Requisition')
}
def make_po(self, cr, uid, ids, context=None):
res = {}
sequence_obj = self.pool.get('ir.sequence')
res = super(procurement_order, self).make_po(cr, uid, ids, context=context)
for proc_id, po_id in res.items():
procurement = self.browse(cr, uid, proc_id, context=context)
requisition_id=False
if procurement.product_id.purchase_requisition:
requisition_id=self.pool.get('purchase.requisition').create(cr, uid, {
'name': sequence_obj.get(cr, uid, 'purchase.order.requisition'),
requisition_obj = self.pool.get('purchase.requisition')
warehouse_obj = self.pool.get('stock.warehouse')
procurement = self.browse(cr, uid, ids, context=context)[0]
if procurement.product_id.purchase_requisition:
seq_name = sequence_obj.get(cr, uid, 'purchase.order.requisition')
warehouse_id = warehouse_obj.search(cr, uid, [('company_id', '=', procurement.company_id.id or company.id)], context=context)
res[procurement.id] = requisition_obj.create(cr, uid,
{
'name': seq_name,
'origin': procurement.origin,
'date_end': procurement.date_planned,
'warehouse_id':procurement.purchase_id and procurement.purchase_id.warehouse_id.id,
'warehouse_id':warehouse_id and warehouse_id[0] or False,
'company_id':procurement.company_id.id,
'line_ids': [(0,0,{
'product_id': procurement.product_id.id,
'product_uom_id': procurement.product_uom.id,
'product_qty': procurement.product_qty
})],
'purchase_ids': [(6,0,[po_id])]
})],
})
self.write(cr,uid,[proc_id],{'requisition_id':requisition_id},context=context)
self.write(cr,uid,[procurement.id],{'state': 'running','requisition_id': res[procurement.id]},context=context)
else:
res = super(procurement_order, self).make_po(cr, uid, ids, context=context)
return res
procurement_order()

View File

@ -13,7 +13,7 @@
<!--Resource: purchase.requisition-->
<record id="requisition1" model="purchase.requisition">
<field name="user_id" model="res.users"/>
<field name="user_id" ref="base.user_root"/>
<field name="exclusive">exclusive</field>
<field name="date_start" eval="time.strftime('%Y/%m/%d %H:%M:%S')"/>
<field name="warehouse_id" ref="stock.stock_warehouse_shop0"/>

View File

@ -2,7 +2,6 @@
<openerp>
<data>
<record model="ir.ui.view" id="purchase_order_form_inherit">
<field name="name">purchase.order.form.inherit</field>
<field name="type">form</field>
@ -34,14 +33,17 @@
<field name="arch" type="xml">
<form string="Purchase Requisition" version="7.0">
<header>
<button name="tender_in_progress" states="draft" string="Start" type="object" />
<button name="tender_in_progress" states="draft" string="Send to Suppliers" type="object" />
<button name="tender_reset" states="done,cancel" string="Reset to Draft" type="object" />
<button name="tender_done" states="in_progress" string="Done" type="object" />
<button name="tender_done" states="in_progress" string=" Purchase Done" type="object" />
<button name="tender_cancel" states="draft,in_progress" string="Cancel" type="object" />
<field name="state" widget="statusbar" statusbar_visible="draft,in_progress,done" statusbar_colors='{"in_progress":"blue"}'/>
</header>
<sheet>
<label for="name" class="oe_edit_only"/>
<div class="oe_edit_only">
<label for="name" class="oe_inline"/>,
<label for="origin" class="oe_inline"/>
</div>
<h1>
<field name="name" class="oe_inline"/>,
<field name="origin" class="oe_inline"/>
@ -50,23 +52,24 @@
<group>
<field name="user_id"/>
<field name="exclusive"/>
</group><group>
</group>
<group>
<field name="date_start"/>
<field name="date_end"/>
<field name="warehouse_id" widget="selection"/>
<field name="warehouse_id" widget="selection" groups="stock.group_locations"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
</group>
<notebook colspan="4">
<notebook>
<page string="Products">
<field name="line_ids">
<tree string="Products" editable="bottom">
<field name="product_id" on_change="onchange_product_id(product_id,product_uom_id)"/>
<field name="product_qty"/>
<field name="product_uom_id"/>
<field name="product_uom_id" groups="product.group_uom"/>
</tree>
<form string="Products" version="7.0">
<group col="4">
<group>
<field name="product_id" />
<field name="product_qty"/>
<field name="product_uom_id" />
@ -74,17 +77,19 @@
</group>
</form>
</field>
<separator string="Terms and Conditions"/>
<field name="description"/>
</page>
<page string="Quotations">
<field name="purchase_ids">
<div class="oe_right oe_button_box" style="margin-top: 10px">
<button name="%(action_purchase_requisition_partner)d" type="action"
string="Request a Quotation" icon="gtk-execute"
attrs="{'invisible': [('line_ids','=',False),('state', 'not in', ('in_progress'))]}"/>
</div>
<separator string="Quotations"/>
<field name="purchase_ids" readonly="1">
<tree string="Purchase Order">
<field name="name" string="Reference"/>
<field name="date_order" string="Order Date"/>
<field name="partner_id"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="location_id"/>
<field name="location_id" groups="stock.group_locations"/>
<field name="minimum_planned_date"/>
<field name="origin"/>
<field name="state"/>
@ -92,12 +97,15 @@
<button name="purchase_confirm" states="draft" string="Confirm Purchase Order" icon="gtk-apply"/>
<button name="purchase_approve" states="confirmed" string="Approved by Supplier" icon="gtk-ok"/>
</tree>
</field>
<button name="%(action_purchase_requisition_partner)d" string="Request a Quotation" type="action" icon="gtk-execute"
attrs="{'readonly': [('state', '=', 'done')]}" />
</page>
</field>
<separator string="Terms and Conditions"/>
<field name="description"/>
</page>
</notebook>
</sheet>
<footer>
<field name="message_ids" widget="ThreadView"/>
</footer>
</form>
</field>
</record>
@ -106,15 +114,17 @@
<field name="type">tree</field>
<field name="model">purchase.requisition</field>
<field name="arch" type="xml">
<tree colors="grey:state == 'done';red:date_end&lt;current_date and state not in ('done','cancel');black:date_end&gt;=current_date;" string="Purchase Requisition">
<tree fonts="bold:needaction_pending==True" colors="grey:state == 'cancel';red:date_end and date_end&lt;current_date;black:date_end&gt;current_date;" string="Purchase Requisition">
<field name="needaction_pending" invisible="1"/>
<field name="name"/>
<field name="user_id"/>
<field name="date_start"/>
<field name="user_id"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<field name="date_end"/>
<field name="origin"/>
<field name="state"/>
</tree>
</field>
</field>
</record>
<record id="view_purchase_requisition_filter" model="ir.ui.view">
@ -123,19 +133,20 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Purchase Requisition">
<group>
<group>
<field name="name" string="Purchase Requisition"/>
<separator orientation="vertical"/>
<filter icon="terp-document-new" name="draft" string="New" domain="[('state','=','draft')]" help="New Purchase Requisition"/>
<filter icon="terp-camera_test" string="In Progress" domain="[('state','=','in_progress')]" help="Purchase Requisition in negociation"/>
<filter icon="terp-dialog-close" string="Done" domain="[('state','=','done')]" help="Current Purchase Requisition"/>
<filter icon="terp-camera_test" string="Sent to Suppliers" domain="[('state','=','in_progress')]" help="Purchase Requisition in negociation"/>
<filter icon="terp-dialog-close" string="Purchase Done" domain="[('state','=','done')]" help="Current Purchase Requisition"/>
<separator orientation="vertical"/>
<filter icon="terp-personal-" string="Unassigned" domain="[('user_id','=', False)]" help="Unassigned Requisition"/>
<separator orientation="vertical"/>
<field name="user_id" />
<field name="exclusive" />
</group>
<newline/>
<group expand="0" string="Group By...">
<group expand="0" string="Group By...">
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>
<filter string="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
@ -144,7 +155,7 @@
<filter string="Start Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_start'}"/>
<filter string="End Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_end'}"/>
</group>
</search>
</search>
</field>
</record>
@ -186,7 +197,7 @@
<field name="model">procurement.order</field>
<field name="inherit_id" ref="procurement.procurement_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='close_move']" position="after">
<xpath expr="//field[@name='close_move']" position="after">
<field name="requisition_id"/>
</xpath>
</field>

View File

@ -28,7 +28,7 @@ class purchase_requisition_partner(osv.osv_memory):
_name = "purchase.requisition.partner"
_description = "Purchase Requisition Partner"
_columns = {
'partner_id': fields.many2one('res.partner', 'Partner', required=True,domain=[('supplier', '=', True)]),
'partner_id': fields.many2one('res.partner', 'Supplier', required=True,domain=[('supplier', '=', True)]),
}
def view_init(self, cr, uid, fields_list, context=None):

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.14\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
"PO-Revision-Date: 2012-06-21 15:07+0000\n"
"PO-Revision-Date: 2012-06-26 21:48+0000\n"
"Last-Translator: Anders Wallenquist <anders.wallenquist@vertel.se>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-22 04:44+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-06-27 05:28+0000\n"
"X-Generator: Launchpad (build 15482)\n"
#. module: report_intrastat
#: report:account.invoice.intrastat:0
@ -111,7 +111,7 @@ msgstr "Fakturadatum"
#. module: report_intrastat
#: selection:report.intrastat,month:0
msgid "June"
msgstr "Juni"
msgstr "juni"
#. module: report_intrastat
#: report:account.invoice.intrastat:0
@ -194,7 +194,7 @@ msgstr "Land"
#. module: report_intrastat
#: selection:report.intrastat,month:0
msgid "September"
msgstr "September"
msgstr "september"
#. module: report_intrastat
#: report:account.invoice.intrastat:0

View File

@ -72,7 +72,7 @@ msgstr ""
#. module: report_webkit_sample
#: report:addons/report_webkit_sample/report/report_webkit_html.mako:25
msgid "E-mail"
msgid "Email"
msgstr ""
#. module: report_webkit_sample

View File

@ -22,7 +22,7 @@
<tr><td>${_("Fax")}: ${inv.address_invoice_id.fax|entity}</td></tr>
%endif
%if inv.address_invoice_id.email :
<tr><td>${_("E-mail")}: ${inv.address_invoice_id.email|entity}</td></tr>
<tr><td>${_("Email")}: ${inv.address_invoice_id.email|entity}</td></tr>
%endif
%if inv.partner_id.vat :
<tr><td>${_("VAT")}: ${inv.partner_id.vat|entity}</td></tr>

View File

@ -52,7 +52,7 @@ msgstr ""
#. module: share
#: view:share.wizard:0
msgid "Share with these People (one e-mail per line)"
msgid "Share with these People (one email per line)"
msgstr ""
#. module: share
@ -372,7 +372,7 @@ msgstr ""
#. module: share
#: view:share.wizard:0
msgid ""
"An e-mail notification with instructions has been sent to the following "
"An email notification with instructions has been sent to the following "
"people:"
msgstr ""
@ -404,7 +404,7 @@ msgstr ""
#. module: share
#: help:share.wizard,message:0
msgid ""
"An optional personal message, to be included in the e-mail notification."
"An optional personal message, to be included in the email notification."
msgstr ""
#. module: share
@ -472,7 +472,7 @@ msgstr ""
#. module: share
#: code:addons/share/wizard/share_wizard.py:197
#, python-format
msgid "No e-mail address configured"
msgid "No email address configured"
msgstr ""
#. module: share
@ -512,7 +512,7 @@ msgstr ""
#: code:addons/share/wizard/share_wizard.py:198
#, python-format
msgid ""
"You must configure your e-mail address in the user preferences before using "
"You must configure your email address in the user preferences before using "
"the Share button."
msgstr ""

View File

@ -1,7 +1,7 @@
button.oe-share-mail {
button.oe_share_mail {
display: none;
}
a.oe-share_link, a.oe-share {
a.oe_share_link, a.oe_share {
display: none;
}

View File

@ -58,7 +58,7 @@ openerp.share = function(session) {
self.add_items('other', [{
label: 'Share',
callback: self.on_sidebar_click_share,
classname: 'oe-share',
classname: 'oe_share',
}]);
});
},
@ -72,7 +72,7 @@ openerp.share = function(session) {
start: function() {
start_res = this._super.apply(this, arguments);
if (has_action_id) {
this.$element.find('button.oe-share-mail').show();
this.$element.find('button.oe_share_mail').show();
}
return start_res;
}
@ -83,12 +83,12 @@ openerp.share = function(session) {
var self = this;
this.check_if_action_is_defined();
has_share(function() {
self.$element.find('a.oe-share_link').click(self.on_click_share_link);
self.$element.find('a.oe-share').click(self.on_click_share);
self.$element.delegate('button.oe-share-mail', 'click', self.on_click_share_mail);
self.$element.find('a.oe_share_link').click(self.on_click_share_link);
self.$element.find('a.oe_share').click(self.on_click_share);
self.$element.delegate('button.oe_share_mail', 'click', self.on_click_share_mail);
}, function() {
self.$element.find('a.oe-share_link').remove();
self.$element.find('a.oe-share').remove();
self.$element.find('a.oe_share_link').remove();
self.$element.find('a.oe_share').remove();
});
return this._super.apply(this, arguments);
},
@ -96,8 +96,8 @@ openerp.share = function(session) {
check_if_action_is_defined: function() {
if (this.action && this.action.id) {
has_action_id = true;
this.$element.find('a.oe-share_link').show();
this.$element.find('a.oe-share').show();
this.$element.find('a.oe_share_link').show();
this.$element.find('a.oe_share').show();
}
else {
has_action_id = false;

View File

@ -4,15 +4,15 @@
<templates id="template" xml:space="preserve">
<t t-extend="ViewManagerAction">
<t t-jquery=".oe-shortcut-toggle" t-operation="after">
<a class="oe-share_link" href="#share_link" title="Link or embed..."><img t-att-src='_s + "/share/static/src/img/share.png"'/></a>
<a class="oe-share" href="#share" title="Share with..."><img t-att-src='_s + "/share/static/src/img/share.png"'/></a>
<t t-jquery=".oe_shortcuts_toggle" t-operation="after">
<a class="oe_share_link" href="#share_link" title="Link or embed..."><img t-att-src='_s + "/share/static/src/img/share.png"'/></a>
<a class="oe_share" href="#share" title="Share with..."><img t-att-src='_s + "/share/static/src/img/share.png"'/></a>
</t>
</t>
<t t-extend="RecordThread">
<t t-jquery="button.oe_mail_button_unfollow" t-operation="after">
<button type="button" class="oe-share-mail oe_mail_button_mouseout">Invite</button>
<button type="button" class="oe_share_mail oe_mail_button_mouseout">Invite</button>
</t>
</t>

View File

@ -176,7 +176,7 @@ class share_wizard(osv.osv_memory):
help='Main access page for users that are granted shared access'),
'name': fields.char('Share Title', size=64, required=True, help="Title for the share (displayed to users as menu and shortcut name)"),
'record_name': fields.char('Record name', size=128, help="Name of the shared record, if sharing a precise record"),
'message': fields.text("Personal Message", help="An optional personal message, to be included in the e-mail notification."),
'message': fields.text("Personal Message", help="An optional personal message, to be included in the email notification."),
'embed_code': fields.function(_embed_code, type='text'),
'embed_option_title': fields.boolean("Display title"),
@ -200,8 +200,8 @@ class share_wizard(osv.osv_memory):
def go_step_1(self, cr, uid, ids, context=None):
wizard_data = self.browse(cr,uid,ids,context)[0]
if wizard_data.user_type == 'emails' and not self.has_email(cr, uid, context=context):
raise osv.except_osv(_('No e-mail address configured'),
_('You must configure your e-mail address in the user preferences before using the Share button.'))
raise osv.except_osv(_('No email address configured'),
_('You must configure your email address in the user preferences before using the Share button.'))
model, res_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'share', 'action_share_wizard_step1')
action = self.pool.get(model).read(cr, uid, res_id, context=context)
action['res_id'] = ids[0]

View File

@ -37,10 +37,10 @@
<field name="user_type" invisible="1"/>
<field name="invite" invisible="1"/>
<group>
<group name="emails_group" attrs="{'invisible':['|', ('user_type', '!=', 'emails'), ('invite', '=', True)]}" string="Share with these People (one e-mail per line)">
<group name="emails_group" attrs="{'invisible':['|', ('user_type', '!=', 'emails'), ('invite', '=', True)]}" string="Share with these People (one email per line)">
<field colspan="2" nolabel="1" name="new_users" attrs="{'required':[('user_type','=','emails'), ('invite', '!=', True)]}"/>
</group>
<group name="email_lines" attrs="{'invisible':[('invite', '!=', True)]}" string="Share with these People (one e-mail per line)">
<group name="email_lines" attrs="{'invisible':[('invite', '!=', True)]}" string="Share with these People (one email per line)">
<field name="email_1"/>
<field name="email_2"/>
<field name="email_3"/>
@ -69,7 +69,7 @@
<field name="access_mode" invisible="1"/>
</header>
<group attrs="{'invisible':[('user_type','=','embedded')]}">
<separator string="An e-mail notification with instructions has been sent to the following people:"/>
<separator string="An email notification with instructions has been sent to the following people:"/>
<field name="result_line_ids" nolabel="1" mode="tree">
<tree string="Summary">
<field name="login"/>

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
"PO-Revision-Date: 2012-06-24 02:23+0000\n"
"PO-Revision-Date: 2012-06-27 01:22+0000\n"
"Last-Translator: Akira Hiyama <Unknown>\n"
"Language-Team: Japanese <ja@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-06-25 05:14+0000\n"
"X-Launchpad-Export-Date: 2012-06-27 05:28+0000\n"
"X-Generator: Launchpad (build 15482)\n"
#. module: stock
@ -886,7 +886,7 @@ msgstr ""
#. module: stock
#: view:report.stock.inventory:0 view:stock.move:0 view:stock.picking:0
msgid "Scrap"
msgstr "スクラップ"
msgstr "廃棄"
#. module: stock
#: field:stock.location,child_ids:0
@ -1256,12 +1256,12 @@ msgstr "梱包の識別"
#. module: stock
#: report:stock.picking.list:0
msgid "Packing List:"
msgstr ""
msgstr "梱包リスト:"
#. module: stock
#: selection:stock.move,state:0
msgid "Waiting Another Move"
msgstr ""
msgstr "他の移動待ち"
#. module: stock
#: help:product.template,property_stock_production:0
@ -1269,25 +1269,25 @@ msgid ""
"For the current product, this stock location will be used, instead of the "
"default one, as the source location for stock moves generated by production "
"orders"
msgstr ""
msgstr "現在の製品のため、製造オーダーにより在庫移動は生成されるための元の場所として、デフォルトの代わりにこの在庫場所は使用されます。"
#. module: stock
#: view:product.product:0
msgid "Expected Stock Variations"
msgstr ""
msgstr "予想在庫変動"
#. module: stock
#: help:stock.move,price_unit:0
msgid ""
"Technical field used to record the product cost set by the user during a "
"picking confirmation (when average price costing method is used)"
msgstr ""
msgstr "集荷確認(平均価格コスト方式が使われる時)の間に、ユーザによる製品コストの設定を記録するために使用される技術的な項目"
#. module: stock
#: code:addons/stock/stock.py:1350
#, python-format
msgid "is in draft state."
msgstr ""
msgstr "ドラフト状態です。"
#. module: stock
#: model:ir.actions.act_window,help:stock.action_tracking_form
@ -1299,12 +1299,12 @@ msgstr "これはあなたの全ての梱包リストです。梱包を選択す
#. module: stock
#: selection:stock.return.picking,invoice_state:0
msgid "To be refunded/invoiced"
msgstr ""
msgstr "返金 / 請求"
#. module: stock
#: model:stock.location,name:stock.stock_location_shop0
msgid "Shop 1"
msgstr ""
msgstr "店 1"
#. module: stock
#: view:stock.change.product.qty:0 view:stock.change.standard.price:0
@ -1313,50 +1313,50 @@ msgstr ""
#: view:stock.move:0 view:stock.partial.move:0 view:stock.partial.picking:0
#: view:stock.picking:0 view:stock.return.picking:0 view:stock.split.into:0
msgid "_Cancel"
msgstr ""
msgstr "キャンセル"
#. module: stock
#: view:stock.move:0 view:stock.picking:0
msgid "Ready"
msgstr ""
msgstr "準備完了"
#. module: stock
#: view:stock.picking:0
msgid "Calendar View"
msgstr ""
msgstr "カレンダービュー"
#. module: stock
#: view:stock.picking:0
msgid "Additional Info"
msgstr ""
msgstr "付加情報"
#. module: stock
#: field:stock.partial.move.line,move_id:0
#: field:stock.partial.picking.line,move_id:0
#: field:stock.return.picking.memory,move_id:0
msgid "Move"
msgstr ""
msgstr "移動"
#. module: stock
#: field:stock.location.product,from_date:0
msgid "From"
msgstr ""
msgstr "開始"
#. module: stock
#: view:stock.picking:0
msgid "Incoming Shipments already processed"
msgstr ""
msgstr "内部出荷は処理済です。"
#. module: stock
#: code:addons/stock/wizard/stock_return_picking.py:99
#, python-format
msgid "You may only return pickings that are Confirmed, Available or Done!"
msgstr ""
msgstr "確認済、利用可能、完了の集荷のみ返却できます。"
#. module: stock
#: view:stock.picking:0 field:stock.picking,invoice_state:0
msgid "Invoice Control"
msgstr ""
msgstr "請求書制御"
#. module: stock
#: model:ir.model,name:stock.model_stock_production_lot_revision
@ -1366,49 +1366,49 @@ msgstr "製造ロットのリビジョン"
#. module: stock
#: view:stock.picking:0
msgid "Internal Picking List"
msgstr ""
msgstr "内部集荷リスト"
#. module: stock
#: selection:report.stock.inventory,state:0
#: selection:report.stock.move,state:0 view:stock.picking:0
msgid "Waiting"
msgstr ""
msgstr "待機中"
#. module: stock
#: view:stock.move:0 view:stock.picking:0
msgid "Split"
msgstr ""
msgstr "分割"
#. module: stock
#: view:stock.picking:0
msgid "Search Stock Picking"
msgstr ""
msgstr "在庫集荷の検索"
#. module: stock
#: code:addons/stock/product.py:92
#, python-format
msgid "Company is not specified in Location"
msgstr ""
msgstr "会社が場所に指定されていません。"
#. module: stock
#: view:report.stock.move:0
msgid "Type"
msgstr ""
msgstr "タイプ"
#. module: stock
#: view:stock.picking:0
msgid "Available Pickings"
msgstr ""
msgstr "利用可能集荷"
#. module: stock
#: model:stock.location,name:stock.stock_location_5
msgid "Generic IT Suppliers"
msgstr ""
msgstr "一般的なIT仕入先"
#. module: stock
#: view:stock.move:0
msgid "Stock to be receive"
msgstr ""
msgstr "受領する在庫"
#. module: stock
#: help:stock.location,valuation_out_account_id:0
@ -1419,61 +1419,63 @@ msgid ""
"the generic Stock Output Account set on the product. This has no effect for "
"internal locations."
msgstr ""
"リアルタイム在庫評価のために使用されます。仮想の場所(非内部タイプ)に設定されている場合、このアカウントは製品にセットされる一般的な在庫出力アカウントの代"
"わりに、この場所から内部の場所に移動される製品の価値を保持するために使用されます。"
#. module: stock
#: report:stock.picking.list:0
msgid "Picking List:"
msgstr ""
msgstr "集荷リスト:"
#. module: stock
#: field:stock.inventory,date:0 field:stock.move,create_date:0
#: field:stock.production.lot,date:0 field:stock.tracking,date:0
msgid "Creation Date"
msgstr ""
msgstr "作成日"
#. module: stock
#: field:report.stock.lines.date,id:0
msgid "Inventory Line Id"
msgstr ""
msgstr "在庫行ID"
#. module: stock
#: help:stock.location,address_id:0
msgid "Address of customer or supplier."
msgstr ""
msgstr "顧客または仕入先住所"
#. module: stock
#: view:report.stock.move:0 field:report.stock.move,picking_id:0
msgid "Packing"
msgstr ""
msgstr "梱包"
#. module: stock
#: selection:report.stock.inventory,location_type:0
#: field:res.partner,property_stock_customer:0
#: selection:stock.location,usage:0
msgid "Customer Location"
msgstr ""
msgstr "顧客の場所"
#. module: stock
#: code:addons/stock/stock.py:2312
#, python-format
msgid "You can only delete draft moves."
msgstr ""
msgstr "ドラフト移動のみ削除ができます。"
#. module: stock
#: model:ir.model,name:stock.model_stock_inventory_line_split_lines
msgid "Inventory Split lines"
msgstr ""
msgstr "在庫分割行"
#. module: stock
#: model:ir.actions.report.xml,name:stock.report_location_overview
#: report:lot.stock.overview:0
msgid "Location Inventory Overview"
msgstr "在庫の場所の概観"
msgstr "在庫場所の概要"
#. module: stock
#: view:stock.inventory:0
msgid "General Informations"
msgstr ""
msgstr "一般情報"
#. module: stock
#: view:report.stock.inventory:0
@ -1489,34 +1491,34 @@ msgstr "下流追跡能力"
#: code:addons/stock/wizard/stock_invoice_onshipping.py:112
#, python-format
msgid "No Invoices were created"
msgstr ""
msgstr "請求書は作成されませんでした。"
#. module: stock
#: field:stock.location,posy:0
msgid "Shelves (Y)"
msgstr ""
msgstr "Y"
#. module: stock
#: help:stock.incoterms,active:0
msgid ""
"By unchecking the active field, you may hide an INCOTERM without deleting it."
msgstr ""
msgstr "アクティブな項目のチェックを外すことで、インコタームズを削除することなく非表示にできます。"
#. module: stock
#: view:stock.move:0 view:stock.picking:0 field:stock.picking,date:0
msgid "Order Date"
msgstr ""
msgstr "オーダー日"
#. module: stock
#: code:addons/stock/wizard/stock_change_product_qty.py:88
#, python-format
msgid "INV: %s"
msgstr ""
msgstr "請求書:%s"
#. module: stock
#: view:stock.location:0 field:stock.location,location_id:0
msgid "Parent Location"
msgstr ""
msgstr "親の場所"
#. module: stock
#: help:stock.picking,state:0
@ -1529,34 +1531,40 @@ msgid ""
"* Done: has been processed, can't be modified or cancelled anymore\n"
"* Cancelled: has been cancelled, can't be confirmed anymore"
msgstr ""
"・ ドラフト:まだ確認されておらず、そして確認されるまでスケジュールされません。\n"
"・ 確認済:製品が利用可能になるのを待っています。\n"
"・ 利用可能:製品が確保され、単純に確認を待っています。\n"
"・ 待機中:自動的に利用可能になる前に(例えばオーダー作成フロー)、処理のために他の移動を待っています。\n"
"・ 完了:処理されたもの。もはや変更もキャンセルもできません。\n"
"・ キャンセル済:キャンセルされたのもの。もはや確認できません。"
#. module: stock
#: help:stock.location,company_id:0
msgid "Let this field empty if this location is shared between all companies"
msgstr ""
msgstr "この場所が全ての会社間で共有される場合は、この項目を空にしましょう。"
#. module: stock
#: code:addons/stock/stock.py:2337
#, python-format
msgid "Please provide a positive quantity to scrap!"
msgstr ""
msgstr "廃棄するには正の数量を与えて下さい。"
#. module: stock
#: field:stock.location,chained_delay:0
msgid "Chaining Lead Time"
msgstr ""
msgstr "連鎖的なリードタイム"
#. module: stock
#: help:product.product,track_outgoing:0
msgid ""
"Forces to specify a Production Lot for all moves containing this product and "
"going to a Customer Location"
msgstr ""
msgstr "この製品を含む全ての移動と顧客の場所に行くのための製造ロットを強制的に定義します。"
#. module: stock
#: model:ir.model,name:stock.model_stock_invoice_onshipping
msgid "Stock Invoice Onshipping"
msgstr ""
msgstr "出荷される在庫の請求書"
#. module: stock
#: help:stock.move,state:0
@ -1568,43 +1576,48 @@ msgid ""
" When the picking is done the state is 'Done'. \n"
"The state is 'Waiting' if the move is waiting for another one."
msgstr ""
"在庫移動が作成された時にはドラフト状態です。\n"
" その後、スケジューラが製品を持つける事ができなかった場合は利用不可にセットされます。\n"
" 製品が確保されると、利用可能にセットされます。\n"
" 集荷が完了すると、状態は完了になります。\n"
"移動が他の移動のために待ち状態になると、状態は待機中となります。"
#. module: stock
#: selection:report.stock.inventory,location_type:0
#: field:res.partner,property_stock_supplier:0
#: selection:stock.location,usage:0
msgid "Supplier Location"
msgstr ""
msgstr "仕入先の場所"
#. module: stock
#: code:addons/stock/stock.py:2358
#, python-format
msgid "were scrapped"
msgstr ""
msgstr "廃棄されました。"
#. module: stock
#: help:stock.partial.move.line,currency:0
#: help:stock.partial.picking.line,currency:0
msgid "Currency in which Unit cost is expressed"
msgstr ""
msgstr "単価が表現される通貨"
#. module: stock
#: selection:report.stock.inventory,month:0
#: selection:report.stock.move,month:0
msgid "September"
msgstr ""
msgstr "9月"
#. module: stock
#: help:stock.picking,backorder_id:0
msgid ""
"If this picking was split this field links to the picking that contains the "
"other part that has been processed already."
msgstr ""
msgstr "集荷が分割される場合、この項目は既に処理された他の部分を含む集荷にリンクします。"
#. module: stock
#: model:ir.model,name:stock.model_report_stock_inventory
msgid "Stock Statistics"
msgstr ""
msgstr "在庫の統計値"
#. module: stock
#: view:report.stock.move:0
@ -1781,7 +1794,7 @@ msgstr ""
#: model:ir.model,name:stock.model_stock_move_scrap view:stock.move:0
#: view:stock.move.scrap:0 view:stock.picking:0
msgid "Scrap Products"
msgstr ""
msgstr "廃棄製品"
#. module: stock
#: code:addons/stock/stock.py:1157
@ -2167,7 +2180,7 @@ msgstr ""
#: model:stock.location,name:stock.stock_location_scrapped
#: field:stock.move,scrapped:0
msgid "Scrapped"
msgstr ""
msgstr "廃棄済"
#. module: stock
#: view:stock.inventory:0
@ -2488,7 +2501,7 @@ msgstr ""
#. module: stock
#: model:ir.actions.act_window,name:stock.move_scrap view:stock.move.scrap:0
msgid "Scrap Move"
msgstr ""
msgstr "廃棄移動"
#. module: stock
#: model:ir.actions.act_window,name:stock.action_reception_picking_move
@ -3330,7 +3343,7 @@ msgstr ""
#: help:stock.location,scrap_location:0
msgid ""
"Check this box to allow using this location to put scrapped/damaged goods."
msgstr ""
msgstr "廃棄 / 破損品を置くためにこの場所を使用する場合は、このボックスをチェックします。"
#. module: stock
#: model:ir.actions.act_window,name:stock.act_relate_picking
@ -3938,7 +3951,7 @@ msgstr ""
#. module: stock
#: field:stock.location,scrap_location:0 view:stock.move.scrap:0
msgid "Scrap Location"
msgstr ""
msgstr "廃棄場所"
#. module: stock
#: selection:report.stock.inventory,month:0

View File

@ -996,7 +996,7 @@ msgstr ""
#. module: survey
#: field:survey,send_response:0
msgid "E-mail Notification on Answer"
msgid "Email Notification on Answer"
msgstr ""
#. module: survey
@ -1211,7 +1211,7 @@ msgstr ""
#. module: survey
#: field:survey.request,email:0
msgid "E-mail"
msgid "Email"
msgstr ""
#. module: survey

View File

@ -66,7 +66,7 @@ class survey(osv.osv):
'note': fields.text('Description', size=128),
'history': fields.one2many('survey.history', 'survey_id', 'History Lines', readonly=True),
'users': fields.many2many('res.users', 'survey_users_rel', 'sid', 'uid', 'Users'),
'send_response': fields.boolean('E-mail Notification on Answer'),
'send_response': fields.boolean('Email Notification on Answer'),
'type': fields.many2one('survey.type', 'Type'),
'invited_user_ids': fields.many2many('res.users', 'survey_invited_user_rel', 'sid', 'uid', 'Invited User'),
}
@ -699,7 +699,7 @@ class survey_request(osv.osv):
_columns = {
'date_deadline': fields.date("Deadline date"),
'user_id': fields.many2one("res.users", "User"),
'email': fields.char("E-mail", size=64),
'email': fields.char("Email", size=64),
'survey_id': fields.many2one("survey", "Survey", required=1, ondelete='cascade'),
'response': fields.many2one('survey.response', 'Answer'),
'state': fields.selection([('draft','Draft'),('cancel', 'Cancelled'),('waiting_answer', 'Waiting Answer'),('done', 'Done')], 'Status', readonly=1)

View File

@ -435,7 +435,7 @@ class survey_question_wiz(osv.osv_memory):
def create_report(self, cr, uid, res_ids, report_name=False, file_name=False, context=None):
"""
If any user give answer of survey then last create report of this answer and if 'E-mail Notification on Answer' set True in survey then send mail on responsible person of this survey and attach survey answer report in pdf format.
If any user give answer of survey then last create report of this answer and if 'Email Notification on Answer' set True in survey then send mail on responsible person of this survey and attach survey answer report in pdf format.
"""
if not report_name or not res_ids:
return (False, Exception('Report name and Resources ids are required !!!'))

View File

@ -191,7 +191,7 @@ class survey_send_invitation(osv.osv_memory):
if skipped:
note += "%d contacts where ignored (an email address is missing).\n\n" % (skipped)
if error:
note += 'E-Mail not send successfully:\n====================\n%s\n' % (error)
note += 'Email not send successfully:\n====================\n%s\n' % (error)
context.update({'note' : note})
return {
'view_type': 'form',

View File

@ -2,7 +2,7 @@
.oe_systray_shortcuts {
margin: 3px;
}
.oe-shortcut-toggle {
.oe_shortcuts_toggle {
height: 20px;
margin-top: 3px;
padding: 0;
@ -12,10 +12,10 @@
background: url(/web/static/src/img/add-shortcut.png) no-repeat center center;
float: left;
}
.oe-shortcut-remove{
.oe_shortcuts_remove{
background: url(/web/static/src/img/remove-shortcut.png) no-repeat center center;
}
.oe-shortcuts {
.oe_shortcuts {
position: absolute;
margin: 0;
padding: 6px 15px;
@ -25,7 +25,7 @@
height: 17px;
line-height: 1.2;
}
.oe-shortcuts ul {
.oe_shortcuts ul {
display: block;
overflow: hidden;
list-style: none;
@ -33,7 +33,7 @@
padding: 0;
margin: 0;
}
.oe-shortcuts li {
.oe_shortcuts li {
cursor: pointer;
display: -moz-inline-stack;
display: inline-block;
@ -47,10 +47,10 @@
vertical-align: top;
}
.oe-shortcuts li:hover {
.oe_shortcuts li:hover {
background-color: #666;
}
.oe-shortcuts li:first-child {
.oe_shortcuts li:first-child {
border-left: none;
padding-left: 0;
}

View File

@ -118,16 +118,16 @@ instance.web.ViewManagerAction.include({
var shortcuts_menu = instance.webclient.user_menu.shortcuts;
var grandparent = this.getParent() && this.getParent().getParent();
// display shortcuts if on the first view for the action
var $shortcut_toggle = this.$element.find('.oe-shortcut-toggle');
var $shortcut_toggle = this.$element.find('.oe_shortcuts_toggle');
if (!this.action.name ||
!(view.view_type === this.views_src[0].view_type
&& view.view_id === this.views_src[0].view_id)) {
$shortcut_toggle.hide();
return;
}
$shortcut_toggle.toggleClass('oe-shortcut-remove', shortcuts_menu.has(self.session.active_id));
$shortcut_toggle.toggleClass('oe_shortcuts_remove', shortcuts_menu.has(self.session.active_id));
$shortcut_toggle.unbind("click").click(function() {
if ($shortcut_toggle.hasClass("oe-shortcut-remove")) {
if ($shortcut_toggle.hasClass("oe_shortcuts_remove")) {
shortcuts_menu.trigger('remove', self.session.active_id);
} else {
shortcuts_menu.trigger('add', {
@ -137,7 +137,7 @@ instance.web.ViewManagerAction.include({
'name': self.action.name
});
}
$shortcut_toggle.toggleClass("oe-shortcut-remove");
$shortcut_toggle.toggleClass("oe_shortcuts_remove");
});
}
});

View File

@ -17,7 +17,7 @@
</t>
<t t-extend="ViewManagerAction">
<t t-jquery="h2.oe_view_title" t-operation="prepend">
<a t-if="widget.flags.display_title !== false" class="oe-shortcut-toggle" title="Add / Remove Shortcut..."
<a t-if="widget.flags.display_title !== false" class="oe_shortcuts_toggle" title="Add / Remove Shortcut..."
href="javascript: void(0)"> </a>
</t>
</t>