[MERGE] lp:openobject-addons
bzr revid: jam@tinyerp.com-20120628043300-y3hc96fwwzvoe9hv
This commit is contained in:
commit
bf65bf1223
|
@ -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',
|
||||
|
|
|
@ -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
|
||||
|
||||
""",
|
||||
|
|
|
@ -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."),
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 ""
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
|
||||
|
|
|
@ -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'),
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
##############################################################################
|
||||
|
||||
{
|
||||
"name" : "E-Mail Templates",
|
||||
"name" : "Email Templates",
|
||||
"version" : "1.1",
|
||||
"author" : "OpenERP,OpenLabs",
|
||||
"website" : "http://openerp.com",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'),
|
||||
|
|
|
@ -249,7 +249,7 @@ msgstr ""
|
|||
|
||||
#. module: hr
|
||||
#: field:hr.employee,work_email:0
|
||||
msgid "Work E-mail"
|
||||
msgid "Work Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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),
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"),
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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.
|
||||
-
|
||||
|
|
|
@ -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'),
|
||||
|
|
|
@ -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<current_date and state not in ('done','cancel');black:date_planned>=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<current_date and state not in ('done','cancel');black:date_planned>=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','<>', ('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','<>', ('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.
|
||||
<p>
|
||||
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 & 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"/>
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 ""
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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"});
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -60,7 +60,7 @@ msgstr ""
|
|||
|
||||
#. module: portal
|
||||
#: field:res.portal.wizard.user,user_email:0
|
||||
msgid "E-mail"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#. module: portal
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 & 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>
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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 ""
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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<current_date and state not in ('done','cancel');black:date_end>=current_date;" string="Purchase Requisition">
|
||||
<tree fonts="bold:needaction_pending==True" colors="grey:state == 'cancel';red:date_end and date_end<current_date;black:date_end>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>
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 ""
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 !!!'))
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue