diff options
| author | Antony Lesuisse <al@openerp.com> | 2012-06-08 19:00:05 +0200 |
|---|---|---|
| committer | Antony Lesuisse <al@openerp.com> | 2012-06-08 19:00:05 +0200 |
| commit | 93590e6a2b2221c9c8b72bbbfe5ca83bc7c0dc4b (patch) | |
| tree | f13d8877a684510c1c0fe5c6686c1bbbdd1f2a14 | |
| parent | d74734ddee499577351618bc6250304c63095a3e (diff) | |
| parent | 787df16f84426411c7844c40f942400dfd7741bf (diff) | |
[MERGE] trunk
bzr revid: al@openerp.com-20120608170005-exk83se779u3py4x
268 files changed, 36229 insertions, 3898 deletions
diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py index 51e3d2dbe85..1f47a6be9bd 100644 --- a/addons/account/account_bank_statement.py +++ b/addons/account/account_bank_statement.py @@ -127,6 +127,7 @@ class account_bank_statement(osv.osv): _order = "date desc, id desc" _name = "account.bank.statement" _description = "Bank Statement" + _inherit = ['mail.thread'] _columns = { 'name': fields.char('Name', size=64, required=True, states={'draft': [('readonly', False)]}, readonly=True, help='if you give the Name other then /, its created Accounting Entries Move will be with same name as statement name. This allows the statement entries to have the same references than the statement itself'), # readonly for account_cash_statement 'date': fields.date('Date', required=True, states={'confirm': [('readonly', True)]}, select=True), @@ -364,7 +365,7 @@ class account_bank_statement(osv.osv): 'name': st_number, 'balance_end_real': st.balance_end }, context=context) - self.log(cr, uid, st.id, _('Statement %s is confirmed, journal items are created.') % (st_number,)) + self.message_append_note(cr, uid, [st.id], body=_('Statement %s is confirmed, journal items are created.') % (st_number,), context=context) return self.write(cr, uid, ids, {'state':'confirm'}, context=context) def button_cancel(self, cr, uid, ids, context=None): diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 9426d713188..c6011979f8d 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -201,17 +201,18 @@ class account_invoice(osv.osv): 'state': fields.selection([ ('draft','Draft'), - ('cancel','Cancelled'), ('proforma','Pro-forma'), ('proforma2','Pro-forma'), ('open','Open'), - ('paid','Paid') - ],'Status', select=True, readonly=True, + ('paid','Paid'), + ('cancel','Cancelled'), + ],'State', select=True, readonly=True, help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed Invoice. \ \n* The \'Pro-forma\' when invoice is in Pro-forma state,invoice does not have an invoice number. \ \n* The \'Open\' state is used when user create invoice,a invoice number is generated.Its in open state till user does not pay invoice. \ \n* The \'Paid\' state is set automatically when the invoice is paid. Its related journal entries may or may not be reconciled. \ \n* The \'Cancelled\' state is used when user cancel invoice.'), + 'sent': fields.boolean('Sent', readonly=True, help="It indicates that the invoice has been sent."), 'date_invoice': fields.date('Invoice Date', readonly=True, states={'draft':[('readonly',False)]}, select=True, help="Keep empty to use the current date"), 'date_due': fields.date('Due Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]}, select=True, help="If you use payment terms, the due date will be computed automatically at the generation "\ @@ -286,6 +287,7 @@ class account_invoice(osv.osv): 'check_total': 0.0, 'internal_number': False, 'user_id': lambda s, cr, u, c: u, + 'sent': False, } _sql_constraints = [ ('number_uniq', 'unique(number, company_id, journal_id, type)', 'Invoice Number must be unique per Company!'), @@ -366,6 +368,47 @@ class account_invoice(osv.osv): else: raise orm.except_orm(_('Unknown Error'), str(e)) + def invoice_print(self, cr, uid, ids, context=None): + ''' + This function prints the invoice and mark it as sent, so that we can see more easily the next step of the workflow + ''' + assert len(ids) == 1, 'This option should only be used for a single id at a time' + self.write(cr, uid, ids, {'sent': True}, context=context) + datas = { + 'ids': ids, + 'model': 'account.invoice', + 'form': self.read(cr, uid, ids[0], context=context) + } + return { + 'type': 'ir.actions.report.xml', + 'report_name': 'account.invoice', + 'datas': datas, + 'nodestroy' : True + } + + def action_invoice_sent(self, cr, uid, ids, context=None): + ''' + This function opens a window to compose an email, with the edi invoice template message loaded by default + ''' + mod_obj = self.pool.get('ir.model.data') + template = mod_obj.get_object_reference(cr, uid, 'account', 'email_template_edi_invoice') + template_id = template and template[1] or False + res = mod_obj.get_object_reference(cr, uid, 'mail', 'email_compose_message_wizard_form') + res_id = res and res[1] or False + ctx = dict(context, active_model='account.invoice', active_id=ids[0]) + ctx.update({'mail.compose.template_id': template_id}) + return { + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'mail.compose.message', + 'views': [(res_id, 'form')], + 'view_id': res_id, + 'type': 'ir.actions.act_window', + 'target': 'new', + 'context': ctx, + 'nodestroy': True, + } + def confirm_paid(self, cr, uid, ids, context=None): if context is None: context = {} @@ -604,6 +647,7 @@ class account_invoice(osv.osv): 'move_name':False, 'internal_number': False, 'period_id': False, + 'sent': False, }) if 'date_invoice' not in default: default.update({ @@ -938,7 +982,6 @@ class account_invoice(osv.osv): def invoice_validate(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state':'open'}, context=context) - self.invoice_validate_send_note(cr, uid, ids, context=context) return True def line_get_convert(self, cr, uid, x, part, date, context=None): @@ -1002,7 +1045,7 @@ class account_invoice(osv.osv): if obj_inv.type in ('out_invoice', 'out_refund'): ctx = self.get_log_context(cr, uid, context=ctx) message = _("Invoice '%s' is validated.") % name - self.log(cr, uid, inv_id, message, context=ctx) + self.message_append_note(cr, uid, [inv_id], body=message, context=context) return True def action_cancel(self, cr, uid, ids, *args): @@ -1232,7 +1275,7 @@ class account_invoice(osv.osv): # TODO: use currency's formatting function msg = _("Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)") % \ (name, pay_amount, code, invoice.amount_total, code, total, code) - self.log(cr, uid, inv_id, msg) + self.message_append_note(cr, uid, [inv_id], body=msg, context=context) self.pool.get('account.move.line').reconcile_partial(cr, uid, line_ids, 'manual', context) # Update the stored value (fields.function), so we write to trigger recompute @@ -1256,10 +1299,6 @@ class account_invoice(osv.osv): for obj in self.browse(cr, uid, ids, context=context): self.message_append_note(cr, uid, [obj.id],body=_("%s <b>created</b>.") % (self._get_document_type(obj.type)), context=context) - def invoice_validate_send_note(self, cr, uid, ids, context=None): - for obj in self.browse(cr, uid, ids, context=context): - self.message_append_note(cr, uid, [obj.id], body=_("%s <b>validated</b>.") % (self._get_document_type(obj.type)), context=context) - def confirm_paid_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): self.message_append_note(cr, uid, [obj.id], body=_("%s <b>paid</b>.") % (self._get_document_type(obj.type)), context=context) @@ -1669,4 +1708,14 @@ class res_partner(osv.osv): res_partner() +class mail_message(osv.osv): + _name = 'mail.message' + _inherit = 'mail.message' + + def _postprocess_sent_message(self, cr, uid, message, context=None): + if message.model == 'account.invoice': + self.pool.get('account.invoice').write(cr, uid, [message.res_id], {'sent':True}, context=context) + return super(mail_message, self)._postprocess_sent_message(cr, uid, message=message, context=context) + +mail_message() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 05da4af666e..92a563a96db 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -37,7 +37,7 @@ <field name="name"/> <field name="account_id" groups="account.group_account_user"/> <field name="quantity"/> - <field name="uos_id"/> + <field name="uos_id" groups="product.group_uom"/> <field name="price_unit"/> <field name="discount"/> <field name="price_subtotal"/> @@ -56,10 +56,10 @@ <label string="Quantity" for="quantity" align="1.0"/> <group colspan="1" col="2"> <field name="quantity" nolabel="1"/> - <field name="uos_id" on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)" nolabel="1"/> + <field name="uos_id" on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)" nolabel="1" groups="product.group_uom"/> </group> <field name="price_unit"/> - <field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '<>', 'view')]" name="account_id" on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/> + <field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '<>', 'view')]" name="account_id" on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)" groups="account.group_account_user"/> <field name="discount"/> <field domain="[('type','<>','view'), ('company_id', '=', parent.company_id), ('parent_id', '!=', False)]" name="account_analytic_id" groups="analytic.group_analytic_accounting"/> <field name="company_id" groups="base.group_multi_company" readonly="1"/> @@ -132,8 +132,6 @@ <field name="amount_untaxed" sum="Untaxed Amount"/> <field name="amount_total" sum="Total Amount"/> <field name="state"/> - - <button name="invoice_open" states="draft,proforma2" string="Approve" icon="terp-camera_test"/> </tree> </field> </record> @@ -145,21 +143,18 @@ <field name="priority">2</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> - <button name="invoice_open" states="draft,proforma2" string="Approve"/> - <button name="%(action_account_invoice_refund)d" type='action' string='Refund' states='open,paid'/> - <button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','<>','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/> + <header> + <button name="invoice_open" states="draft,proforma2" string="Validate"/> + <button name="%(action_account_invoice_refund)d" type='action' string='Ask Refund' states='open,paid'/> <button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="base.group_no_one"/> <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','<>','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/> + </header> <sheet string="Supplier Invoice" layout="auto"> <group col="8" colspan="4" class="oe_form_header"> <field name="journal_id" on_change="onchange_journal_id(journal_id)" widget="selection"/> - <field name="number" readonly="1"/> + <field name="number" readonly="1" placeholder="PO0025"/> <field name="type" invisible="1"/> <field name="currency_id" width="50"/> <button name="%(action_account_change_currency)d" type="action" icon="terp-stock_effects-object-colorize" string="Change" attrs="{'invisible':[('state','!=','draft')]}" groups="account.group_account_user"/> @@ -177,7 +172,7 @@ <page string="Invoice"> <field domain="[('company_id', '=', company_id), ('type', '=', 'payable')]" name="account_id" groups="account.group_account_user"/> <field name="reference_type" nolabel="1" size="0"/> - <field name="reference" nolabel="1"/> + <field name="reference" nolabel="1" placeholder="Payment Reference"/> <field name="date_due"/> <field colspan="4" context="{'partner_id': partner_id, 'price_type': 'price_type' in dir() and price_type or False, 'type': type}" name="invoice_line" nolabel="1"> <tree string="Invoice lines"> @@ -225,7 +220,7 @@ <field name="payment_term" widget="selection"/> <field name="name"/> <newline/> - <field name="origin"/> + <field name="origin" placeholder="PO0025"/> <field name="user_id"/> <field name="move_id" groups="account.group_account_user"/> <separator colspan="4" string="Additional Information"/> @@ -249,7 +244,7 @@ </notebook> </sheet> <div class="oe_form_sheet_width"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> @@ -261,25 +256,24 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> - <button name="invoice_proforma2" states="draft" string="PRO-FORMA" groups="account.group_proforma_invoices"/> + <header> + <button name="action_invoice_sent" type="object" string="Send by Email" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}"/> + <button name="invoice_print" string="Print Invoice" type="object" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}"/> <button name="invoice_open" states="draft,proforma2" string="Validate"/> - <button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','<>','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/> - <button name="%(account_invoices)d" string="Print Invoice" type="action" states="open,paid,proforma,sale,proforma2"/> - <button name="%(action_account_invoice_refund)d" type='action' string='Refund' states='open,paid'/> - <button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object"/> + <button name="invoice_proforma2" states="draft" string="PRO-FORMA" groups="account.group_proforma_invoices"/> + <button name="%(action_account_invoice_refund)d" type='action' string='Refund Invoice' states='paid'/> <button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="base.group_no_one"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <button name="action_cancel_draft" states="cancel" string="Reset to Draft" type="object"/> + <button name='%(action_account_state_open)d' type='action' string='Re-Open' groups="account.group_account_invoice" attrs="{'invisible':['|', ('state','<>','paid'), ('reconciled', '=', True)]}" help="This button only appears when the state of the invoice is 'paid' (showing that it has been fully reconciled) and auto-computed boolean 'reconciled' is False (depicting that it's not the case anymore). In other words, the invoice has been dereconciled and it does not fit anymore the 'paid' state. You should press this button to re-open it and let it continue its normal process after having resolved the eventual exceptions it may have created."/> + <!--button name="%(account_invoices)d" string="Print Invoice" type="action" states="open,paid,proforma,sale,proforma2"/--> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,paid" statusbar_colors='{"proforma":"blue","proforma2":"blue"}'/> + </header> <sheet string="Invoice" layout="auto"> <group colspan="4" col="8" class="oe_form_header"> - <field name="journal_id" groups="base.group_user" on_change="onchange_journal_id(journal_id, context)" widget="selection"/> + <field name="journal_id" groups="account.group_account_user" on_change="onchange_journal_id(journal_id, context)" widget="selection"/> <field name="number"/> <field name="type" invisible="1"/> - <field name="currency_id" width="50"/> + <field name="currency_id" width="50" groups="base.group_multi_company"/> <button name="%(action_account_change_currency)d" type="action" icon="terp-stock_effects-object-colorize" string="Change" attrs="{'invisible':[('state','!=','draft')]}" groups="account.group_account_user"/> <newline/> <field string="Customer" name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" groups="base.group_user" context="{'search_default_customer': 1}" options='{"quick_create": false}' domain="[('customer', '=', True)]"/> @@ -290,7 +284,8 @@ <field name="payment_term" widget="selection"/> <newline/> <field domain="[('company_id', '=', company_id),('type','=', 'receivable')]" name="account_id" groups="account.group_account_user"/> - <field name="name"/> + <field name="name" placeholder="Project XYZ"/> + <field name="sent"/> </group> <notebook colspan="4"> <page string="Invoice"> @@ -316,9 +311,9 @@ <field name="amount_untaxed"/> <label string="" colspan="2"/> <field name="amount_tax"/> - <field name="reconciled"/> + <field name="reconciled" groups="base.group_no_one"/> <field name="amount_total"/> - <field name="residual"/> + <field name="residual" groups="account.group_account_user"/> </group> </page> <page string="Other Info"> @@ -328,7 +323,7 @@ <field name="user_id"/> <newline/> <field domain="[('partner_id.ref_companies', 'in', [company_id])]" name="partner_bank_id"/> - <field name="origin"/> + <field name="origin" placeholder="SO0032"/> <field name="move_id" groups="account.group_account_user"/> <separator colspan="4" string="Additional Information"/> <field colspan="4" name="comment" nolabel="1"/> @@ -351,7 +346,7 @@ </notebook> </sheet> <div class="oe_form_sheet_width"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> diff --git a/addons/account/account_report.xml b/addons/account/account_report.xml index 78caf1c95b6..7b574c8960e 100644 --- a/addons/account/account_report.xml +++ b/addons/account/account_report.xml @@ -21,7 +21,7 @@ string="Invoices" attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')" usage="default" - multi="True"/> + /> <report id="account_transfers" model="account.transfer" name="account.transfer" string="Transfers" xml="account/report/transfer.xml" xsl="account/report/transfer.xsl"/> <report auto="False" id="account_intracom" menu="False" model="account.move.line" name="account.intracom" string="IntraCom"/> diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index c1367e60498..6eec7156d25 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -12,14 +12,11 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="create_period" states="draft" string="Create Monthly Periods" type="object"/> <button name="create_period3" states="draft" string="Create 3 Months Periods" type="object"/> - <div class="oe_right"> - <field name="state" select="1" widget="statusbar" nolabel="1" /> - </div> - <div class="oe_clear"/> - </div> + <field name="state" select="1" widget="statusbar" nolabel="1" /> + </header> <sheet string="Fiscalyear" layout="auto"> <group class="oe_form_header"> <field name="name"/> @@ -97,13 +94,10 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="action_draft" states="done" string="Set to Draft" type="object" groups="account.group_account_manager"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1"/> + </header> <sheet string="Period" layout="auto"> <group class="oe_form_header"> <field name="name"/> @@ -131,8 +125,6 @@ <field name="special"/> <field name="company_id" groups="base.group_multi_company"/> <field name="state"/> - <button name="action_draft" states="done" string="Set to Draft" type="object" icon="terp-document-new" groups="account.group_account_manager"/> - <button name="%(action_account_period_close)d" states="draft" string="Close Period" type="action" icon="terp-camera_test"/> </tree> </field> </record> @@ -569,8 +561,6 @@ <field name="balance_end_real"/> <field name="balance_end" invisible="1"/> <field name="state"/> - <button type="object" string="Cancel" name="button_cancel" states="confirm" icon="gtk-cancel"/> - <button type="object" string="Confirm" name="button_confirm_bank" states="draft" icon="terp-camera_test"/> </tree> </field> </record> @@ -605,15 +595,12 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="button_confirm_bank" states="draft" string="Confirm" type="object" /> <button name="button_dummy" states="draft" string="Compute" type="object"/> <button name="button_cancel" states="confirm" string="Cancel" type="object"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> + </header> <sheet string="Bank Statement" layout="auto"> <group col="7" colspan="4" class="oe_form_header"> <field name="name" select="1"/> @@ -670,15 +657,12 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="button_confirm_bank" states="draft" string="Confirm" type="object" /> <button name="button_dummy" states="draft" string="Compute" type="object"/> <button name="button_cancel" states="confirm" string="Cancel" type="object"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> + </header> <sheet string="Bank Statement" layout="auto"> <group col="7" colspan="4" class="oe_form_header"> <field name="name" select="1"/> @@ -1356,7 +1340,6 @@ <field name="amount" sum="Total Amount"/> <field name="to_check"/> <field name="state"/> - <button name="button_validate" states="draft" string="Approve" type="object" icon="terp-camera_test"/> </tree> </field> </record> @@ -1366,14 +1349,11 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="button_validate" states="draft" string="Post" type="object"/> <button name="button_cancel" states="posted" string="Cancel" type="object"/> - <div class="oe_right"> - <field name="state" select="1" widget="statusbar" nolabel="1" /> - </div> - <div class="oe_clear"/> - </div> + <field name="state" select="1" widget="statusbar" nolabel="1" /> + </header> <sheet string="Journal Entries" layout="auto"> <group colspan="4" col="6" class="oe_form_header"> <field name="name" readonly="True"/> @@ -2627,9 +2607,6 @@ action = pool.get('res.config').next(cr, uid, [], context) <field name="balance_end_real"/> <field name="balance_end"/> <field name="state"/> - <button type="object" string="Cancel" name="button_cancel" states="confirm" icon="gtk-cancel"/> - <button type="object" string="Open" name="button_open" states="draft" icon="terp-camera_test"/> - <button type="object" string="Confirm" name="button_confirm_bank" states="open" icon="terp-gtk-go-back-rtl"/> </tree> </field> </record> @@ -2640,15 +2617,12 @@ action = pool.get('res.config').next(cr, uid, [], context) <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="button_confirm_cash" states="open" string="Close CashBox" type="object"/> <button name="button_open" states="draft" string="Open CashBox" type="object"/> <button name="button_cancel" states="confirm,open" string="Cancel" type="object" groups="base.group_extended"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> + </header> <sheet string="Statement" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="name" select="1"/> diff --git a/addons/account/company_view.xml b/addons/account/company_view.xml index 0cc67f23cfe..b8c595f3ca0 100644 --- a/addons/account/company_view.xml +++ b/addons/account/company_view.xml @@ -24,7 +24,7 @@ <field name="arch" type="xml"> <field name="currency_id" position="after"> <field name="property_reserve_and_surplus_account" colspan="2"/> - <field name="paypal_account" /> + <field name="paypal_account" placeholder="sales@openerp.com"/> </field> </field> </record> diff --git a/addons/account/edi/invoice.py b/addons/account/edi/invoice.py index cada93e75e0..6e4d601e987 100644 --- a/addons/account/edi/invoice.py +++ b/addons/account/edi/invoice.py @@ -21,6 +21,7 @@ from osv import fields, osv, orm from edi import EDIMixin +from edi.models import edi INVOICE_LINE_EDI_STRUCT = { 'name': True, @@ -71,6 +72,16 @@ INVOICE_EDI_STRUCT = { class account_invoice(osv.osv, EDIMixin): _inherit = 'account.invoice' + def action_invoice_sent(self, cr, uid, ids, context=None): + """"Override this method to add a link to mail""" + if context is None: + context = {} + invoice_objs = self.browse(cr, uid, ids, context=context) + edi_token = self.pool.get('edi.document').export_edi(cr, uid, invoice_objs, context = context)[0] + web_root_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url') + ctx = dict(context, edi_web_url_view=edi.EDI_VIEW_WEB_URL % (web_root_url, cr.dbname, edi_token)) + return super(account_invoice, self).action_invoice_sent(cr, uid, ids, context=ctx) + def edi_export(self, cr, uid, records, edi_struct=None, context=None): """Exports a supplier or customer invoice""" edi_struct = dict(edi_struct or INVOICE_EDI_STRUCT) diff --git a/addons/account/i18n/id.po b/addons/account/i18n/id.po index 134b43bf614..af2092cacba 100644 --- a/addons/account/i18n/id.po +++ b/addons/account/i18n/id.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-05-10 18:23+0000\n" -"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n" +"PO-Revision-Date: 2012-06-06 10:35+0000\n" +"Last-Translator: Budi Iskandar <Unknown>\n" "Language-Team: Indonesian <id@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-05-11 04:49+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-07 04:41+0000\n" +"X-Generator: Launchpad (build 15353)\n" #. module: account #: view:account.invoice.report:0 @@ -1301,6 +1301,8 @@ msgid "" "You can not use this general account in this journal, check the tab 'Entry " "Controls' on the related journal !" msgstr "" +"Anda tidak bisa menggunakan akun umum pada jurnal ini, cek tab \"Entry " +"Controls\" pada jurnal sesuai !" #. module: account #: field:account.move.line.reconcile,trans_nbr:0 @@ -1337,7 +1339,7 @@ msgstr "Lainnya" #. module: account #: view:account.subscription:0 msgid "Draft Subscription" -msgstr "" +msgstr "Draft Berlangganan" #. module: account #: view:account.account:0 @@ -1411,7 +1413,7 @@ msgstr "Pilih periode awal dan akhir" #. module: account #: model:account.financial.report,name:account.account_financial_report_profitandloss0 msgid "Profit and Loss" -msgstr "" +msgstr "Laba/Rugi" #. module: account #: model:ir.model,name:account.model_account_account_template @@ -1558,7 +1560,7 @@ msgstr "" #. module: account #: view:account.entries.report:0 msgid "# of Entries " -msgstr "" +msgstr "# entris " #. module: account #: help:account.fiscal.position,active:0 @@ -1566,6 +1568,8 @@ msgid "" "By unchecking the active field, you may hide a fiscal position without " "deleting it." msgstr "" +"Dengan me-unchek field Active, And a dapat menyembunyikan fiscal position " +"tampa menghapusnya." #. module: account #: model:ir.model,name:account.model_temp_range @@ -1643,7 +1647,7 @@ msgstr "Pencarian statement Bank" #. module: account #: view:account.move.line:0 msgid "Unposted Journal Items" -msgstr "" +msgstr "Jurnal item belum di Post" #. module: account #: view:account.chart.template:0 @@ -1751,7 +1755,7 @@ msgstr "Penagihan" #: code:addons/account/report/account_partner_balance.py:115 #, python-format msgid "Unknown Partner" -msgstr "" +msgstr "Partner Lain-lain" #. module: account #: field:account.tax.code,sum:0 @@ -1763,7 +1767,7 @@ msgstr "Jumlah Setahun" #, python-format msgid "" "You selected an Unit of Measure which is not compatible with the product." -msgstr "" +msgstr "Anda Memilih satuan yang tidak kompatibel dengan productnya" #. module: account #: view:account.change.currency:0 @@ -1784,7 +1788,7 @@ msgstr "" #. module: account #: view:account.analytic.account:0 msgid "Pending Accounts" -msgstr "" +msgstr "Akun Tunda" #. module: account #: view:account.tax.template:0 diff --git a/addons/account/i18n/ja.po b/addons/account/i18n/ja.po index 9f2bc798696..fa0eb157001 100644 --- a/addons/account/i18n/ja.po +++ b/addons/account/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-05-15 06:17+0000\n" +"PO-Revision-Date: 2012-06-08 01:32+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-05-16 04:50+0000\n" -"X-Generator: Launchpad (build 15247)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:39+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: account #: view:account.invoice.report:0 @@ -38,7 +38,7 @@ msgstr "その他の設定" msgid "" "Determine the display order in the report 'Accounting \\ Reporting \\ " "Generic Reporting \\ Taxes \\ Taxes Report'" -msgstr "会計 \\ レポート \\ 一般的なレポート \\ 税金 \\ 税金レポート にあるレポートの表示順を決定して下さい。" +msgstr "会計 \\ レポート \\ 一般的なレポート \\ 税金 \\ 税金レポート にあるレポートの表示順を決定します。" #. module: account #: view:account.move.reconcile:0 @@ -201,8 +201,8 @@ msgid "" "invoice) to create analytic entries, OpenERP will look for a matching " "journal of the same type." msgstr "" -"分析仕訳帳のタイプを与えて下さい。分析エントリーを作成するためのドキュメント(例えば請求書)のために必要な場合、OpenERPは同じタイプの一致する仕訳帳" -"を探します。" +"分析仕訳帳のタイプを与えます。分析エントリーを作成するためのドキュメント(例えば請求書)のために必要な場合、OpenERPは同じタイプの一致する仕訳帳を探" +"します。" #. module: account #: model:ir.actions.act_window,name:account.action_account_tax_template_form @@ -1086,7 +1086,7 @@ msgstr "並べ替え順" #. module: account #: help:account.fiscalyear.close,fy_id:0 msgid "Select a Fiscal year to close" -msgstr "閉じる会計年度を選択して下さい。" +msgstr "閉じるには会計年度を選択します。" #. module: account #: help:account.account.template,user_type:0 @@ -1476,7 +1476,7 @@ msgstr "桁数" #. module: account #: field:account.journal,entry_posted:0 msgid "Skip 'Draft' State for Manual Entries" -msgstr "手動入力のため、ドラフト状態をスキップして下さい。" +msgstr "手動入力のため、ドラフト状態をスキップします。" #. module: account #: view:account.invoice.report:0 @@ -1662,7 +1662,7 @@ msgstr "切り離された仕訳帳順序" #. module: account #: view:account.invoice:0 msgid "Responsible" -msgstr "責任担当" +msgstr "担当" #. module: account #: model:ir.actions.act_window,name:account.action_report_account_type_sales_tree_all @@ -1674,12 +1674,12 @@ msgstr "アカウントタイプ別売上" msgid "" "Cancel Invoice: Creates the refund invoice, validate and reconcile it to " "cancel the current invoice." -msgstr "請求書のキャンセル:現在の請求書をキャンセルするために返金請求書を作成、検証、消し込みして下さい。" +msgstr "請求書のキャンセル:現在の請求書をキャンセルするために返金請求書を作成、検証、消し込みします。" #. module: account #: model:ir.ui.menu,name:account.periodical_processing_invoicing msgid "Invoicing" -msgstr "請求" +msgstr "請求中" #. module: account #: code:addons/account/report/account_partner_balance.py:115 @@ -2425,7 +2425,7 @@ msgstr "基本コード" #. module: account #: help:account.invoice.tax,sequence:0 msgid "Gives the sequence order when displaying a list of invoice tax." -msgstr "請求書の税金のリストを表示する時に、並べ順を指定して下さい。" +msgstr "請求書の税金のリストを表示する時に、並べ順を与えます。" #. module: account #: field:account.tax,base_sign:0 @@ -2445,9 +2445,9 @@ msgid "" "useful because it enables you to preview at any time the tax that you owe at " "the start and end of the month or quarter." msgstr "" -"このメニューは請求書または支払いに基づく消費税申告を印刷します。ひとつあるいは複数の会計年度を選択して下さい。税金申請のために要求される情報は請求書(また" -"は支払い、幾つかの国の)からOpenERPによって自動的に生成されます。このデータはリアルタイムで更新されます。月あるいは四半期の開始と終了において、支払" -"うべき税金をいつでもレビューできるため非常に便利です。" +"このメニューは請求書または支払いに基づく消費税申告を印刷します。ひとつあるいは複数の会計年度を選択します。税金申請のために要求される情報は請求書(または支" +"払い、幾つかの国の)からOpenERPによって自動的に生成されます。このデータはリアルタイムで更新されます。月あるいは四半期の開始と終了において、支払うべ" +"き税金をいつでもレビューできるため非常に便利です。" #. module: account #: selection:account.move.line,centralisation:0 @@ -2615,7 +2615,7 @@ msgstr "銀行消し込み" #. module: account #: report:account.invoice:0 msgid "Disc.(%)" -msgstr "ディスク(%)" +msgstr "割引(%)" #. module: account #: report:account.general.ledger:0 @@ -2722,8 +2722,7 @@ msgid "" "Note that journal entries that are automatically created by the system are " "always skipping that state." msgstr "" -"新しい仕訳帳エントリーがドラフト状態を通り抜けて、代わりに手動での検証を行わず直接記帳状態に行くことを望まない場合は、このボックスをチェックして下さい。" -"\n" +"新しい仕訳帳エントリーがドラフト状態を通り抜けて、代わりに手動での検証を行わず直接記帳状態に行くことを望まない場合は、このボックスをチェックします。\n" "システムにより自動的に作成された仕訳帳エントリーはいつもこの状態をスキップすることに注意して下さい。" #. module: account @@ -2847,7 +2846,7 @@ msgstr "費用勘定" #. module: account #: help:account.invoice,period_id:0 msgid "Keep empty to use the period of the validation(invoice) date." -msgstr "検証(請求書)日の期間を使うために空のままにして下さい。" +msgstr "検証(請求書)日の期間を使うために空のままにします。" #. module: account #: help:account.bank.statement,account_id:0 @@ -3162,7 +3161,7 @@ msgid "" " 'Unreconciled' will copy only the journal items that were unreconciled on " "the first day of the new fiscal year." msgstr "" -"このタイプの全てのアカウントの年間の仕訳帳エントリーの終わりを生成するのに使用する方法を、ここで設定して下さい。\n" +"このタイプの全てのアカウントの年間の仕訳帳エントリーの終わりを生成するのに使用する方法を、ここで設定します。\n" "\n" " \"なし\" は何も行われないことを意味します。\n" " \"残高\"は一般的には現金のアカウントのために使用されます。\n" @@ -3179,7 +3178,7 @@ msgstr "その会計年度の終わりの仕訳帳が定義されていません #: view:account.tax:0 #: view:account.tax.template:0 msgid "Keep empty to use the expense account" -msgstr "費用勘定を使うためには空のままとして下さい。" +msgstr "費用勘定を使うためには空のままとします。" #. module: account #: field:account.aged.trial.balance,journal_ids:0 @@ -4118,7 +4117,7 @@ msgstr "貸借対照表(負債勘定)" #. module: account #: help:account.invoice,date_invoice:0 msgid "Keep empty to use the current date" -msgstr "現在日付を利用するには空のままとして下さい。" +msgstr "現在日付を利用するには空のままとします。" #. module: account #: field:account.invoice,tax_line:0 @@ -4327,8 +4326,8 @@ msgid "" "you want to generate accounts of this template only when loading its child " "template." msgstr "" -"テンプレートから勘定科目表を生成するウィザードの中でこのテンプレートを積極的に使わないのであれば、Falseを設定して下さい。これは子のテンプレートをロー" -"ドするときだけ、このテンプレートのアカウントを生成するときに役立ちます。" +"テンプレートから勘定科目表を生成するウィザードの中でこのテンプレートを積極的に使わないのであれば、Falseを設定します。これは子のテンプレートをロードし" +"た時のみでこのテンプレートのアカウントを生成したい時に役立ちます。" #. module: account #: view:account.use.model:0 @@ -4445,7 +4444,7 @@ msgstr "" #: view:account.tax:0 #: view:account.tax.template:0 msgid "Keep empty to use the income account" -msgstr "損益勘定を使うためは空のままとして下さい。" +msgstr "収益勘定を使うためは空のままとします。" #. module: account #: code:addons/account/account.py:3299 @@ -4792,7 +4791,7 @@ msgstr "会計士" msgid "" "From this view, have an analysis of your treasury. It sums the balance of " "every accounting entries made on liquidity accounts per period." -msgstr "このビューから財務分析を行って下さい。これは期間毎に流動資産アカウント上に作られた全ての会計エントリーの残高を合計します。" +msgstr "このビューから財務分析を行います。これは期間毎に流動資産アカウント上に作られた全ての会計エントリーの残高を合計します。" #. module: account #: field:account.journal,group_invoice_lines:0 @@ -5172,7 +5171,7 @@ msgstr "取引" #: help:account.tax.template,ref_tax_code_id:0 #: help:account.tax.template,tax_code_id:0 msgid "Use this code for the VAT declaration." -msgstr "消費税申請にこのコードを使って下さい。" +msgstr "消費税申請にこのコードを使います。" #. module: account #: field:account.partner.reconcile.process,progress:0 @@ -5220,7 +5219,7 @@ msgstr "エントリー制御" #: view:account.analytic.chart:0 #: view:project.account.analytic.line:0 msgid "(Keep empty to open the current situation)" -msgstr "(現在の状態を開くために空のままとして下さい)" +msgstr "(現在の状態を開くために空のままとします)" #. module: account #: field:account.analytic.balance,date1:0 @@ -5300,7 +5299,7 @@ msgstr "年度エントリー仕訳帳の末尾" #: code:addons/account/wizard/account_move_journal.py:63 #, python-format msgid "Configuration Error !" -msgstr "設定エラー。" +msgstr "設定エラーです。" #. module: account #: field:account.payment.term.line,value_amount:0 @@ -5592,7 +5591,7 @@ msgstr "買掛金合計" #: model:account.account.type,name:account.data_account_type_income #: model:account.financial.report,name:account.account_financial_report_income0 msgid "Income" -msgstr "収益" +msgstr "収入" #. module: account #: selection:account.bank.statement.line,type:0 @@ -5888,7 +5887,7 @@ msgstr "サブスクリプション期間中" #. module: account #: report:account.invoice:0 msgid "Fiscal Position Remark :" -msgstr "会計ポジション注釈:" +msgstr "会計ポジションの注釈:" #. module: account #: view:analytic.entries.report:0 @@ -5954,7 +5953,7 @@ msgstr "" #. module: account #: view:account.invoice:0 msgid "(keep empty to use the current period)" -msgstr "(今期を使う場合は空のままとして下さい)" +msgstr "(現在の期間を使う場合は空のままとします)" #. module: account #: model:process.transition,note:account.process_transition_supplierreconcilepaid0 @@ -6465,7 +6464,7 @@ msgstr "エントリー: " #. module: account #: view:account.use.model:0 msgid "Create manual recurring entries in a chosen journal." -msgstr "選択された仕訳帳の中に手動で定期エントリーを作成して下さい。" +msgstr "選択された仕訳帳の中に手動の定期エントリーを作成します。" #. module: account #: help:res.partner.bank,currency_id:0 @@ -6941,8 +6940,8 @@ msgid "" "accounting application of OpenERP, journals and accounts will be created " "automatically based on these data." msgstr "" -"会社の銀行口座を設定して、そしてレポートフッターに現れるべきそれを選択して下さい。リストビューの中の銀行を並べ替えることが出来ます。OpenERPの会計ア" -"プリケーションを使用する場合は、仕訳帳とアカウントはそれらのデータを基に自動的に作成されます。" +"会社の銀行口座を設定して、そしてレポートフッターに現れるべきそれを選択します。リストビューの中の銀行を並べ替えることが出来ます。OpenERPの会計アプリ" +"ケーションを使用する場合は、仕訳帳とアカウントはそれらのデータを基に自動的に作成されます。" #. module: account #: model:process.transition,note:account.process_transition_invoicemanually0 @@ -7001,7 +7000,7 @@ msgstr "税金:" #. module: account #: help:account.tax,amount:0 msgid "For taxes of type percentage, enter % ratio between 0-1." -msgstr "税金はパーセンテージタイプのため、0から1の間の%比率を入力して下さい。" +msgstr "税金はパーセンテージタイプのため、0から1の間の%比率を入力します。" #. module: account #: model:ir.actions.act_window,help:account.action_subscription_form @@ -7024,7 +7023,7 @@ msgstr "財務レポートの階層" #: view:analytic.entries.report:0 #: field:analytic.entries.report,product_uom_id:0 msgid "Product UOM" -msgstr "製品単位" +msgstr "製品の単位" #. module: account #: model:ir.actions.act_window,help:account.action_view_bank_statement_tree @@ -7125,7 +7124,7 @@ msgid "" "You can search for individual account entries through useful information. To " "search for account entries, open a journal, then select a record line." msgstr "" -"有益な情報を介して個別のアカウントエントリーのための検索ができます。アカウントエントリーの検索のためには仕訳帳を開き、そしてレコード行を選択して下さい。" +"有益な情報を介して個別のアカウントエントリーのための検索ができます。アカウントエントリーの検索のためには仕訳帳を開き、そしてレコード行を選択します。" #. module: account #: view:account.entries.report:0 @@ -7135,7 +7134,7 @@ msgstr "記帳済エントリー" #. module: account #: help:account.payment.term.line,value_amount:0 msgid "For percent enter a ratio between 0-1." -msgstr "パーセントは0から1までの比率を入力して下さい。" +msgstr "パーセントは0から1までの比率を入力します。" #. module: account #: report:account.invoice:0 @@ -7183,8 +7182,7 @@ msgid "" "new counterpart but will share the same counterpart. This is used in fiscal " "year closing." msgstr "" -"この仕訳帳の各エントリーは新しい相手方を作成しないが、同じ相手方を共有することを決定するために、このボックスをチェックして下さい。これは会計年度決算時に使" -"われます。" +"この仕訳帳の各エントリーが新しい相手方を作成せずに同じ相手方を共有すると決めるには、このボックスをチェックします。これは会計年度決算時に使われます。" #. module: account #: field:account.bank.statement,closing_date:0 @@ -7328,14 +7326,14 @@ msgid "" "Tax related to this account and the counter-part \"Account Payable\"." msgstr "" "このビューはOpenERPで大量のエントリーを記録するために会計士によって使用されます。仕入先請求書を記録することを望む場合、費用勘定の行を記録することに" -"より開始して下さい。OpenERPは自動的にこのアカウントと相手方の買掛金に関連した税金を提案します" +"より開始します。OpenERPは自動的にこのアカウントと相手方の買掛金に関連した税金を提案します。" #. module: account #: view:account.invoice.line:0 #: field:account.invoice.tax,invoice_id:0 #: model:ir.model,name:account.model_account_invoice_line msgid "Invoice Line" -msgstr "請求行" +msgstr "請求書行" #. module: account #: view:account.invoice.report:0 @@ -7590,7 +7588,7 @@ msgstr "仕訳帳の仕訳帳エントリー記帳" #. module: account #: view:product.product:0 msgid "Sale Taxes" -msgstr "消費税(売上)" +msgstr "消費税" #. module: account #: field:account.financial.report,name:0 @@ -7727,7 +7725,7 @@ msgid "" "it's based on the beginning of the month)." msgstr "" "月の日は、今月の最後の日とするには-" -"1を設定して下さい。もし正の値なら翌月のその日になります。正味日数の場合には0を設定して下さい(それ以外は月初日を基準とします)。" +"1を設定します。もし正の値なら翌月のその日になります。正味日数の場合には0を設定します(それ以外は月初日を基準とします)。" #. module: account #: model:ir.ui.menu,name:account.menu_finance_legal_statement @@ -8067,7 +8065,7 @@ msgstr "仕入返金仕訳帳" #. module: account #: help:account.tax.template,amount:0 msgid "For Tax Type percent enter % ratio between 0-1." -msgstr "税金はパーセンテージタイプのため、0から1の間の%比率を入力して下さい。" +msgstr "税金はパーセンテージタイプのため、0から1の間の%比率を入力します。" #. module: account #: view:account.analytic.account:0 @@ -8156,7 +8154,7 @@ msgstr "一部が支払済の請求書のキャンセルはできません。ま #. module: account #: field:account.chart.template,property_account_income_categ:0 msgid "Income Category Account" -msgstr "収益分類のアカウント" +msgstr "収入分類のアカウント" #. module: account #: field:account.account,adjusted_balance:0 @@ -8673,7 +8671,7 @@ msgstr "通貨" #: help:account.bank.statement.line,sequence:0 msgid "" "Gives the sequence order when displaying a list of bank statement lines." -msgstr "銀行取引明細書のリストを表示する時には、並び順を与えて下さい。" +msgstr "銀行取引明細書のリストを表示する時には並び順を与えます。" #. module: account #: model:process.transition,note:account.process_transition_validentries0 @@ -8691,9 +8689,9 @@ msgid "" "would be referred to as FY 2011. You are not obliged to follow the actual " "calendar year." msgstr "" -"ニーズに応じて会社の会計年度を定義して下さい。会計年度は会社のアカウントを構成する(通常12ヶ月)終わりまでの期間です。会計年度は通常その終わりの日付まで" -"が当てはまります。例えば、会社の会計年度の終わりが2011年11月30日である場合、2010年12月1日から2011年11月30日の全てが2011年の会計" -"年度に当てはまります。実際の暦年に従う必要はありません。" +"ニーズに応じて会社の会計年度を定義します。会計年度は会社のアカウントを構成する(通常12ヶ月)終わりまでの期間です。会計年度は通常その終わりの日付までが当" +"てはまります。例えば、会社の会計年度の終わりが2011年11月30日である場合、2010年12月1日から2011年11月30日の全てが2011年の会計年度" +"に当てはまります。実際の暦年に従う必要はありません。" #. module: account #: view:account.entries.report:0 @@ -8798,7 +8796,7 @@ msgstr "期間原価元帳" msgid "" "Set if the tax computation is based on the computation of child taxes rather " "than on the total amount." -msgstr "税金計算が合計金額よりむしろ子の税金の計算に基づく場合は設定して下さい。" +msgstr "税金計算が合計金額より、むしろ、子の税金の計算に基づく場合は設定して下さい。" #. module: account #: selection:account.tax,applicable_type:0 @@ -9149,7 +9147,7 @@ msgid "" "related to this account and the counter-part \"Account receivable\"." msgstr "" "このビューはOpenERPに大量のエントリーを記録するために会計士によって使われます。顧客請求書を記録することを望む場合、検索ツールバーの仕訳帳と期間を選" -"択して下さい。それから、損益勘定のエントリー行を開始します。OpenERPはこのアカウントに関係する税金と相手方の売掛金を自動的に提案します。" +"択します。それから、損益勘定のエントリー行を開始します。OpenERPはこのアカウントに関係する税金と相手方の売掛金を自動的に提案します。" #. module: account #: code:addons/account/wizard/account_automatic_reconcile.py:152 @@ -9173,7 +9171,7 @@ msgid "" "period." msgstr "" "会社の会計年度の時間間隔である会計期間をここで定義して下さい。会計期間は通常は1ヶ月あるいは3ヶ月です。これは、通常は税金申告の期間た対応します。ここから" -"期間を作成して管理して下さい。そして、期間は閉じられるべきなのか、特定の期間にわたる会社の活動に応じて開いたままにしておくのかを決めます。" +"期間を作成して管理します。そして、期間は閉じられるべきなのか、特定の期間にわたる会社の活動に応じて開いたままにしておくのかを決めます。" #. module: account #: report:account.third_party_ledger:0 @@ -9449,12 +9447,12 @@ msgid "" msgstr "" "期間は会計に関連する活動を記録すべき会計エントリーが含まれる会計期間のことです。月次期間が標準ですが、あなたの国あるいは会社のニーズに依存します。また、四" "半期期間を持つこともできます。期間の閉鎖は新しい会計エントリーの記録を不可能にし、全ての新しいエントリーは次の開設期間でなされる必要があります。新しいエン" -"トリーを記録したくない場合、あるいは税金に関連する計算のためにこの期間をロックしたい場合は期間を閉じてください。" +"トリーを記録したくない場合、あるいは税金に関連する計算のためにこの期間をロックしたい場合は期間を閉じて下さい。" #. module: account #: view:account.analytic.account:0 msgid "Pending" -msgstr "保留" +msgstr "保留中" #. module: account #: model:process.transition,name:account.process_transition_analyticinvoice0 @@ -10259,8 +10257,8 @@ msgid "" "may keep several types of specialized journals such as a cash journal, " "purchase journal, sales journal..." msgstr "" -"このメニューから会社の仕訳帳を作成し管理して下さい。仕訳帳は複式簿記システムを使って、会社の日々のビジネスに関連した全ての会計データの取引を記録するために" -"使用されます。その活動の性質と日常の取引の数に応じて、会社は現金仕訳帳、仕入仕訳帳、売上仕訳帳といった専門的な仕訳帳の幾つかのタイプを持ちます。" +"このメニューから会社の仕訳帳を作成し管理します。仕訳帳は複式簿記システムを使って、会社の日々のビジネスに関連した全ての会計データの取引を記録するために使用" +"されます。その活動の性質と日常の取引の数に応じて、会社は現金仕訳帳、仕入仕訳帳、売上仕訳帳といった専門的な仕訳帳の幾つかのタイプを持ちます。" #. module: account #: view:account.payment.term:0 @@ -10439,7 +10437,7 @@ msgstr "" "${object.address_invoice_id.name and ' ' or " "''}${object.address_invoice_id.name or ''}様,\n" "\n" -"新しい請求書をお届けします。どうぞご確認ください。発行者: ${object.partner_id.name}:\n" +"新しい請求書をお届けします。どうぞご確認下さい。発行者: ${object.partner_id.name}:\n" " | 請求書番号: *${object.number}*\n" " | 請求金額合計: *${object.amount_total} ${object.currency_id.name}*\n" " | 請求日: ${object.date_invoice}\n" @@ -10473,10 +10471,10 @@ msgstr "" " ${paypal_url}\n" "% endif\n" "\n" -"何かご質問等ございましたら、ご遠慮なく弊社までお問い合わせください。\n" +"何かご質問等ございましたら、ご遠慮なく弊社までお問い合わせ下さい。\n" "\n" "\n" -"弊社をご利用いただきありがとうございました。 ${object.company_id.name}\n" +"弊社をご利用いただき、ありがとうございました。 ${object.company_id.name}\n" "\n" "\n" "--\n" @@ -10758,3 +10756,9 @@ msgstr "仕訳帳エントリーの買掛金、または買掛金の残差金額 #~ msgid "Description On Invoices" #~ msgstr "請求書説明" + +#~ msgid "Write-Off journal" +#~ msgstr "償却仕訳帳" + +#~ msgid "Full Payment" +#~ msgstr "全支払" diff --git a/addons/account/i18n/pt.po b/addons/account/i18n/pt.po index 256f903bbd0..69e36d5fc48 100644 --- a/addons/account/i18n/pt.po +++ b/addons/account/i18n/pt.po @@ -7,20 +7,20 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-05-10 17:57+0000\n" -"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n" +"PO-Revision-Date: 2012-06-05 09:38+0000\n" +"Last-Translator: Tiago Rodrigues <tig.rodrigues@gmail.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 04:51+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-06 04:37+0000\n" +"X-Generator: Launchpad (build 15353)\n" #. module: account #: view:account.invoice.report:0 #: view:analytic.entries.report:0 msgid "last month" -msgstr "mês anterior" +msgstr "" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -30,7 +30,7 @@ msgstr "Pagamento do sistema" #. module: account #: view:account.journal:0 msgid "Other Configuration" -msgstr "Outras configurações" +msgstr "Outras Configurações" #. module: account #: help:account.tax.code,sequence:0 @@ -57,7 +57,7 @@ msgstr "Estatisticas da Conta" #. module: account #: view:account.invoice:0 msgid "Proforma/Open/Paid Invoices" -msgstr "Proforma/ Abrir / Faturas Pagas" +msgstr "Proforma / Abrir / Faturas Pagas" #. module: account #: field:report.invoice.created,residual:0 @@ -93,7 +93,7 @@ msgstr "Antiguidade de saldos de clientes até hoje." #. module: account #: model:process.transition,name:account.process_transition_invoiceimport0 msgid "Import from invoice or payment" -msgstr "Importar da fatura ou do pagamento" +msgstr "Importar da fatura ou pagamento" #. module: account #: model:ir.model,name:account.model_wizard_multi_charts_accounts @@ -274,7 +274,7 @@ msgstr "" #. module: account #: report:account.overdue:0 msgid "Sub-Total :" -msgstr "Sub-total :" +msgstr "Sub-Total :" #. module: account #: model:ir.actions.act_window,name:account.action_account_use_model_create_entry @@ -404,12 +404,12 @@ msgstr "account.bank.accounts.wizard" #: field:account.move.line,date_created:0 #: field:account.move.reconcile,create_date:0 msgid "Creation date" -msgstr "Data de criação" +msgstr "Data da Criação" #. module: account #: selection:account.journal,type:0 msgid "Purchase Refund" -msgstr "Nota de Crédito de Compras" +msgstr "Reembolso da Compra" #. module: account #: selection:account.journal,type:0 @@ -686,7 +686,7 @@ msgstr "Fechar periodo" #. module: account #: model:ir.model,name:account.model_account_common_partner_report msgid "Account Common Partner Report" -msgstr "Relatório Comum de Conta de Paceiros" +msgstr "Relatório Comum de Conta de Parceiros" #. module: account #: field:account.fiscalyear.close,period_id:0 @@ -715,7 +715,7 @@ msgstr "Todos os movimentos a conciliar devem ser da mesma empresa." #: model:ir.actions.act_window,name:account.action_aged_receivable #, python-format msgid "Receivable Accounts" -msgstr "Contas a receber" +msgstr "Contas a Receber" #. module: account #: constraint:account.move.line:0 @@ -873,6 +873,10 @@ msgid "" "or Loss you'd realized if those transactions were ended today. Only for " "accounts having a secondary currency set." msgstr "" +"Ao fazer transações multi-moeda, pode perder ou ganhar alguma quantia devida " +"a alterações da taxa de câmbio. Este menu dá uma previsão do ganho ou perda " +"que percebeu se essas transações foram terminadas hoje. Somente para contas " +"com um conjunto moeda secundária." #. module: account #: selection:account.entries.report,month:0 @@ -881,7 +885,7 @@ msgstr "" #: selection:report.account.sales,month:0 #: selection:report.account_type.sales,month:0 msgid "September" -msgstr "setembro" +msgstr "Setembro" #. module: account #: selection:account.subscription,period_type:0 @@ -1000,7 +1004,7 @@ msgstr "Responsabilidade" #. module: account #: view:account.entries.report:0 msgid "Extended Filters..." -msgstr "Filtros Extendidos..." +msgstr "Filtros Avançados..." #. module: account #: model:ir.ui.menu,name:account.menu_account_central_journal @@ -1157,7 +1161,7 @@ msgstr "Em disputa" #: model:ir.actions.act_window,name:account.action_view_bank_statement_tree #: model:ir.ui.menu,name:account.journal_cash_move_lines msgid "Cash Registers" -msgstr "Registos de Caixa" +msgstr "Caixa Registadora" #. module: account #: report:account.analytic.account.journal:0 @@ -1289,7 +1293,7 @@ msgid "" "You can not use this general account in this journal, check the tab 'Entry " "Controls' on the related journal !" msgstr "" -"Não pode usar esta conta geral nesta diário, verificar 'Controles de " +"Não pode usar esta conta geral neste diário, verificar 'Controles de " "Entrada' do guia do diário relacionado!" #. module: account @@ -1434,7 +1438,7 @@ msgstr "Saldo de abertura" #. module: account #: view:account.invoice:0 msgid "Reset to Draft" -msgstr "Voltar a rascunho" +msgstr "Redefinir para rascunho" #. module: account #: view:wizard.multi.charts.accounts:0 @@ -1518,7 +1522,7 @@ msgstr "Calcular impostos" #: field:account.chart.template,code_digits:0 #: field:wizard.multi.charts.accounts,code_digits:0 msgid "# of Digits" -msgstr "Nº de dígitos" +msgstr "# de Dígitos" #. module: account #: field:account.journal,entry_posted:0 @@ -1529,7 +1533,7 @@ msgstr "Saltar o estado \"Rascunho\" para lançamentos manuais" #: view:account.invoice.report:0 #: field:account.invoice.report,price_total:0 msgid "Total Without Tax" -msgstr "Total, com taxas" +msgstr "Total sem Impostos" #. module: account #: model:ir.actions.act_window,help:account.action_move_journal_line @@ -1547,7 +1551,7 @@ msgstr "" #. module: account #: view:account.entries.report:0 msgid "# of Entries " -msgstr "Nº. de movimentos " +msgstr "# de Entradas " #. module: account #: help:account.fiscal.position,active:0 @@ -1652,7 +1656,7 @@ msgstr "Conta de imposto para notas de crédito" #: view:account.bank.statement:0 #: field:account.bank.statement,line_ids:0 msgid "Statement lines" -msgstr "Linhas de extrato" +msgstr "Linhas do extrato" #. module: account #: model:ir.actions.act_window,help:account.action_bank_statement_tree @@ -1681,7 +1685,7 @@ msgstr "Data/Código" #: view:analytic.entries.report:0 #: field:analytic.entries.report,general_account_id:0 msgid "General Account" -msgstr "Contas gerais" +msgstr "Conta Geral" #. module: account #: field:res.partner,debit_limit:0 @@ -1730,8 +1734,8 @@ msgid "" "Cancel Invoice: Creates the refund invoice, validate and reconcile it to " "cancel the current invoice." msgstr "" -"Anular fatura: Cria uma nota de crédito, valida-a e aloca-a à fatura atual, " -"Ficando as duas no estado pago." +"Cancelar fatura: Cria uma nota de crédito, valida-a e aloca-a à fatura " +"atual, Ficando as duas no estado pago." #. module: account #: model:ir.ui.menu,name:account.periodical_processing_invoicing @@ -1865,7 +1869,7 @@ msgstr "Erro!" #. module: account #: sql_constraint:account.move.line:0 msgid "Wrong credit or debit value in accounting entry !" -msgstr "Valor de crédito ou débito errado no movimento contabilístico !" +msgstr "Valor de Crédito ou débito errado na entrada de contabilidade!" #. module: account #: view:account.invoice.report:0 @@ -1898,7 +1902,7 @@ msgstr "Baseado em" #: field:account.invoice,move_id:0 #: field:account.invoice,move_name:0 msgid "Journal Entry" -msgstr "Lançamento de diário" +msgstr "Entradas no diário" #. module: account #: view:account.tax:0 @@ -1932,7 +1936,7 @@ msgstr "Venda / Compra Diário" #. module: account #: view:account.analytic.account:0 msgid "Analytic account" -msgstr "Conta analítica" +msgstr "Conta Analítica" #. module: account #: code:addons/account/account_bank_statement.py:339 @@ -2045,7 +2049,7 @@ msgstr "" #: view:account.invoice:0 #: view:report.invoice.created:0 msgid "Untaxed Amount" -msgstr "Valor sem Impostos" +msgstr "Montante sem Impostos" #. module: account #: help:account.tax,active:0 @@ -2053,7 +2057,7 @@ msgid "" "If the active field is set to False, it will allow you to hide the tax " "without removing it." msgstr "" -"Se o campo activo for definido como 'Falso', ele permitirá que oculte o " +"Se o campo ativo for definido como 'Falso', ele permitirá que oculte o " "imposto sem o remover." #. module: account @@ -2123,7 +2127,7 @@ msgstr "Importar da fatura" #: selection:report.account.sales,month:0 #: selection:report.account_type.sales,month:0 msgid "January" -msgstr "janeiro" +msgstr "Janeiro" #. module: account #: view:account.journal:0 @@ -2261,7 +2265,7 @@ msgstr "ECNJ" #: view:account.subscription:0 #: selection:account.subscription,state:0 msgid "Running" -msgstr "Em execução" +msgstr "Em Funcionamento" #. module: account #: view:account.chart.template:0 @@ -2307,7 +2311,7 @@ msgstr "# de Qt. de Artigos " #. module: account #: model:ir.model,name:account.model_product_template msgid "Product Template" -msgstr "Template Artigo" +msgstr "Template do Artigo" #. module: account #: report:account.account.balance:0 @@ -2505,7 +2509,7 @@ msgstr "Progresso de 30% ao fim de 30 dias" #. module: account #: view:account.entries.report:0 msgid "Unreconciled entries" -msgstr "Movimentos Dereconciliado" +msgstr "Movimentos Desreconciliados" #. module: account #: field:account.invoice.tax,base_code_id:0 @@ -2606,7 +2610,7 @@ msgstr "" #. module: account #: view:account.analytic.cost.ledger.journal.report:0 msgid "Select period" -msgstr "Seleccione o período" +msgstr "Selecione o período" #. module: account #: model:ir.ui.menu,name:account.menu_account_pp_statements @@ -2679,7 +2683,7 @@ msgstr "Erro de Configuração!" #. module: account #: field:account.invoice.report,price_average:0 msgid "Average Price" -msgstr "Preço médio" +msgstr "Preço Médio" #. module: account #: report:account.overdue:0 @@ -2824,8 +2828,8 @@ msgid "" "always skipping that state." msgstr "" "Marque esta caixa se não pretende que os novos movimentos do diário passem " -"através do estado \"rascunho\" e vão directamente para o estado " -"\"Publicado\" sem qualquer validação manual.\n" +"através do estado 'rascunho' e vão diretamente para o estado 'Publicado' sem " +"qualquer validação manual.\n" "Note que os movimentos do diário que são automaticamente criados pelo " "sistema também ignoram este estado." @@ -2949,7 +2953,7 @@ msgstr "Obrigatório" #: field:product.category,property_account_expense_categ:0 #: field:product.template,property_account_expense:0 msgid "Expense Account" -msgstr "Conta de gastos" +msgstr "Conta de Despesas" #. module: account #: help:account.invoice,period_id:0 @@ -2999,7 +3003,7 @@ msgid "" msgstr "" "A data de maturidade dos movimentos gerados por este modelo. Pode escolher " "entre a data de criação ou a data de criação dos movimentos mais os termos " -"de pagamento dos Paceiros." +"de pagamento dos Parceiros." #. module: account #: model:ir.ui.menu,name:account.menu_finance_accounting @@ -3023,7 +3027,7 @@ msgstr "Lucro e prejuízo" #: model:ir.model,name:account.model_account_fiscal_position #: field:res.partner,property_account_position:0 msgid "Fiscal Position" -msgstr "Posição fiscal" +msgstr "Posição Fiscal" #. module: account #: code:addons/account/account_invoice.py:735 @@ -3044,7 +3048,7 @@ msgstr "Um parceiro por página" #: field:account.account,child_parent_ids:0 #: field:account.account.template,child_parent_ids:0 msgid "Children" -msgstr "Contas-filho" +msgstr "Descendentes" #. module: account #: selection:account.invoice,type:0 @@ -3097,7 +3101,7 @@ msgstr "Transação a dinheiro" #. module: account #: view:res.partner:0 msgid "Bank account" -msgstr "Conta bancária" +msgstr "Conta Bancária" #. module: account #: field:account.chart.template,tax_template_ids:0 @@ -3190,7 +3194,7 @@ msgstr "BNK" #. module: account #: field:account.move.line,analytic_lines:0 msgid "Analytic lines" -msgstr "Linhas da analítica" +msgstr "Linhas analíticas" #. module: account #: view:account.invoice:0 @@ -3220,7 +3224,7 @@ msgstr "Começa em" #. module: account #: model:ir.model,name:account.model_account_partner_ledger msgid "Account Partner Ledger" -msgstr "Balancete de Contas de Terceiro" +msgstr "Balancete de Contas do Parceiro" #. module: account #: help:account.journal.column,sequence:0 @@ -8774,7 +8778,7 @@ msgstr "Diário de Compra" #: view:account.invoice.refund:0 msgid "Refund Invoice: Creates the refund invoice, ready for editing." msgstr "" -"Nota de crédito: Emite uma nota de crédito, para ser editada / confirmada à " +"Estornar fatura: Emite uma nota de crédito, para ser editada / confirmada à " "mão." #. module: account @@ -10690,7 +10694,7 @@ msgstr "" #. module: account #: view:account.payment.term:0 msgid "Description on Invoices" -msgstr "" +msgstr "Descrição de Faturas" #. module: account #: model:ir.model,name:account.model_account_analytic_chart diff --git a/addons/account/i18n/zh_TW.po b/addons/account/i18n/zh_TW.po index f5aa3781e50..9a935b5ab11 100644 --- a/addons/account/i18n/zh_TW.po +++ b/addons/account/i18n/zh_TW.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-05-23 07:32+0000\n" -"Last-Translator: VTTW <victso@gmail.com>\n" +"PO-Revision-Date: 2012-06-05 02:38+0000\n" +"Last-Translator: Boyce Huang <boyce.huang@cenoq.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-24 11:09+0000\n" -"X-Generator: Launchpad (build 15288)\n" +"X-Launchpad-Export-Date: 2012-06-06 04:37+0000\n" +"X-Generator: Launchpad (build 15353)\n" #. module: account #: view:account.invoice.report:0 @@ -419,7 +419,7 @@ msgstr "貸方合計" #. module: account #: view:account.move.line.unreconcile.select:0 msgid "Open for Unreconciliation" -msgstr "" +msgstr "開啟反核銷" #. module: account #: field:account.account.template,chart_template_id:0 @@ -2737,7 +2737,7 @@ msgstr "要設置期初餘額需在憑證簿設置中勾選合併選項" #: model:ir.actions.act_window,name:account.action_tax_code_list #: model:ir.ui.menu,name:account.menu_action_tax_code_list msgid "Tax Codes" -msgstr "" +msgstr "稅碼" #. module: account #: view:account.account:0 @@ -4593,7 +4593,7 @@ msgstr "已付" #. module: account #: view:account.period.close:0 msgid "Are you sure?" -msgstr "" +msgstr "您確定嗎?" #. module: account #: help:account.move.line,statement_id:0 @@ -5930,7 +5930,7 @@ msgstr "銷售稅(%)" #. module: account #: view:account.addtmpl.wizard:0 msgid "Create an Account Based on this Template" -msgstr "" +msgstr "根據這個範本建立使用者" #. module: account #: view:account.account.type:0 @@ -7868,7 +7868,7 @@ msgstr "反向輔助核算餘額 -" #. module: account #: view:account.move.bank.reconcile:0 msgid "Open for Bank Reconciliation" -msgstr "" +msgstr "開啟銀行核銷" #. module: account #: view:account.analytic.line:0 @@ -9126,7 +9126,7 @@ msgstr "為了對賬,您必須在賬簿中定義一個銀行帳號。" #. module: account #: view:account.move.line.reconcile:0 msgid "Reconciliation Transactions" -msgstr "" +msgstr "核銷交易" #. module: account #: model:ir.actions.act_window,name:account.action_account_common_menu diff --git a/addons/account/res_config_view.xml b/addons/account/res_config_view.xml index 1cf1e40f02b..41a0b121735 100644 --- a/addons/account/res_config_view.xml +++ b/addons/account/res_config_view.xml @@ -16,10 +16,10 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Accounting" layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Apply" type="object" name="execute"/> <button string="Cancel" special="cancel"/> - </div> + </header> <sheet layout="auto"> <field name="has_default_company" invisible="1" /> <field name="has_chart_of_accounts" invisible="1"/> diff --git a/addons/account_analytic_analysis/i18n/pt.po b/addons/account_analytic_analysis/i18n/pt.po index afdf9c25f17..20c8677e066 100644 --- a/addons/account_analytic_analysis/i18n/pt.po +++ b/addons/account_analytic_analysis/i18n/pt.po @@ -7,25 +7,25 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2010-12-09 09:33+0000\n" -"Last-Translator: OpenERP Administrators <Unknown>\n" +"PO-Revision-Date: 2012-05-31 15:05+0000\n" +"Last-Translator: Marcelo Almeida <Unknown>\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-02-09 06:32+0000\n" -"X-Generator: Launchpad (build 14763)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account_analytic_analysis #: field:account.analytic.account,revenue_per_hour:0 msgid "Revenue per Time (real)" -msgstr "" +msgstr "Receita por hora (real)" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_ca:0 msgid "Computed using the formula: Max Invoice Price - Invoiced Amount." msgstr "" -"Processado com a fórmula: Preço Máximo da Factura - Montante Facturado." +"Calculado utilizando a fórmula: Valor Máximo da Fatura - Valor da Fatura" #. module: account_analytic_analysis #: help:account.analytic.account,last_worked_date:0 @@ -38,11 +38,13 @@ msgid "" "The contracts to be renewed because the deadline is passed or the working " "hours are higher than the allocated hours" msgstr "" +"Os contratos a serem renovados, porque o prazo é passado ou as horas de " +"trabalho são maiores do que as horas atribuídas" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Pending contracts to renew with your customer" -msgstr "" +msgstr "Contratos pendentes de renovação com o seu cliente" #. module: account_analytic_analysis #: help:account.analytic.account,hours_qtt_non_invoiced:0 @@ -50,31 +52,33 @@ msgid "" "Number of time (hours/days) (from journal of type 'general') that can be " "invoiced if you invoice based on analytic account." msgstr "" +"Número de tempo (horas ou dias) (de Diário do tipo 'geral') que podem ser " +"faturados, se fatura com base na conta analítica" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Analytic Accounts with a past deadline in one month." -msgstr "" +msgstr "Contas Analíticas com um prazo limite ultrapassando um mês." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Group By..." -msgstr "" +msgstr "Grupo por..." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "End Date" -msgstr "" +msgstr "Data final" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Create Invoice" -msgstr "" +msgstr "Criar Fatura" #. module: account_analytic_analysis #: field:account.analytic.account,last_invoice_date:0 msgid "Last Invoice Date" -msgstr "Data da última factura" +msgstr "Data da última fatura" #. module: account_analytic_analysis #: help:account.analytic.account,theorical_margin:0 @@ -87,16 +91,18 @@ msgid "" "Number of time you spent on the analytic account (from timesheet). It " "computes quantities on all journal of type 'general'." msgstr "" +"Número de tempo que gastou na conta analítica (da folha de horas). Ele " +"calcula quantidades em todos os Diários do tipo 'geral'." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts in progress" -msgstr "" +msgstr "Contractos em progresso" #. module: account_analytic_analysis #: field:account.analytic.account,is_overdue_quantity:0 msgid "Overdue Quantity" -msgstr "" +msgstr "Quantidade em atraso" #. module: account_analytic_analysis #: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue @@ -108,6 +114,12 @@ msgid "" "pending accounts and reopen or close the according to the negotiation with " "the customer." msgstr "" +"Vai encontrar aqui os contratos a serem renovados, porque o prazo é passado " +"ou as horas de trabalho são maiores do que as horas atribuídas. OpenERP " +"define automaticamente essas contas analíticas para o estado pendente, a fim " +"de emitir um aviso durante a gravação da folha de horas. Vendedores devem " +"rever todas as contas pendentes e reabrir ou fechar o acordo com a " +"negociação com o cliente." #. module: account_analytic_analysis #: field:account.analytic.account,ca_theorical:0 @@ -117,7 +129,7 @@ msgstr "Retorno Teórico" #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_non_invoiced:0 msgid "Uninvoiced Time" -msgstr "" +msgstr "Tempo não faturado" #. module: account_analytic_analysis #: help:account.analytic.account,last_worked_invoiced_date:0 @@ -125,13 +137,13 @@ msgid "" "If invoice from the costs, this is the date of the latest work or cost that " "have been invoiced." msgstr "" -"Se facturado dos custos, esta é a data do último trabalho ou dos custos que " -"foram facturados." +"Se faturado dos custos, esta é a data do último trabalho ou dos custos que " +"foram faturados." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "To Renew" -msgstr "" +msgstr "Para renovar" #. module: account_analytic_analysis #: field:account.analytic.account,last_worked_date:0 @@ -141,24 +153,26 @@ msgstr "Data do Último Custo/Trabalho" #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_invoiced:0 msgid "Invoiced Time" -msgstr "" +msgstr "Tempo faturado" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "" "A contract in OpenERP is an analytic account having a partner set on it." msgstr "" +"Um contrato em OpenERP é um relato analítico a ter num conjunto parceiro " +"sobre ele." #. module: account_analytic_analysis #: field:account.analytic.account,remaining_hours:0 msgid "Remaining Time" -msgstr "" +msgstr "Tempo Restante" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue msgid "Contracts to Renew" -msgstr "" +msgstr "Contratos para renovar" #. module: account_analytic_analysis #: field:account.analytic.account,theorical_margin:0 @@ -168,7 +182,7 @@ msgstr "Margem Teórica" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid " +1 Month" -msgstr "" +msgstr " +1 mês" #. module: account_analytic_analysis #: help:account.analytic.account,ca_theorical:0 @@ -177,29 +191,29 @@ msgid "" "if all these costs have been invoiced at the normal sale price provided by " "the pricelist." msgstr "" -"Baseado nos custos que teve no projecto, qual é que seria o rendimento se " -"todos estes custos fossem facturados ao preço normal da venda fornecidos " -"pela tabela de preço." +"Baseado nos custos que teve no projeto, qual é que seria o rendimento se " +"todos estes custos fossem faturados ao preço normal da venda fornecidos pela " +"tabela de preço." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Pending" -msgstr "" +msgstr "Pendente" #. module: account_analytic_analysis #: field:account.analytic.account,ca_to_invoice:0 msgid "Uninvoiced Amount" -msgstr "Montante não Facturado" +msgstr "Montante não Faturado" #. module: account_analytic_analysis #: help:account.analytic.account,real_margin:0 msgid "Computed using the formula: Invoiced Amount - Total Costs." -msgstr "Processado ao utilizar a fórmula: Montante Facturado - Custo Total." +msgstr "Processado ao utilizar a fórmula: Montante Faturado - Custo Total." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Parent" -msgstr "" +msgstr "Ascendente" #. module: account_analytic_analysis #: field:account.analytic.account,user_ids:0 @@ -221,17 +235,17 @@ msgstr "Resumo de horas por utilizador" #. module: account_analytic_analysis #: field:account.analytic.account,ca_invoiced:0 msgid "Invoiced Amount" -msgstr "Montante Facturado" +msgstr "Montante Faturado" #. module: account_analytic_analysis #: field:account.analytic.account,last_worked_invoiced_date:0 msgid "Date of Last Invoiced Cost" -msgstr "Data do Último Custo Facturado" +msgstr "Data do Último Custo Faturado" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contract" -msgstr "" +msgstr "Contrato" #. module: account_analytic_analysis #: field:account.analytic.account,real_margin_rate:0 @@ -246,7 +260,7 @@ msgstr "Margem Real" #. module: account_analytic_analysis #: help:account.analytic.account,ca_invoiced:0 msgid "Total customer invoiced amount for this account." -msgstr "Montante da facturação total do cliente para esta conta" +msgstr "Montante da faturação total do cliente para esta conta" #. module: account_analytic_analysis #: model:ir.model,name:account_analytic_analysis.model_account_analytic_analysis_summary_month @@ -266,7 +280,7 @@ msgstr "Receita Restante" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_hours:0 msgid "Computed using the formula: Maximum Time - Total Time" -msgstr "" +msgstr "Cálculo utilizando a fórmula: Tempo máximo - Tempo Total" #. module: account_analytic_analysis #: help:account.analytic.account,hours_qtt_invoiced:0 @@ -274,6 +288,8 @@ msgid "" "Number of time (hours/days) that can be invoiced plus those that already " "have been invoiced." msgstr "" +"Número de tempo (horas ou dias) que pode ser faturado mais aqueles que já " +"tenham sido faturados." #. module: account_analytic_analysis #: help:account.analytic.account,ca_to_invoice:0 @@ -281,13 +297,13 @@ msgid "" "If invoice from analytic account, the remaining amount you can invoice to " "the customer based on the total costs." msgstr "" -"Se facturado a partir da conta analítica, o montante restante que pode " -"facturar ao cliente baseado nos custos totais." +"Se faturado a partir da conta analítica, o montante restante que pode " +"faturar ao cliente baseado nos custos totais." #. module: account_analytic_analysis #: help:account.analytic.account,revenue_per_hour:0 msgid "Computed using the formula: Invoiced Amount / Total Time" -msgstr "" +msgstr "Calculado através da fórmula: Valor faturado / Tempo Total" #. module: account_analytic_analysis #: field:account.analytic.account,total_cost:0 @@ -312,38 +328,38 @@ msgstr "Conta Analítica" #: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue_all #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue_all msgid "Contracts" -msgstr "" +msgstr "Contractos" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Manager" -msgstr "" +msgstr "Gestor" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_hr_tree_invoiced_all msgid "All Uninvoiced Entries" -msgstr "Todas os Movimentos não Facturados" +msgstr "Todos os Movimentos não Faturados" #. module: account_analytic_analysis #: help:account.analytic.account,last_invoice_date:0 msgid "If invoice from the costs, this is the date of the latest invoiced." -msgstr "" +msgstr "Se for fatura dos custos, esta é a data da última faturada." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Associated Partner" -msgstr "" +msgstr "Parceiro associado" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Open" -msgstr "" +msgstr "Abrir" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts that are not assigned to an account manager." -msgstr "" +msgstr "Contratos que não são atribuídos a um gestor de conta." #. module: account_analytic_analysis #: field:account.analytic.account,hours_quantity:0 @@ -358,18 +374,12 @@ msgid "" "Total of costs for this account. It includes real costs (from invoices) and " "indirect costs, like time spent on timesheets." msgstr "" -"Total de custos para esta conta. Que inclui custos reais (das facturas) e " +"Total de custos para esta conta. Que inclui custos reais (das faturas) e " "custos indirectos, como o tempo gasto em folha de horas." #~ msgid "Invoicing" #~ msgstr "Facturação" -#~ msgid "" -#~ "Number of hours that can be invoiced plus those that already have been " -#~ "invoiced." -#~ msgstr "" -#~ "Número de horas que podem ser facturadas mais as que já foram facturadas." - #~ msgid "Hours summary by user" #~ msgstr "Resumo de horas por utilizador" @@ -506,6 +516,14 @@ msgstr "" #~ "por utilizador bem como por mês.\n" #~ msgid "" +#~ "Number of hours that can be invoiced plus those that already have been " +#~ "invoiced." +#~ msgstr "" +#~ "Número de horas que podem ser facturadas mais aquelas que já tenham sido " +#~ "facturadas." + +#~ msgid "" #~ "Error! The currency has to be the same as the currency of the selected " #~ "company" -#~ msgstr "Erro! A divisa tem que ser a mesma que a da empresa seleccionada" +#~ msgstr "" +#~ "Erro! A divisa tem que ser a mesma que a divisa da empresa seleccionada" diff --git a/addons/account_analytic_default/account_analytic_default_view.xml b/addons/account_analytic_default/account_analytic_default_view.xml index 8b601022de4..886d4b54c0d 100644 --- a/addons/account_analytic_default/account_analytic_default_view.xml +++ b/addons/account_analytic_default/account_analytic_default_view.xml @@ -6,7 +6,7 @@ <field name="model">account.analytic.default</field> <field name="type">tree</field> <field name="arch" type="xml"> - <tree string="Analytic Defaults" colors="grey:date_stop and (date_stop < datetime.date.today().strftime('%%Y-%%m-%%d'))" > + <tree string="Analytic Defaults"> <field name="sequence"/> <field name="analytic_id" required="0" domain="[('parent_id','!=',False)]" groups="analytic.group_analytic_accounting"/> <field name="product_id"/> diff --git a/addons/account_analytic_default/i18n/ja.po b/addons/account_analytic_default/i18n/ja.po index 7e109b403a7..796cb40e0a6 100644 --- a/addons/account_analytic_default/i18n/ja.po +++ b/addons/account_analytic_default/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-04-16 17:39+0000\n" +"PO-Revision-Date: 2012-06-08 01:35+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-04-17 04:51+0000\n" -"X-Generator: Launchpad (build 15099)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: account_analytic_default #: help:account.analytic.default,partner_id:0 @@ -57,7 +57,7 @@ msgstr "この分析アカウントのデフォルト終了日" #. module: account_analytic_default #: model:ir.model,name:account_analytic_default.model_stock_picking msgid "Picking List" -msgstr "集荷リスト" +msgstr "出庫票" #. module: account_analytic_default #: view:account.analytic.default:0 @@ -128,7 +128,7 @@ msgstr "分析デフォルト" #. module: account_analytic_default #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "参照は会社ごとにユニークでなければいけません。" +msgstr "参照は会社内で固有でなければいけません" #. module: account_analytic_default #: view:account.analytic.default:0 @@ -181,7 +181,7 @@ msgstr "開始日" #: help:account.analytic.default,sequence:0 msgid "" "Gives the sequence order when displaying a list of analytic distribution" -msgstr "分析ディストリビューションのリストを表示する時に、順序の並べ順を与えて下さい。" +msgstr "分析ディストリビューションのリストを表示する時に、順序の並びを与えます。" #. module: account_analytic_default #: model:ir.model,name:account_analytic_default.model_sale_order_line diff --git a/addons/account_anglo_saxon/i18n/ja.po b/addons/account_anglo_saxon/i18n/ja.po index d94e95cbf0b..a2d2eb88dc6 100644 --- a/addons/account_anglo_saxon/i18n/ja.po +++ b/addons/account_anglo_saxon/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-04-28 01:18+0000\n" +"PO-Revision-Date: 2012-05-31 06:16+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-04-29 04:45+0000\n" -"X-Generator: Launchpad (build 15149)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account_anglo_saxon #: sql_constraint:purchase.order:0 @@ -35,7 +35,7 @@ msgstr "製品分類" #. module: account_anglo_saxon #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "参照は会社内ではユニークでなければいけません。" +msgstr "参照は会社ごとにユニークでなければいけません。" #. module: account_anglo_saxon #: constraint:product.category:0 @@ -87,7 +87,7 @@ msgstr "出庫票" #. module: account_anglo_saxon #: sql_constraint:account.invoice:0 msgid "Invoice Number must be unique per Company!" -msgstr "請求書番号は会社ごとにユニークでなければいけません。" +msgstr "請求書番号は会社ごとに固有である必要があります。" #. module: account_anglo_saxon #: help:product.category,property_account_creditor_price_difference_categ:0 diff --git a/addons/account_asset/account_asset_view.xml b/addons/account_asset/account_asset_view.xml index 1affcf7a85c..5e1a5f68d95 100644 --- a/addons/account_asset/account_asset_view.xml +++ b/addons/account_asset/account_asset_view.xml @@ -83,10 +83,7 @@ <button name="validate" states="draft" string="Confirm Asset" type="object"/> <button name="set_to_close" states="open" string="Set to Close" type="object"/> <button name="set_to_draft" states="open" string="Set to Draft" type="object"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/> - </div> - <div class="oe_clear"/> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/> </div> <sheet string="Asset" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> diff --git a/addons/account_asset/i18n/pt.po b/addons/account_asset/i18n/pt.po index aa94b06991b..80869fa03da 100755 --- a/addons/account_asset/i18n/pt.po +++ b/addons/account_asset/i18n/pt.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-12-10 11:58+0000\n" -"Last-Translator: Paulino Ascenção <Unknown>\n" +"PO-Revision-Date: 2012-05-31 15:07+0000\n" +"Last-Translator: ThinkOpen Solutions <Unknown>\n" "Language-Team: Portuguese <pt@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-05-11 05:15+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account_asset #: view:account.asset.asset:0 @@ -439,7 +439,7 @@ msgstr "Método tempo" #. module: account_asset #: view:account.asset.category:0 msgid "Analytic Information" -msgstr "" +msgstr "Informação Analitica" #. module: account_asset #: view:asset.modify:0 @@ -620,7 +620,7 @@ msgstr "Prorata Temporis" #. module: account_asset #: view:account.asset.category:0 msgid "Accounting Information" -msgstr "" +msgstr "Informação contabilística" #. module: account_asset #: model:ir.model,name:account_asset.model_account_invoice diff --git a/addons/account_bank_statement_extensions/i18n/gu.po b/addons/account_bank_statement_extensions/i18n/gu.po index 3e77a3b8a26..a1677df4845 100644 --- a/addons/account_bank_statement_extensions/i18n/gu.po +++ b/addons/account_bank_statement_extensions/i18n/gu.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-04-17 09:03+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2012-06-01 04:42+0000\n" +"Last-Translator: Jalpesh Patel(OpenERP) <pja@tinyerp.com>\n" "Language-Team: Gujarati <gu@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-04-18 04:42+0000\n" -"X-Generator: Launchpad (build 15108)\n" +"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 @@ -42,7 +42,7 @@ msgstr "" #. module: account_bank_statement_extensions #: field:account.bank.statement.line.global,parent_id:0 msgid "Parent Code" -msgstr "પેરેંટ કોડ" +msgstr "પિતૃ સંકેત" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 @@ -64,7 +64,7 @@ msgstr "" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Group By..." -msgstr "ગ્રુપ દ્વારા..." +msgstr "સમૂહ દ્વારા" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,state:0 @@ -80,25 +80,25 @@ msgstr "કાચું" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Statement" -msgstr "વિધાન" +msgstr "નિવેદન" #. module: account_bank_statement_extensions #: view:confirm.statement.line:0 #: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line #: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line msgid "Confirm selected statement lines" -msgstr "" +msgstr "પસંદ કરેલ નિવેદન લીટીઓ ખાતરી કરો" #. module: account_bank_statement_extensions #: report:bank.statement.balance.report:0 #: model:ir.actions.report.xml,name:account_bank_statement_extensions.bank_statement_balance_report msgid "Bank Statement Balances Report" -msgstr "" +msgstr "બેન્ક નિવેદન સિલક અહેવાલ" #. module: account_bank_statement_extensions #: view:cancel.statement.line:0 msgid "Cancel Lines" -msgstr "" +msgstr "લીટીઓ રદ કરો" #. module: account_bank_statement_extensions #: view:account.bank.statement.line.global:0 @@ -109,7 +109,7 @@ msgstr "" #. module: account_bank_statement_extensions #: view:confirm.statement.line:0 msgid "Confirm Lines" -msgstr "" +msgstr "લીટીઓ પુષ્ટિ કરો" #. module: account_bank_statement_extensions #: code:addons/account_bank_statement_extensions/account_bank_statement.py:130 @@ -134,33 +134,33 @@ msgstr "રોજનામું" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Confirmed Statement Lines." -msgstr "" +msgstr "પુષ્ટિ નિવેદન આવેલ લીટીઓ." #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Credit Transactions." -msgstr "" +msgstr "ધિરાણ વ્યવહારો." #. module: account_bank_statement_extensions #: model:ir.actions.act_window,help:account_bank_statement_extensions.action_cancel_statement_line msgid "cancel selected statement lines." -msgstr "" +msgstr "પસંદ કરેલ લીટીઓની નિવેદન રદ કરો." #. module: account_bank_statement_extensions #: field:account.bank.statement.line,counterparty_number:0 msgid "Counterparty Number" -msgstr "" +msgstr "પ્રતિકૂળ સંખ્યા" #. module: account_bank_statement_extensions #: view:account.bank.statement.line.global:0 msgid "Transactions" -msgstr "" +msgstr "વ્યવહારો" #. module: account_bank_statement_extensions #: code:addons/account_bank_statement_extensions/account_bank_statement.py:130 #, python-format msgid "Warning" -msgstr "" +msgstr "ચેતવણી" #. module: account_bank_statement_extensions #: report:bank.statement.balance.report:0 @@ -170,7 +170,7 @@ msgstr "" #. module: account_bank_statement_extensions #: report:bank.statement.balance.report:0 msgid "Date" -msgstr "" +msgstr "તારીખ" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 @@ -181,17 +181,17 @@ msgstr "" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Debit Transactions." -msgstr "" +msgstr "ઉધાર વ્યવહારો." #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Extended Filters..." -msgstr "" +msgstr "વિસ્તૃત ગાળકો ..." #. module: account_bank_statement_extensions #: view:confirm.statement.line:0 msgid "Confirmed lines cannot be changed anymore." -msgstr "" +msgstr "પુષ્ટિ લીટીઓ હવે બદલી શકાતી નથી" #. module: account_bank_statement_extensions #: constraint:res.partner.bank:0 @@ -204,47 +204,47 @@ msgstr "" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,val_date:0 msgid "Valuta Date" -msgstr "" +msgstr "ચલણ તારીખો" #. module: account_bank_statement_extensions #: model:ir.actions.act_window,help:account_bank_statement_extensions.action_confirm_statement_line msgid "Confirm selected statement lines." -msgstr "" +msgstr "પસંદ નિવેદન લીટીઓ ખાતરી કરો." #. module: account_bank_statement_extensions #: view:cancel.statement.line:0 msgid "Are you sure you want to cancel the selected Bank Statement lines ?" -msgstr "" +msgstr "શું તમે ખરેખર પસંદિત બેન્ક નિવેદન લાઇન્સ રદ કરવા માંગો છો?" #. module: account_bank_statement_extensions #: report:bank.statement.balance.report:0 msgid "Name" -msgstr "" +msgstr "નામ" #. module: account_bank_statement_extensions #: selection:account.bank.statement.line.global,type:0 msgid "ISO 20022" -msgstr "" +msgstr "ISO 20022" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Notes" -msgstr "" +msgstr "નોંધ" #. module: account_bank_statement_extensions #: selection:account.bank.statement.line.global,type:0 msgid "Manual" -msgstr "" +msgstr "માર્ગદર્શિકા" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Credit" -msgstr "" +msgstr "જમા" #. module: account_bank_statement_extensions #: field:account.bank.statement.line.global,amount:0 msgid "Amount" -msgstr "" +msgstr "કિંમત" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 @@ -254,7 +254,7 @@ msgstr "" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,counterparty_currency:0 msgid "Counterparty Currency" -msgstr "" +msgstr "પ્રતિકૂળ ચલણ" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,counterparty_bic:0 @@ -269,7 +269,7 @@ msgstr "" #. module: account_bank_statement_extensions #: view:confirm.statement.line:0 msgid "Are you sure you want to confirm the selected Bank Statement lines ?" -msgstr "" +msgstr "શું તમે ખરેખર પસંદિત બેન્ક નિવેદન લાઇન્સ ખાતરી કરવા માંગો છો?" #. module: account_bank_statement_extensions #: constraint:account.bank.statement.line:0 @@ -288,7 +288,7 @@ msgstr "" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Draft Statement Lines." -msgstr "" +msgstr "કાચું નિવેદન લીટીઓ." #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 @@ -298,27 +298,27 @@ msgstr "" #. module: account_bank_statement_extensions #: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line msgid "Bank Statement Line" -msgstr "" +msgstr "બેન્ક વિધાન લીટી" #. module: account_bank_statement_extensions #: field:account.bank.statement.line.global,code:0 msgid "Code" -msgstr "" +msgstr "સંકેત" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,counterparty_name:0 msgid "Counterparty Name" -msgstr "" +msgstr "પ્રતિકૂળ નામ" #. module: account_bank_statement_extensions #: field:account.bank.statement.line.global,name:0 msgid "Communication" -msgstr "" +msgstr "સંચાર" #. module: account_bank_statement_extensions #: model:ir.model,name:account_bank_statement_extensions.model_res_partner_bank msgid "Bank Accounts" -msgstr "" +msgstr "બેંક હિસાબી" #. module: account_bank_statement_extensions #: constraint:account.bank.statement:0 @@ -328,24 +328,24 @@ msgstr "" #. module: account_bank_statement_extensions #: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement msgid "Bank Statement" -msgstr "" +msgstr "બેન્ક સ્ટેટમેન્ટ" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Statement Line" -msgstr "" +msgstr "વિધાન લીટી" #. module: account_bank_statement_extensions #: sql_constraint:account.bank.statement.line.global:0 msgid "The code must be unique !" -msgstr "" +msgstr "કોડ અજોડ હોવું જ જોઈએ!" #. module: account_bank_statement_extensions #: field:account.bank.statement.line.global,bank_statement_line_ids:0 #: model:ir.actions.act_window,name:account_bank_statement_extensions.action_bank_statement_line #: model:ir.ui.menu,name:account_bank_statement_extensions.bank_statement_line msgid "Bank Statement Lines" -msgstr "" +msgstr "બેંક વિધાન લીટીઓ" #. module: account_bank_statement_extensions #: view:account.bank.statement.line.global:0 @@ -356,17 +356,17 @@ msgstr "" #: view:cancel.statement.line:0 #: view:confirm.statement.line:0 msgid "Cancel" -msgstr "" +msgstr "રદ કરો" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Statement Lines" -msgstr "" +msgstr "વિધાન લીટીઓ" #. module: account_bank_statement_extensions #: view:account.bank.statement.line:0 msgid "Total Amount" -msgstr "" +msgstr "કુલ રકમ" #. module: account_bank_statement_extensions #: field:account.bank.statement.line,globalisation_id:0 diff --git a/addons/account_budget/account_budget_view.xml b/addons/account_budget/account_budget_view.xml index 13c97ca32d6..667d35a9d6d 100644 --- a/addons/account_budget/account_budget_view.xml +++ b/addons/account_budget/account_budget_view.xml @@ -105,17 +105,14 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Confirm" name="confirm" states="draft" type="workflow" /> <button string="Approve" name="validate" states="confirm" type="workflow"/> <button string="Done" name="done" states="validate" type="workflow" /> <button name="draft" states="cancel" string="Reset to Draft" type="workflow"/> <button string="Cancel" name="cancel" states="confirm,validate" type="workflow"/> - <div class="oe_right"> - <field name="state" select="1" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" select="1" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> + </header> <sheet string="Budget" layout="auto"> <group class="oe_form_header"> <field name="name" colspan="1" select="1" attrs="{'readonly':[('state','!=','draft')]}"/> diff --git a/addons/account_budget/i18n/ja.po b/addons/account_budget/i18n/ja.po index 8be3f6115c5..40f55c86541 100644 --- a/addons/account_budget/i18n/ja.po +++ b/addons/account_budget/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-04-13 19:58+0000\n" +"PO-Revision-Date: 2012-06-08 01:54+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-04-14 04:57+0000\n" -"X-Generator: Launchpad (build 15070)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: account_budget #: field:crossovered.budget,creating_user_id:0 @@ -128,8 +128,8 @@ msgid "" msgstr "" "予算は将来の期間における、予想される会社の収入と支出です。予算に基づき、会社はその期間の間にどのくらいのお金を得るのかを注意深く見ることができます。そして" "、さまざまな分類に分配する最適な方法を理解することができます。お金がどこに行くのかを追跡し続けることで、お金の使い過ぎの可能性を減らし、財務目標を達成しや" -"すくします。分析的なアカウントごとに期待される収入を詳細化することで予算を予測して下さい。そして、その期間中に実際にそれを実現することを基本にその展開を監" -"視して下さい。" +"すくします。分析的なアカウントごとに期待される収入を詳細化することで予算を予測します。そして、その期間中に実際にそれを実現することを基本にその展開を監視し" +"ます。" #. module: account_budget #: code:addons/account_budget/account_budget.py:119 diff --git a/addons/account_check_writing/i18n/ja.po b/addons/account_check_writing/i18n/ja.po index a9ce55b0cd8..6f65f35354d 100644 --- a/addons/account_check_writing/i18n/ja.po +++ b/addons/account_check_writing/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-05-10 18:14+0000\n" -"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n" +"PO-Revision-Date: 2012-06-01 06:41+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-05-11 05:15+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account_check_writing #: selection:res.company,check_layout:0 @@ -100,7 +100,7 @@ msgstr "小切手の振出" #: report:account.print.check.middle:0 #: report:account.print.check.top:0 msgid "Discount" -msgstr "割引き" +msgstr "割引" #. module: account_check_writing #: report:account.print.check.bottom:0 diff --git a/addons/account_coda/i18n/ja.po b/addons/account_coda/i18n/ja.po index b7d3e1e8cce..dbee8a631ff 100644 --- a/addons/account_coda/i18n/ja.po +++ b/addons/account_coda/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-05-11 23:57+0000\n" +"PO-Revision-Date: 2012-06-08 02:01+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-05-13 04:43+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_09_21 @@ -1150,7 +1150,7 @@ msgid "" "CODA sequence number: %(coda)s\n" "Paper Statement sequence number: %(paper)s" msgstr "" -"CODA処理により生成される銀行取引明細書の名前を作成するためのルールを定義して下さい。\n" +"CODA処理により生成される銀行取引明細書の名前を作成するためのルールを定義します。\n" "例えば、%(code)s%(y)s/%(paper)s\n" "\n" "変数:\n" @@ -1408,7 +1408,7 @@ msgstr "パートナ" #: model:account.coda.trans.code,comment:account_coda.actcc_80_37 msgid "" "Fixed right, either one-off or periodical; for details, see \"categories\"" -msgstr "右固定、1回限りまたは定期的の何れか;詳細については分類参照して下さい。" +msgstr "右固定、1回限りまたは定期的の何れか;詳細については分類を参照して下さい。" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_04_05 @@ -2482,7 +2482,7 @@ msgstr "保険や株式仲介といった専門家のため" #: model:account.coda.trans.code,comment:account_coda.actcc_80_19 msgid "" "Collected for securities, gold, pass-books, etc. placed in safe custody" -msgstr "証券、金、銀行通帳などの収集物を保護預りして下さい。" +msgstr "証券、金、銀行通帳などの収集物は保護預りされました。" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_09_19 @@ -3009,7 +3009,7 @@ msgid "" msgstr "" "\n" " 銀行取引明細書t %s 行 %s:\n" -" 銀行口座 %s は、このパートナに定義されていません %s\n" +" 銀行口座 %s は、このパートナに定義されていません。 %s\n" " 設定を訂正し再度インポートを実行するか、そうでない場合は生成された銀行取引明細書の対応するエントリーを変更して下さい。" #. module: account_coda diff --git a/addons/account_coda/i18n/pt.po b/addons/account_coda/i18n/pt.po index 0d99a5515a6..42facc9739f 100644 --- a/addons/account_coda/i18n/pt.po +++ b/addons/account_coda/i18n/pt.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2010-12-20 19:21+0000\n" -"Last-Translator: Rui Franco (multibase.pt) <Unknown>\n" +"PO-Revision-Date: 2012-05-31 15:12+0000\n" +"Last-Translator: ThinkOpen Solutions <Unknown>\n" "Language-Team: Portuguese <pt@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-05-11 05:09+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_09_21 @@ -1780,6 +1780,8 @@ msgstr "Pagamentos de salários coletivos" #: model:account.coda.trans.code,comment:account_coda.actcc_80_17 msgid "Collected for unsealed deposit of securities, and other parcels" msgstr "" +"Recolhidos para o depósito de valores mobiliários sem lacre, e outras " +"parcelas" #. module: account_coda #: model:account.coda.comm.type,description:account_coda.acct_004 @@ -1853,7 +1855,7 @@ msgstr "Documentário de taxas gerais de crédito" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_80_25 msgid "Renting of direct debit box" -msgstr "" +msgstr "Locação de caixa de débito direto" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_11_52 @@ -1871,6 +1873,9 @@ msgid "" "globalisation of which this record is the first.\n" "The same code will be repeated at the end of the globalisation." msgstr "" +"O valor que é mencionado (1 a 9), especifica o nível de hierarquia da " +"globalização do que este disco é o primeiro.\n" +"O mesmo código será repetido no final da globalização." #. module: account_coda #: field:coda.bank.account,description2:0 @@ -1880,7 +1885,7 @@ msgstr "Descrição da Conta Secundária" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_211 msgid "Credit arrangement fee | Additional credit arrangement fee" -msgstr "" +msgstr "Taxa de arranjo de Crédito | taxa de arranjo de crédito adicional" #. module: account_coda #: view:coda.bank.statement:0 @@ -1925,7 +1930,7 @@ msgstr "" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_035 msgid "Charges foreign documentary bill" -msgstr "" +msgstr "Encargos conta documentário estrangeiro" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_80_39 @@ -2191,6 +2196,8 @@ msgid "" "Credit transfer or cash payment with reconstituted structured format " "communication" msgstr "" +"Transferência de crédito ou pagamento em dinheiro com a comunicação " +"reconstituída do formato estruturado" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_07_86 @@ -2279,7 +2286,7 @@ msgstr "Pesquisar Extratos Bancários CODA" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_410 msgid "Reclamation charges" -msgstr "" +msgstr "Taxas de Contestação" #. module: account_coda #: model:ir.actions.act_window,help:account_coda.action_coda_bank_statements @@ -2347,7 +2354,7 @@ msgstr "Assistente em estado incorreto. Por favor, clique no botão Cancelar!" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_418 msgid "Endorsement commission" -msgstr "" +msgstr "Comissão de Averbamento" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_005 @@ -2381,6 +2388,10 @@ msgid "" "credit transfers with a structured communication As a matter of principle, " "this type will also be used when no detailed data (type 6 or 7) is following." msgstr "" +"Montante foi totalizado pelo banco; por exemplo, : O montante total de uma " +"série de transferências de crédito com uma comunicação estruturada como uma " +"questão de princípio, este tipo também será usado quando nenhum dado " +"detalhado (tipo 6 ou 7) está a seguir." #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_03_37 @@ -2400,7 +2411,7 @@ msgstr "Levantamento de dinheiro pela sua filial ou agentes" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_049 msgid "Fiscal stamps/stamp duty" -msgstr "" +msgstr "Selos fiscais / imposto de selo" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_03_58 @@ -2414,7 +2425,7 @@ msgstr "" #. module: account_coda #: view:account.coda.import:0 msgid "Select Your File :" -msgstr "" +msgstr "Selecione o seu ficheiro:" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_80_06 @@ -2485,7 +2496,7 @@ msgstr "Pesquisar ficheiros CODA" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_07_52 msgid "Remittance of commercial paper - credit under usual reserve" -msgstr "" +msgstr "Remessa de papel comercial - crédito sob reserva habitual" #. module: account_coda #: help:coda.bank.account,active:0 @@ -2499,7 +2510,7 @@ msgstr "" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_07_54 msgid "Among other things advances or promissory notes" -msgstr "" +msgstr "Entre outras coisas avanços ou notas promissórias" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_80_10 @@ -2543,7 +2554,7 @@ msgstr "Para os profissionais, tais como seguros e corretores" #: model:account.coda.trans.code,comment:account_coda.actcc_80_19 msgid "" "Collected for securities, gold, pass-books, etc. placed in safe custody" -msgstr "" +msgstr "Títulos Coletados, ouro, passa-livros, etc. colocados sob custódia" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_09_19 @@ -2551,6 +2562,8 @@ msgid "" "Used in case of payments accepted under reserve of count, result of " "overcrediting" msgstr "" +"Usado no caso de pagamentos aceites com reserva de contagem, resultado sobre " +"crédito" #. module: account_coda #: code:addons/account_coda/wizard/account_coda_import.py:630 @@ -2597,7 +2610,7 @@ msgstr "Comissão para as despesas de manutenção" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_11_03 msgid "Subscription to securities" -msgstr "" +msgstr "Subscrição de valores" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_425 @@ -2659,6 +2672,7 @@ msgstr "Bonificação de juros" #: model:account.coda.trans.code,description:account_coda.actcf_41 msgid "International credit transfers - non-SEPA credit transfers" msgstr "" +"Transferências internacionais de crédito - transferências de crédito não SEPA" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_03_87 @@ -2856,6 +2870,7 @@ msgstr "" #: model:account.coda.trans.code,description:account_coda.actcf_35 msgid "Closing (periodical settlements for interest, costs,…)" msgstr "" +"Encerramento (estabelecimentos periódicos relativos aos juros, custos, ...)" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_04_51 @@ -3057,6 +3072,8 @@ msgid "" "Costs charged for calculating the amount of the tax to be paid (e.g. " "Fiscomat)." msgstr "" +"Custos cobrados para o cálculo do montante do imposto a ser pago (Fiscomat " +"por exemplo)." #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_014 @@ -3181,7 +3198,7 @@ msgstr "Subsídio" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_04_06 msgid "Payment with tank card" -msgstr "" +msgstr "Pagamento com cartão de depósito" #. module: account_coda #: model:account.coda.comm.type,description:account_coda.acct_107 @@ -3496,13 +3513,14 @@ msgstr "Licitações" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_43_07 msgid "Unpaid foreign cheque" -msgstr "" +msgstr "Cheque estrangeiro Não remunerado" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_11_03 msgid "" "Bonds, shares, tap issues of CDs, with or without payment of interest, etc." msgstr "" +"Obrigações, ações, questões de CDs, com ou sem pagamento de juros, etc" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_09_66 @@ -3512,7 +3530,7 @@ msgstr "Resgate de cupões de gasolina" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_058 msgid "Capital premium" -msgstr "" +msgstr "Prémio Capital" #. module: account_coda #: model:account.coda.trans.code,description:account_coda.actcc_11_15 @@ -3528,7 +3546,7 @@ msgstr "Moeda da contraparte" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_202 msgid "Advising commission | Additional advising commission" -msgstr "" +msgstr "Comissões da Assessoria | comissão adicional aconselhada" #. module: account_coda #: field:coda.bank.account,find_partner:0 @@ -3736,6 +3754,8 @@ msgstr "Pagamento do cheque" #: model:account.coda.trans.code,comment:account_coda.actcc_43_07 msgid "Foreign cheque remitted for collection that returns unpaid" msgstr "" +"Cheques estrangeiros remetidos para a recolha que retorna como não " +"remunerados" #. module: account_coda #: model:account.coda.trans.code,comment:account_coda.actcc_80_07 @@ -3982,7 +4002,7 @@ msgstr "Custos de ATM no estrangeiro" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_018 msgid "Tental guarantee charges" -msgstr "" +msgstr "Tental taxas de garantia" #. module: account_coda #: model:account.coda.trans.category,description:account_coda.actrca_430 diff --git a/addons/account_followup/i18n/ja.po b/addons/account_followup/i18n/ja.po index 8722992cc42..2e1d826520f 100644 --- a/addons/account_followup/i18n/ja.po +++ b/addons/account_followup/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-05-12 05:34+0000\n" +"PO-Revision-Date: 2012-06-08 02:05+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-05-13 04:43+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:39+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: account_followup #: view:account_followup.followup:0 @@ -243,7 +243,7 @@ msgstr "参照" #. module: account_followup #: help:account_followup.followup.line,sequence:0 msgid "Gives the sequence order when displaying a list of follow-up lines." -msgstr "フォローアップ行のリスト表示の際の並び順を与えて下さい。" +msgstr "フォローアップ行のリスト表示の際の並び順を与えます。" #. module: account_followup #: view:account.followup.print.all:0 @@ -346,7 +346,7 @@ msgstr "" msgid "" "Your description is invalid, use the right legend or %% if you want to use " "the percent character." -msgstr "記述が無効です。正しい凡例またはパーセンテージ文字を使う場合は%%を使ってください。" +msgstr "記述が無効です。正しい凡例またはパーセンテージ文字を使う場合は%%を使って下さい。" #. module: account_followup #: constraint:account.move.line:0 diff --git a/addons/account_followup/report/account_followup_report.xml b/addons/account_followup/report/account_followup_report.xml index 6568af1c441..5ba0e147bf8 100644 --- a/addons/account_followup/report/account_followup_report.xml +++ b/addons/account_followup/report/account_followup_report.xml @@ -18,8 +18,7 @@ <field name="balance" sum="Balance"/> <field name="company_id" groups="base.group_multi_company"/> <field name="blocked" invisible="1" /> - <field name="period_id" invisible="1" /> - + <field name="period_id" invisible="1" /> </tree> </field> </record> diff --git a/addons/account_payment/account_payment_view.xml b/addons/account_payment/account_payment_view.xml index 032ef38411a..892c8636caf 100644 --- a/addons/account_payment/account_payment_view.xml +++ b/addons/account_payment/account_payment_view.xml @@ -101,16 +101,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="open" states="draft" string="Confirm Payments" /> <button name="set_done" states="open" string="Make Payments" type="object"/> <button name="set_to_draft" states="cancel" string="Set to draft" type="object"/> <button name="cancel" states="draft,open" string="Cancel"/> - <div class="oe_right"> - <field name="state" select="1" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" select="1" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/> + </header> <sheet string="Payment order" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="reference"/> @@ -193,9 +190,6 @@ <field name="date_done"/> <field name="total"/> <field name="state"/> - <button name="cancel" states="draft,open" string="Cancel" icon="gtk-cancel"/> - <button name="open" states="draft" string="Confirm Payments" icon="gtk-apply"/> - <button name="set_done" states="open" string="Make Payments" type ="object" icon="gtk-execute"/> </tree> </field> </record> diff --git a/addons/account_payment/i18n/ja.po b/addons/account_payment/i18n/ja.po index cb518cdcfea..b88a189eeeb 100644 --- a/addons/account_payment/i18n/ja.po +++ b/addons/account_payment/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-05-15 06:19+0000\n" +"PO-Revision-Date: 2012-06-08 02:11+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-05-16 04:50+0000\n" -"X-Generator: Launchpad (build 15247)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: account_payment #: field:payment.order,date_scheduled:0 @@ -260,7 +260,7 @@ msgid "" "by you.'Directly' stands for the direct execution.'Due date' stands for the " "scheduled date of execution." msgstr "" -"支払オーダーのオプションを選択して下さい:固定は指定した日付を意味します。直接は直ちに実行を意味します。期日は実行のスケジュールされた日付を意味します。" +"支払オーダーのオプション選択:固定は指定した日付を意味します。直接は直ちに実行を意味します。期日は実行のスケジュールされた日付を意味します。" #. module: account_payment #: code:addons/account_payment/account_move_line.py:110 diff --git a/addons/account_sequence/i18n/sv.po b/addons/account_sequence/i18n/sv.po new file mode 100644 index 00000000000..cc0491fca54 --- /dev/null +++ b/addons/account_sequence/i18n/sv.po @@ -0,0 +1,220 @@ +# 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:35+0000\n" +"PO-Revision-Date: 2012-06-04 17:24+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-05 04:54+0000\n" +"X-Generator: Launchpad (build 15353)\n" + +#. module: account_sequence +#: view:account.sequence.installer:0 +#: model:ir.actions.act_window,name:account_sequence.action_account_seq_installer +msgid "Account Sequence Application Configuration" +msgstr "" + +#. module: account_sequence +#: constraint:account.move:0 +msgid "" +"You can not create more than one move per period on centralized journal" +msgstr "" + +#. module: account_sequence +#: constraint:account.move.line:0 +msgid "Company must be the same for its related account and period." +msgstr "Bolaget måste överenstämma för alla konton och perioder." + +#. module: account_sequence +#: help:account.move,internal_sequence_number:0 +#: help:account.move.line,internal_sequence_number:0 +msgid "Internal Sequence Number" +msgstr "" + +#. module: account_sequence +#: help:account.sequence.installer,number_next:0 +msgid "Next number of this sequence" +msgstr "Nästa nummer i sekvensen" + +#. module: account_sequence +#: field:account.sequence.installer,number_next:0 +msgid "Next Number" +msgstr "Nästa nummer" + +#. module: account_sequence +#: field:account.sequence.installer,number_increment:0 +msgid "Increment Number" +msgstr "Räkna upp nummer" + +#. module: account_sequence +#: help:account.sequence.installer,number_increment:0 +msgid "The next number of the sequence will be incremented by this number" +msgstr "Nästa nummer i sekvensen kommer att beräknas utgående från detta" + +#. module: account_sequence +#: view:account.sequence.installer:0 +msgid "Configure Your Account Sequence Application" +msgstr "" + +#. module: account_sequence +#: view:account.sequence.installer:0 +msgid "Configure" +msgstr "Inställningar" + +#. module: account_sequence +#: help:account.sequence.installer,suffix:0 +msgid "Suffix value of the record for the sequence" +msgstr "Suffixvärde för löpnumret" + +#. module: account_sequence +#: field:account.sequence.installer,company_id:0 +msgid "Company" +msgstr "Bolag" + +#. module: account_sequence +#: help:account.journal,internal_sequence_id:0 +msgid "" +"This sequence will be used to maintain the internal number for the journal " +"entries related to this journal." +msgstr "" + +#. module: account_sequence +#: field:account.sequence.installer,padding:0 +msgid "Number padding" +msgstr "Numerisk utfyllnad" + +#. module: account_sequence +#: model:ir.model,name:account_sequence.model_account_move_line +msgid "Journal Items" +msgstr "Transaktioner" + +#. module: account_sequence +#: field:account.move,internal_sequence_number:0 +#: field:account.move.line,internal_sequence_number:0 +msgid "Internal Number" +msgstr "" + +#. module: account_sequence +#: constraint:account.move.line:0 +msgid "You can not create journal items on an account of type view." +msgstr "Du kan inte skapa transaktioner på rubrikkonton." + +#. module: account_sequence +#: help:account.sequence.installer,padding:0 +msgid "" +"OpenERP will automatically adds some '0' on the left of the 'Next Number' to " +"get the required padding size." +msgstr "" +"OpenERP lägger automatiskt till några '0' till vänster på 'Nästa nummer' för " +"att få rätt storlek." + +#. module: account_sequence +#: field:account.sequence.installer,name:0 +msgid "Name" +msgstr "Namn" + +#. module: account_sequence +#: constraint:account.move.line:0 +msgid "You can not create journal items on closed account." +msgstr "Du kan inte skapa transaktioner på ett stängt konto." + +#. module: account_sequence +#: constraint:account.journal:0 +msgid "" +"Configuration error! The currency chosen should be shared by the default " +"accounts too." +msgstr "" +"Konfigurationsfel! Vald valuta bör delas mellan standard-konton också." + +#. module: account_sequence +#: sql_constraint:account.move.line:0 +msgid "Wrong credit or debit value in accounting entry !" +msgstr "Fel kredit- eller debetvärde i bokföringstransaktionerna." + +#. module: account_sequence +#: field:account.journal,internal_sequence_id:0 +msgid "Internal Sequence" +msgstr "" + +#. module: account_sequence +#: help:account.sequence.installer,prefix:0 +msgid "Prefix value of the record for the sequence" +msgstr "Prefix för löpnumret" + +#. module: account_sequence +#: model:ir.model,name:account_sequence.model_account_move +msgid "Account Entry" +msgstr "Kontotransaktion" + +#. module: account_sequence +#: field:account.sequence.installer,suffix:0 +msgid "Suffix" +msgstr "Suffix" + +#. module: account_sequence +#: field:account.sequence.installer,config_logo:0 +msgid "Image" +msgstr "Bild" + +#. module: account_sequence +#: view:account.sequence.installer:0 +msgid "title" +msgstr "titel" + +#. module: account_sequence +#: sql_constraint:account.journal:0 +msgid "The name of the journal must be unique per company !" +msgstr "Journalnamnet måste vara unikt per företag!" + +#. module: account_sequence +#: constraint:account.move.line:0 +msgid "" +"The selected account of your Journal Entry forces to provide a secondary " +"currency. You should remove the secondary currency on the account or select " +"a multi-currency view on the journal." +msgstr "" +"Valt konto på verifikatet tvingar fram en sekundär valuta. Du kan ta bort " +"den sekundära valutan på kontot eller välja en flervalutavy för journalen." + +#. module: account_sequence +#: constraint:account.move.line:0 +msgid "" +"The date of your Journal Entry is not in the defined period! You should " +"change the date or remove this constraint from the journal." +msgstr "" +"Verifikatsdatumet är inte inom den definierade perioden! Du bör ändra datum " +"eller ta bort denna begränsning från journalen." + +#. module: account_sequence +#: field:account.sequence.installer,prefix:0 +msgid "Prefix" +msgstr "Prefix" + +#. module: account_sequence +#: sql_constraint:account.journal:0 +msgid "The code of the journal must be unique per company !" +msgstr "Journalkoden måste vara unik per företag!" + +#. module: account_sequence +#: model:ir.model,name:account_sequence.model_account_sequence_installer +msgid "account.sequence.installer" +msgstr "" + +#. module: account_sequence +#: model:ir.model,name:account_sequence.model_account_journal +msgid "Journal" +msgstr "Journal" + +#. module: account_sequence +#: view:account.sequence.installer:0 +msgid "You can enhance the Account Sequence Application by installing ." +msgstr "" diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index f2cffdf27cd..9ca30aed099 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -780,7 +780,7 @@ class account_voucher(osv.osv): def proforma_voucher(self, cr, uid, ids, context=None): self.action_move_line_create(cr, uid, ids, context=context) - return True + return {'type': 'ir.actions.act_window_close'} def action_cancel_draft(self, cr, uid, ids, context=None): wf_service = netsvc.LocalService("workflow") diff --git a/addons/account_voucher/account_voucher_pay_invoice.xml b/addons/account_voucher/account_voucher_pay_invoice.xml index 345241cb4ee..da669ad04ee 100644 --- a/addons/account_voucher/account_voucher_pay_invoice.xml +++ b/addons/account_voucher/account_voucher_pay_invoice.xml @@ -8,7 +8,7 @@ <field name="inherit_id" ref="account.invoice_form"/> <field name="arch" type="xml"> <button name="invoice_open" position="after"> - <button name="invoice_pay_customer" type="object" string="Payment" states="open" icon="gtk-go-forward"/> + <button name="invoice_pay_customer" type="object" string="Register Payment" states="open" icon="gtk-go-forward"/> </button> </field> </record> @@ -19,7 +19,7 @@ <field name="inherit_id" ref="account.invoice_supplier_form"/> <field name="arch" type="xml"> <button name="invoice_open" position="after"> - <button name="invoice_pay_customer" type="object" string="Pay Invoice" states="open" icon="gtk-go-forward"/> + <button name="invoice_pay_customer" type="object" string="Pay" states="open" icon="gtk-go-forward"/> </button> </field> </record> diff --git a/addons/account_voucher/account_voucher_view.xml b/addons/account_voucher/account_voucher_view.xml index 349d4e70ed7..fe282138a72 100644 --- a/addons/account_voucher/account_voucher_view.xml +++ b/addons/account_voucher/account_voucher_view.xml @@ -17,7 +17,6 @@ <field name="amount" sum="Total Amount"/> <field name="audit"/> <field name="state"/> - <button name="proforma_voucher" string="Post" states="draft" icon="terp-document-new"/> </tree> </field> </record> @@ -41,16 +40,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="proforma_voucher" string="Post" states="draft"/> - <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to unreconcile this record ?"/> + <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to unreconcile this record?"/> <button name="cancel_voucher" string="Cancel" states="draft,proforma" /> <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> + </header> <sheet string="Accounting Voucher" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="partner_id" required="1" on_change="onchange_journal_voucher(line_ids, tax_id, amount, partner_id, journal_id, type)"/> diff --git a/addons/account_voucher/invoice.py b/addons/account_voucher/invoice.py index b108bc14fe3..006a622e25f 100644 --- a/addons/account_voucher/invoice.py +++ b/addons/account_voucher/invoice.py @@ -36,7 +36,7 @@ class invoice(osv.osv): 'res_model': 'account.voucher', 'type': 'ir.actions.act_window', 'nodestroy': True, - 'target': 'current', + 'target': 'new', 'domain': '[]', 'context': { 'default_partner_id': inv.partner_id.id, diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml index 5ceee46b2cd..214424bb161 100644 --- a/addons/account_voucher/voucher_payment_receipt_view.xml +++ b/addons/account_voucher/voucher_payment_receipt_view.xml @@ -144,16 +144,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)"/> <button name="cancel_voucher" string="Cancel" states="draft,proforma" invisible="context.get('line_type', False)"/> <button name="cancel_voucher" string="Unreconcile" type="object" states="posted" invisible="context.get('line_type', False)" confirm="Are you sure to unreconcile and cancel this record ?"/> <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" invisible="context.get('line_type', False)"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> + </header> <sheet string="Bill Payment" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="partner_id" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" context="{'invoice_currency':currency_id, 'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}" string="Supplier"/> @@ -165,8 +162,8 @@ on_change="onchange_journal(journal_id, line_dr_ids, False, partner_id, date, amount, type, company_id, context)" string="Payment Method"/> <field name="date" select="1" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/> - <field name="reference" select="1" invisible="context.get('line_type', False)" string="Payment Ref"/> - <field name="name" colspan="2" invisible="context.get('line_type', False)"/> + <field name="reference" select="1" invisible="context.get('line_type', False)" string="Payment Ref" placeholder="003/10"/> + <field name="name" colspan="2" invisible="context.get('line_type', False)" placeholder="Invoice SAJ/0042"/> <field name="company_id" widget="selection" groups="base.group_multi_company"/> <field name="account_id" widget="selection" @@ -298,16 +295,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)"/> <button name="cancel_voucher" string="Cancel" states="draft,proforma" invisible="context.get('line_type', False)"/> <button name="cancel_voucher" string="Unreconcile" type="object" states="posted" invisible="context.get('line_type', False)" confirm="Are you sure to unreconcile and cancel this record ?"/> <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" invisible="context.get('line_type', False)"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> + </header> <sheet string="Customer Payment" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="partner_id" domain="[('customer','=',True)]" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/> @@ -323,8 +317,8 @@ on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, company_id, context)" string="Payment Method"/> <field name="date" select="1" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/> - <field name="reference" select="1" invisible="context.get('line_type', False)" string="Payment Ref"/> - <field name="name" colspan="2" invisible="context.get('line_type', False)"/> + <field name="reference" select="1" invisible="context.get('line_type', False)" string="Payment Ref" placeholder="003/10"/> + <field name="name" colspan="2" invisible="context.get('line_type', False)" placeholder="Invoice SAJ/0042"/> <field name="company_id" widget="selection" groups="base.group_multi_company"/> <field name="account_id" widget="selection" @@ -340,13 +334,13 @@ on_change="onchange_move_line_id(move_line_id)" domain="[('account_id.type','in',('receivable','payable')), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]" required="1" - /> + groups="account.group_account_user"/> <field name="account_id" groups="base.group_no_one" domain="[('type','=','receivable')]"/> <field name="date_original" readonly="1"/> <field name="date_due" readonly="1"/> <field name="amount_original" readonly="1"/> - <field name="amount_unreconciled" readonly="1"/> - <field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)"/> + <field name="amount_unreconciled" readonly="1" groups="account.group_account_user"/> + <field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)" groups="account.group_account_user"/> <field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)" string="Allocation"/> </tree> </field> diff --git a/addons/account_voucher/voucher_sales_purchase_view.xml b/addons/account_voucher/voucher_sales_purchase_view.xml index b3ba7c99cab..5134c55c2a8 100644 --- a/addons/account_voucher/voucher_sales_purchase_view.xml +++ b/addons/account_voucher/voucher_sales_purchase_view.xml @@ -81,17 +81,14 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="proforma_voucher" string="Validate" states="draft"/> <button name="%(act_pay_voucher)d" context="{'narration':narration, 'title':'Customer Payment', 'type':'receipt', 'partner_id':partner_id, 'reference':reference, 'amount':amount}" type="action" string="Pay" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}"/> <button name="cancel_voucher" string="Cancel" states="draft,proforma" /> <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to confirm this record ?"/> <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> + </header> <sheet string="Sales Receipt" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="partner_id" domain="[('customer','=',True)]" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/> @@ -210,17 +207,14 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="proforma_voucher" string="Validate" states="draft"/> <button name="%(act_pay_bills)d" context="{'narration':narration, 'title':'Bill Payment', 'type':'payment', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay Bill" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}"/> <button name="cancel_voucher" string="Cancel" states="draft,proforma" /> <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to confirm this record ?"/> <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/> + </header> <sheet string="Supplier Voucher" layout="auto"> <field name="pay_now" invisible="1"/> <group col="6" colspan="4" class="oe_form_header"> diff --git a/addons/analytic_journal_billing_rate/i18n/lv.po b/addons/analytic_journal_billing_rate/i18n/lv.po new file mode 100644 index 00000000000..01b645557dd --- /dev/null +++ b/addons/analytic_journal_billing_rate/i18n/lv.po @@ -0,0 +1,79 @@ +# Latvian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:35+0000\n" +"PO-Revision-Date: 2012-05-28 13:45+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Latvian <lv@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-29 04:46+0000\n" +"X-Generator: Launchpad (build 15316)\n" + +#. module: analytic_journal_billing_rate +#: sql_constraint:account.invoice:0 +msgid "Invoice Number must be unique per Company!" +msgstr "" + +#. module: analytic_journal_billing_rate +#: field:analytic_journal_rate_grid,journal_id:0 +msgid "Analytic Journal" +msgstr "" + +#. module: analytic_journal_billing_rate +#: constraint:account.invoice:0 +msgid "Invalid BBA Structured Communication !" +msgstr "" + +#. module: analytic_journal_billing_rate +#: view:analytic_journal_rate_grid:0 +msgid "Billing Rate per Journal for this Analytic Account" +msgstr "" + +#. module: analytic_journal_billing_rate +#: field:analytic_journal_rate_grid,account_id:0 +#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account +msgid "Analytic Account" +msgstr "" + +#. module: analytic_journal_billing_rate +#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid +msgid "Relation table between journals and billing rates" +msgstr "" + +#. module: analytic_journal_billing_rate +#: field:account.analytic.account,journal_rate_ids:0 +msgid "Invoicing Rate per Journal" +msgstr "" + +#. module: analytic_journal_billing_rate +#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: analytic_journal_billing_rate +#: constraint:hr.analytic.timesheet:0 +msgid "You cannot modify an entry in a Confirmed/Done timesheet !." +msgstr "" + +#. module: analytic_journal_billing_rate +#: field:analytic_journal_rate_grid,rate_id:0 +msgid "Invoicing Rate" +msgstr "" + +#. module: analytic_journal_billing_rate +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "" + +#. module: analytic_journal_billing_rate +#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet +msgid "Timesheet Line" +msgstr "" diff --git a/addons/auction/i18n/ja.po b/addons/auction/i18n/ja.po new file mode 100644 index 00000000000..554b55ae003 --- /dev/null +++ b/addons/auction/i18n/ja.po @@ -0,0 +1,2365 @@ +# Japanese translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-08 02:16+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-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" + +#. module: auction +#: model:ir.ui.menu,name:auction.auction_report_menu +msgid "Reporting" +msgstr "レポート" + +#. module: auction +#: model:ir.model,name:auction.model_auction_taken +msgid "Auction taken" +msgstr "オークション実施" + +#. module: auction +#: view:auction.lots:0 +msgid "Set to draft" +msgstr "ドラフトに設定" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,partner_id:0 +#: field:auction.lots,seller_id:0 +#: view:report.auction:0 +#: field:report.auction,seller:0 +msgid "Seller" +msgstr "出品者" + +#. module: auction +#: field:auction.lots,name:0 +msgid "Title" +msgstr "タイトル" + +#. module: auction +#: field:auction.lots.sms.send,text:0 +msgid "SMS Message" +msgstr "SMSメッセージ" + +#. module: auction +#: view:auction.catalog.flagey:0 +#: view:auction.lots.auction.move:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid " " +msgstr " " + +#. module: auction +#: view:auction.lots.auction.move:0 +msgid "Warning, Erase The Object Adjudication Price and Its Buyer!" +msgstr "警告。オークションの落札価格オブジェクトと買い手を削除します。" + +#. module: auction +#: help:auction.pay.buy,statement_id1:0 +msgid "First Bank Statement For Buyer" +msgstr "買い手の第1の銀行取引明細書" + +#. module: auction +#: field:auction.bid_line,lot_id:0 +#: field:auction.lot.history,lot_id:0 +msgid "Object" +msgstr "オブジェクト" + +#. module: auction +#: field:report.auction.object.date,obj_num:0 +msgid "# of Objects" +msgstr "オブジェクトの数" + +#. module: auction +#: view:auction.lots:0 +msgid "Authors" +msgstr "著者" + +#. module: auction +#: view:auction.bid:0 +#: report:auction.bids:0 +#: view:auction.lots:0 +#: field:auction.lots,ach_uid:0 +#: field:auction.lots.buyer_map,ach_uid:0 +#: field:auction.lots.make.invoice.buyer,buyer_id:0 +#: field:auction.pay.buy,buyer_id:0 +#: report:buyer.list:0 +#: view:report.auction:0 +#: field:report.auction,buyer:0 +#: report:report.auction.buyer.result:0 +msgid "Buyer" +msgstr "買い手" + +#. module: auction +#: field:report.auction,object:0 +msgid "No of objects" +msgstr "オブジェクトの数" + +#. module: auction +#: help:auction.lots,paid_vnd:0 +msgid "" +"When state of Seller Invoice is 'Paid', this field is selected as True." +msgstr "出品者の請求書が支払済の場合、この項目はTrueとして選択されます。" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of paid items (based on invoices):" +msgstr "支払済項目の数(請求書に基づく):" + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Border" +msgstr "預け金境界" + +#. module: auction +#: field:auction.lots.make.invoice,amount:0 +#: field:auction.lots.make.invoice.buyer,amount:0 +msgid "Invoiced Amount" +msgstr "請求金額" + +#. module: auction +#: help:auction.lots,name:0 +msgid "Auction object name" +msgstr "オークションオブジェクト名" + +#. module: auction +#: model:ir.model,name:auction.model_aie_category +msgid "aie.category" +msgstr "" + +#. module: auction +#: field:auction.deposit.cost,amount:0 +#: field:auction.pay.buy,amount:0 +#: field:auction.pay.buy,amount2:0 +#: field:auction.pay.buy,amount3:0 +msgid "Amount" +msgstr "金額" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_deposit_border +#: model:ir.ui.menu,name:auction.menu_auction_deposit_border +msgid "Deposit border" +msgstr "預け金境界" + +#. module: auction +#: view:auction.deposit:0 +msgid "Reference" +msgstr "参照" + +#. module: auction +#: help:auction.dates,state:0 +msgid "" +"When auction starts the state is 'Draft'.\n" +" At the end of auction, the state becomes 'Closed'." +msgstr "" +"オークションが開始される時に状態はドラフトとなります。\n" +"オークションが終了すると状態は閉鎖済となります。" + +#. module: auction +#: field:auction.dates,account_analytic_id:0 +msgid "Analytic Account" +msgstr "分析アカウント" + +#. module: auction +#: help:auction.pay.buy,amount3:0 +msgid "Amount For Third Bank Statement" +msgstr "第3の銀行取引明細書金額" + +#. module: auction +#: view:auction.lots:0 +msgid "Buy object" +msgstr "オブジェクトの購入" + +#. module: auction +#: field:auction.lots,lot_num:0 +msgid "List Number" +msgstr "リスト番号" + +#. module: auction +#: report:buyer.list:0 +msgid "Date:" +msgstr "日付:" + +#. module: auction +#: field:auction.deposit.cost,name:0 +msgid "Cost Name" +msgstr "経費の名前" + +#. module: auction +#: view:auction.dates:0 +#: field:auction.dates,state:0 +#: view:auction.lots:0 +#: field:auction.lots,state:0 +#: view:report.auction:0 +#: field:report.auction,state:0 +msgid "State" +msgstr "状態" + +#. module: auction +#: view:auction.dates:0 +msgid "First Auction Date" +msgstr "最初のオークション日" + +#. module: auction +#: selection:report.auction,month:0 +msgid "January" +msgstr "1月" + +#. module: auction +#: help:auction.lot.category,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the auction " +"lot category without removing it." +msgstr "アクティブな項目をFalseに設定すると、項目を削除することなくオークションの出品物分類を非表示にできます。" + +#. module: auction +#: view:auction.lots:0 +msgid "Ref" +msgstr "参照" + +#. module: auction +#: field:report.auction,total_price:0 +msgid "Total Price" +msgstr "合計価格" + +#. module: auction +#: view:auction.lots:0 +msgid "Total Adj." +msgstr "合計落札" + +#. module: auction +#: view:auction.lots.sms.send:0 +msgid "SMS - Gateway: clickatell','Bulk SMS Send" +msgstr "SMS - ゲートウェイ:clickatellによる大量のSMS送信" + +#. module: auction +#: help:auction.lots,costs:0 +msgid "Deposit cost" +msgstr "預け金の経費" + +#. module: auction +#: selection:auction.lots,state:0 +#: selection:report.auction,state:0 +#: selection:report.object.encoded,state:0 +msgid "Unsold" +msgstr "売れず" + +#. module: auction +#: view:auction.deposit:0 +msgid "Search Auction deposit" +msgstr "オークション預け金の検索" + +#. module: auction +#: help:auction.lots,lot_num:0 +msgid "List number in depositer inventory" +msgstr "預け入れ人目録のリスト番号" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Items" +msgstr "項目" + +#. module: auction +#: model:account.tax,name:auction.auction_tax5 +#: field:auction.dates,seller_costs:0 +msgid "Seller Costs" +msgstr "出品者の経費" + +#. module: auction +#: view:auction.bid:0 +#: view:auction.bid_line:0 +#: view:auction.lots:0 +#: field:auction.lots,bid_lines:0 +#: model:ir.actions.report.xml,name:auction.bid_auction +#: model:ir.ui.menu,name:auction.menu_action_bid_open +msgid "Bids" +msgstr "入札" + +#. module: auction +#: field:report.auction,gross_revenue:0 +msgid "Gross Revenue" +msgstr "総額収入" + +#. module: auction +#: view:auction.lots.buyer_map:0 +msgid "Buyer Map" +msgstr "買い手マップ" + +#. module: auction +#: field:report.object.encoded,obj_ret:0 +msgid "# obj ret" +msgstr "オブジェクト番号" + +#. module: auction +#: model:ir.model,name:auction.model_auction_bid +msgid "Bid Auctions" +msgstr "入札オークション" + +#. module: auction +#: help:auction.lots,image:0 +msgid "Object Image" +msgstr "オブジェクト画像" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_buyer_map.py:70 +#, python-format +msgid "No buyer is set for this lot." +msgstr "この出品物には買い手がセットされていません。" + +#. module: auction +#: code:addons/auction/auction.py:578 +#, python-format +msgid "The Buyer \"%s\" has no Invoice Address." +msgstr "買い手 %s は請求書の住所がありません。" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_object_categories +msgid "Auction object Categories" +msgstr "オークションオブジェクトの分類" + +#. module: auction +#: model:ir.model,name:auction.model_auction_deposit_cost +msgid "Auction Deposit Cost" +msgstr "オークション預け金の経費" + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Border Form" +msgstr "預け金境界フォーム" + +#. module: auction +#: help:auction.lots,statement_id:0 +msgid "Bank statement line for given buyer" +msgstr "所定の買い手のための銀行取引明細書行" + +#. module: auction +#: field:auction.lot.category,aie_categ:0 +msgid "Category" +msgstr "分類" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_view_auction_buyer_map +msgid "Map buyer username to Partners" +msgstr "パートナへの買い手ユーザ名のマップ" + +#. module: auction +#: view:auction.lots:0 +msgid "Search Auction Lots" +msgstr "オークション出品物の検索" + +#. module: auction +#: field:report.auction,net_revenue:0 +msgid "Net Revenue" +msgstr "純収入" + +#. module: auction +#: field:report.auction.adjudication,state:0 +#: field:report.object.encoded,state:0 +msgid "Status" +msgstr "状態" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_lots_sms_send +msgid "SMS Send" +msgstr "SMS送信" + +#. module: auction +#: selection:report.auction,month:0 +msgid "August" +msgstr "8月" + +#. module: auction +#: view:auction.lots:0 +#: selection:auction.lots,state:0 +#: view:report.auction:0 +#: selection:report.auction,state:0 +msgid "Sold" +msgstr "売却済" + +#. module: auction +#: selection:report.auction,month:0 +msgid "June" +msgstr "6月" + +#. module: auction +#: code:addons/auction/wizard/auction_catalog_flagey_report.py:63 +#, python-format +msgid "No Lots belong to this Auction Date" +msgstr "このオークション日付に沿う出品物はありません。" + +#. module: auction +#: view:auction.lots:0 +msgid "New Object" +msgstr "新オブジェクト" + +#. module: auction +#: selection:report.auction,month:0 +msgid "October" +msgstr "10月" + +#. module: auction +#: field:auction.bid_line,name:0 +msgid "Bid date" +msgstr "入札日" + +#. module: auction +#: field:auction.dates,acc_expense:0 +msgid "Expense Account" +msgstr "費用勘定" + +#. module: auction +#: model:ir.ui.menu,name:auction.menu_wizard_emporte +msgid "Deliveries Management" +msgstr "配達管理" + +#. module: auction +#: field:auction.lots,obj_desc:0 +msgid "Object Description" +msgstr "オブジェクトの説明" + +#. module: auction +#: field:auction.lots,artist2_id:0 +msgid "Artist/Author2" +msgstr "作者 / 著者2" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Line1" +msgstr "行1" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_make_invoice_buyer +msgid "Make Invoice for Buyer" +msgstr "買い手の請求書作成" + +#. module: auction +#: field:auction.lots,gross_revenue:0 +#: field:report.object.encoded,gross_revenue:0 +msgid "Gross revenue" +msgstr "総収入" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_pay_buy +msgid "Pay objects of the buyer" +msgstr "買い手のオブジェクトの支払" + +#. module: auction +#: help:auction.dates,auction2:0 +msgid "End date of auction" +msgstr "オークション終了日" + +#. module: auction +#: view:auction.lots.sms.send:0 +msgid "Send SMS" +msgstr "SMS を送信" + +#. module: auction +#: field:auction.lots,name2:0 +msgid "Short Description (2)" +msgstr "短い説明(2)" + +#. module: auction +#: report:auction.total.rml:0 +#: model:ir.ui.menu,name:auction.auction_buyers_menu +msgid "Buyers" +msgstr "買い手" + +#. module: auction +#: view:auction.lots:0 +#: view:report.auction:0 +msgid "Object Category" +msgstr "オブジェクト分類" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id4 +msgid "VAT 12%" +msgstr "消費税 12%" + +#. module: auction +#: view:auction.dates:0 +msgid "Buyer Invoices" +msgstr "買い手請求書" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.res_w_buyer +msgid "Results with buyer" +msgstr "買い手の結果" + +#. module: auction +#: field:auction.bid_line,price:0 +msgid "Maximum Price" +msgstr "最高価格" + +#. module: auction +#: help:auction.dates,auction1:0 +msgid "Start date of auction" +msgstr "オークション開始日" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_auction_move +msgid "Auction Move" +msgstr "オークションの動作" + +#. module: auction +#: help:auction.dates,buyer_costs:0 +msgid "Account tax for buyer" +msgstr "買い手に対する口座の税金" + +#. module: auction +#: view:auction.dates:0 +msgid "Next Auction" +msgstr "次のオークション" + +#. module: auction +#: view:auction.taken:0 +msgid "Select lots which are Sold" +msgstr "売却済出品物の選択" + +#. module: auction +#: field:auction.lots,statement_id:0 +msgid "Payment" +msgstr "支払" + +#. module: auction +#: code:addons/auction/auction.py:571 +#: code:addons/auction/auction.py:686 +#, python-format +msgid "The object \"%s\" has no buyer assigned." +msgstr "オブジェクト %s は買い手が割り当てられていません。" + +#. module: auction +#: selection:auction.deposit,method:0 +msgid "Keep until sold" +msgstr "売却まで" + +#. module: auction +#: view:auction.dates:0 +msgid "Last Auction Date" +msgstr "最新オークション日" + +#. module: auction +#: field:report.object.encoded,obj_num:0 +msgid "# of Encoded obj." +msgstr "エンコード済オブジェクトの数" + +#. module: auction +#: field:auction.lots,paid_vnd:0 +msgid "Seller Paid" +msgstr "出品者支払" + +#. module: auction +#: view:board.board:0 +#: view:report.object.encoded:0 +msgid "Objects statistics" +msgstr "オブジェクトの統計" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of sellers:" +msgstr "出品者の数" + +#. module: auction +#: field:report.auction,date:0 +#: field:report.object.encoded,date:0 +msgid "Create Date" +msgstr "作成日" + +#. module: auction +#: view:auction.dates:0 +#: selection:report.object.encoded,state:0 +msgid "Invoiced" +msgstr "請求済" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of items taken away:" +msgstr "取り除かれた項目の数" + +#. module: auction +#: model:ir.model,name:auction.model_report_auction +#: view:report.auction:0 +msgid "Auction's Summary" +msgstr "オークションの概要" + +#. module: auction +#: report:buyer.list:0 +msgid "%)" +msgstr "%)" + +#. module: auction +#: view:auction.lots:0 +msgid "Buyer Information" +msgstr "買い手情報" + +#. module: auction +#: help:auction.lots,gross_revenue:0 +msgid "Buyer Price - Seller Price" +msgstr "買い手価格 - 出品者価格" + +#. module: auction +#: field:auction.lots.make.invoice,objects:0 +#: field:auction.lots.make.invoice.buyer,objects:0 +msgid "# of objects" +msgstr "オブジェクトの数" + +#. module: auction +#: field:auction.lots,lot_est2:0 +msgid "Maximum Estimation" +msgstr "最高見積" + +#. module: auction +#: field:auction.lots,buyer_price:0 +msgid "Buyer price" +msgstr "買い手価格" + +#. module: auction +#: view:auction.lots:0 +msgid "Bids Details" +msgstr "入札詳細" + +#. module: auction +#: field:auction.lots,is_ok:0 +msgid "Buyer's payment" +msgstr "買い手の支払" + +#. module: auction +#: view:auction.dates:0 +msgid "End of auction" +msgstr "オークションの終了" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_catalog_flagey_wizard +#: model:ir.model,name:auction.model_auction_catalog_flagey +msgid "Auction Catalog Flagey" +msgstr "Flageyのオークションカタログ" + +#. module: auction +#: selection:report.auction,month:0 +msgid "March" +msgstr "3月" + +#. module: auction +#: model:account.tax,name:auction.auction_tax4 +msgid "Seller Costs1" +msgstr "出品者経費1" + +#. module: auction +#: field:auction.deposit,create_uid:0 +#: field:auction.lots,create_uid:0 +msgid "Created by" +msgstr "作者" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of buyers:" +msgstr "買い手の数:" + +#. module: auction +#: field:auction.lots,costs:0 +msgid "Indirect costs" +msgstr "間接経費" + +#. module: auction +#: help:auction.dates,seller_costs:0 +msgid "Account tax for seller" +msgstr "出品者に対する口座の税金" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_invoice.py:67 +#: code:addons/auction/wizard/auction_lots_numerotate.py:103 +#: code:addons/auction/wizard/auction_lots_numerotate.py:129 +#, python-format +msgid "UserError" +msgstr "ユーザエラー" + +#. module: auction +#: field:auction.dates,journal_seller_id:0 +msgid "Seller Journal" +msgstr "出品者仕訳帳" + +#. module: auction +#: view:auction.dates:0 +#: selection:auction.dates,state:0 +#: view:auction.lots:0 +#: selection:auction.lots,state:0 +#: view:report.auction:0 +#: selection:report.auction,state:0 +#: selection:report.auction.adjudication,state:0 +#: selection:report.object.encoded,state:0 +msgid "Draft" +msgstr "ドラフト" + +#. module: auction +#: view:auction.dates:0 +msgid "Invoiced Auction" +msgstr "オークションの請求" + +#. module: auction +#: view:auction.catalog.flagey:0 +msgid "Print" +msgstr "印刷" + +#. module: auction +#: view:auction.lots:0 +#: view:report.auction:0 +msgid "Type" +msgstr "タイプ" + +#. module: auction +#: help:aie.category,child_ids:0 +msgid "children aie category" +msgstr "子は分類を持つ" + +#. module: auction +#: help:auction.lots,ach_emp:0 +msgid "When state is Taken Away, this field is marked as True" +msgstr "状態が取り除かれた時に、この項目はTrueにマークされます。" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_taken +msgid "Gestion emporte" +msgstr "管理を伴う" + +#. module: auction +#: view:auction.bid:0 +#: report:auction.bids:0 +#: view:auction.dates:0 +#: view:auction.lots:0 +#: field:auction.lots,auction_id:0 +#: report:auction.total.rml:0 +#: model:ir.module.category,name:auction.module_category_auction +#: model:ir.ui.menu,name:auction.auction_menu_root +#: view:report.auction:0 +msgid "Auction" +msgstr "オークション" + +#. module: auction +#: view:auction.lot.category:0 +#: model:ir.ui.menu,name:auction.menu_auction_object_cat +msgid "Object Categories" +msgstr "オブジェクト分類" + +#. module: auction +#: field:auction.lots.sms.send,app_id:0 +msgid "API ID" +msgstr "" + +#. module: auction +#: field:auction.bid,name:0 +#: field:auction.bid_line,bid_id:0 +msgid "Bid ID" +msgstr "入札ID" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Min Estimate:" +msgstr "最低見積:" + +#. module: auction +#: selection:report.auction,month:0 +msgid "September" +msgstr "9月" + +#. module: auction +#: field:report.auction,net_margin:0 +msgid "Net Margin" +msgstr "実質利鞘" + +#. module: auction +#: field:auction.lots,vnd_lim_net:0 +msgid "Net limit ?" +msgstr "実質上限は?" + +#. module: auction +#: field:aie.category,child_ids:0 +msgid "unknown" +msgstr "不明" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of commissions:" +msgstr "手数料の数:" + +#. module: auction +#: field:auction.bid_line,auction:0 +#: field:auction.dates,name:0 +msgid "Auction Name" +msgstr "オークション名" + +#. module: auction +#: model:account.tax,name:auction.tax_seller +msgid "Seller Costs (12%)" +msgstr "出品者経費(12%)" + +#. module: auction +#: field:aie.category,parent_id:0 +msgid "Parent aie Category" +msgstr "親は分類を持つ" + +#. module: auction +#: view:report.auction:0 +msgid "Auction Summary" +msgstr "オークション概要" + +#. module: auction +#: view:auction.lots.make.invoice:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid "(Keep empty for automatic number)" +msgstr "(自動番号のため空のままとします)" + +#. module: auction +#: code:addons/auction/auction.py:578 +#, python-format +msgid "No Invoice Address" +msgstr "請求書住所がありません。" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.v_huissier +msgid "Bailiffs Listing" +msgstr "執行官リスト" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_numerotate.py:103 +#: code:addons/auction/wizard/auction_lots_numerotate.py:129 +#, python-format +msgid "This record does not exist !" +msgstr "このレコードは存在しません。" + +#. module: auction +#: field:auction.pay.buy,total:0 +msgid "Total Amount" +msgstr "合計金額" + +#. module: auction +#: help:auction.pay.buy,amount:0 +msgid "Amount For First Bank Statement" +msgstr "第1の銀行取引明細書の金額" + +#. module: auction +#: model:ir.model,name:auction.model_report_auction_object_date +#: view:report.auction.object.date:0 +msgid "Objects per day" +msgstr "1日あたりのオブジェクト" + +#. module: auction +#: help:auction.lots,author_right:0 +msgid "Account tax for author commission" +msgstr "作者手数料の口座の税金" + +#. module: auction +#: model:product.template,name:auction.monproduit_product_template +msgid "Oeuvres a 21%" +msgstr "作品は21%" + +#. module: auction +#: field:report.object.encoded,adj:0 +msgid "Adj." +msgstr "落札" + +#. module: auction +#: field:auction.lot.history,name:0 +#: field:report.auction.adjudication,date:0 +msgid "Date" +msgstr "日付" + +#. module: auction +#: field:auction.lots,obj_ret:0 +msgid "Price retired" +msgstr "撤退価格" + +#. module: auction +#: view:auction.deposit:0 +msgid "Extra Costs" +msgstr "その他経費" + +#. module: auction +#: view:auction.lots.buyer_map:0 +msgid "Map " +msgstr "マップ " + +#. module: auction +#: field:auction.lots,paid_ach:0 +msgid "Buyer Invoice Reconciled" +msgstr "買い手請求書消し込み済" + +#. module: auction +#: field:auction.deposit,date_dep:0 +msgid "Deposit date" +msgstr "預入日" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.id_deposit +msgid "Deposits" +msgstr "預け金" + +#. module: auction +#: field:auction.deposit,specific_cost_ids:0 +msgid "Specific Costs" +msgstr "特別な経費" + +#. module: auction +#: report:buyer.list:0 +msgid "To pay (" +msgstr "支払先(" + +#. module: auction +#: model:account.tax,name:auction.tax_buyer +msgid "Buyer Costs (20%)" +msgstr "買い手経費(20%)" + +#. module: auction +#: model:ir.ui.menu,name:auction.menu_board_auction +msgid "Dashboard" +msgstr "ダッシュボード" + +#. module: auction +#: view:auction.dates:0 +#: model:ir.actions.act_window,name:auction.action_auction_dates_next +#: model:ir.ui.menu,name:auction.auction_date_menu +#: model:ir.ui.menu,name:auction.menu_auction_dates_next1 +msgid "Auctions" +msgstr "オークション" + +#. module: auction +#: view:board.board:0 +msgid "Total Adjudications" +msgstr "合計落札" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_make_invoice +msgid "Make invoice" +msgstr "請求書作成" + +#. module: auction +#: selection:report.auction,month:0 +msgid "November" +msgstr "11月" + +#. module: auction +#: view:auction.dates:0 +#: view:auction.lots:0 +msgid "History" +msgstr "履歴" + +#. module: auction +#: field:aie.category,code:0 +msgid "Code" +msgstr "コード" + +#. module: auction +#: report:auction.code_bar_lot:0 +msgid "Nr." +msgstr "" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.v_report_barcode_lot +msgid "Barcode batch" +msgstr "バーコードのひと束" + +#. module: auction +#: report:report.auction.buyer.result:0 +msgid "Num" +msgstr "番号" + +#. module: auction +#: view:auction.catalog.flagey:0 +#: view:auction.taken:0 +msgid "Cancel" +msgstr "キャンセル" + +#. module: auction +#: view:auction.lots:0 +msgid "Buyer's Payment History" +msgstr "買い手支払履歴" + +#. module: auction +#: view:auction.artists:0 +#: field:auction.artists,biography:0 +msgid "Biography" +msgstr "略歴" + +#. module: auction +#: view:auction.lots:0 +msgid "Inventory" +msgstr "在庫" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Pay" +msgstr "支払" + +#. module: auction +#: view:auction.lots.make.invoice:0 +msgid "Create Invoices for Seller" +msgstr "出品者請求書の作成" + +#. module: auction +#: field:report.object.encoded,obj_margin:0 +msgid "Net margin" +msgstr "実質利鞘" + +#. module: auction +#: help:auction.lots,lot_local:0 +msgid "Auction Location" +msgstr "オークションの場所" + +#. module: auction +#: view:auction.dates:0 +msgid "Analytic" +msgstr "分析" + +#. module: auction +#: help:auction.lots,paid_ach:0 +msgid "" +"When state of Buyer Invoice is 'Paid', this field is selected as True." +msgstr "買い手請求書が支払済状態である場合、この項目はTrueとして選択されます。" + +#. module: auction +#: report:bids.lots:0 +#: report:bids.phones.details:0 +msgid "Cat.N" +msgstr "" + +#. module: auction +#: selection:auction.deposit,method:0 +msgid "Decrease limit of 10%" +msgstr "上限を10%減少させる" + +#. module: auction +#: field:auction.dates,adj_total:0 +#: field:report.auction.adjudication,adj_total:0 +msgid "Total Adjudication" +msgstr "合計落札" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_lots_make_invoice_buyer +msgid "Invoice Buyer objects" +msgstr "請求書の買い手オブジェクト" + +#. module: auction +#: view:report.auction:0 +msgid "My Auction" +msgstr "マイオークション" + +#. module: auction +#: help:auction.lots,gross_margin:0 +msgid "(Gross Revenue*100.0)/ Object Price" +msgstr "(総収入*100.0) / オブジェクト価格" + +#. module: auction +#: field:auction.bid,contact_tel:0 +msgid "Contact Number" +msgstr "連絡先番号" + +#. module: auction +#: view:auction.lots:0 +msgid "Price" +msgstr "価格" + +#. module: auction +#: report:bids.phones.details:0 +msgid "-" +msgstr "" + +#. module: auction +#: view:auction.deposit:0 +msgid "Photos" +msgstr "写真" + +#. module: auction +#: field:auction.lots.make.invoice,number:0 +#: field:auction.lots.make.invoice.buyer,number:0 +msgid "Invoice Number" +msgstr "請求書番号" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_buyer_map.py:87 +#: code:addons/auction/wizard/auction_lots_numerotate.py:77 +#: code:addons/auction/wizard/auction_lots_numerotate.py:95 +#: code:addons/auction/wizard/auction_lots_numerotate.py:122 +#: code:addons/auction/wizard/auction_lots_numerotate.py:137 +#: code:addons/auction/wizard/auction_lots_numerotate.py:173 +#, python-format +msgid "Active IDs not Found" +msgstr "アクティブIDが見つかりません。" + +#. module: auction +#: code:addons/auction/wizard/auction_aie_send.py:166 +#: code:addons/auction/wizard/auction_aie_send_result.py:117 +#, python-format +msgid "Connection to WWW.Auction-in-Europe.com failed !" +msgstr "WWW.Auction-in-Europe.com への接続が失敗しました。" + +#. module: auction +#: model:ir.actions.act_window,name:auction.act_auction_lot_open_bid +#: model:ir.actions.act_window,name:auction.action_bid_open +msgid "Open Bids" +msgstr "公開入札" + +#. module: auction +#: model:ir.actions.act_window,name:auction.open_board_auction +msgid "Auction board" +msgstr "オークション委員会" + +#. module: auction +#: field:aie.category,name:0 +#: view:auction.artists:0 +#: report:bids.lots:0 +msgid "Name" +msgstr "氏名" + +#. module: auction +#: field:auction.deposit,name:0 +#: view:auction.lots:0 +#: field:auction.lots,bord_vnd_id:0 +msgid "Depositer Inventory" +msgstr "預け入れ人目録" + +#. module: auction +#: code:addons/auction/auction.py:692 +#, python-format +msgid "The Buyer has no Invoice Address." +msgstr "買い手には請求書住所がありません。" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction_adjudication_tree +msgid "Auction Adjudication Report" +msgstr "オークション落札レポート" + +#. module: auction +#: field:auction.lots.sms.send,user:0 +msgid "Login" +msgstr "ログイン" + +#. module: auction +#: model:ir.model,name:auction.model_report_auction_adjudication +msgid "report_auction_adjudication" +msgstr "" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.seller_lots_3 +msgid "Seller Form" +msgstr "出品者フォーム" + +#. module: auction +#: field:auction.lots,lot_type:0 +#: field:report.auction,lot_type:0 +msgid "Object category" +msgstr "オブジェクト分類" + +#. module: auction +#: view:auction.taken:0 +msgid "Mark Lots" +msgstr "出品物としてマーク" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots +msgid "Auction Object" +msgstr "オークションオブジェクト" + +#. module: auction +#: field:auction.lots,obj_num:0 +#: field:auction.lots.enable,confirm_en:0 +msgid "Catalog Number" +msgstr "カタログ番号" + +#. module: auction +#: view:auction.dates:0 +msgid "Accounting" +msgstr "会計" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.bid_phone +msgid "Bids phones" +msgstr "電話入札" + +#. module: auction +#: field:report.auction,avg_estimation:0 +msgid "Avg estimation" +msgstr "平均見積" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Debit:" +msgstr "借方:" + +#. module: auction +#: code:addons/auction/wizard/auction_aie_send.py:166 +#: code:addons/auction/wizard/auction_aie_send_result.py:116 +#: code:addons/auction/wizard/auction_lots_buyer_map.py:70 +#: code:addons/auction/wizard/auction_lots_numerotate.py:145 +#, python-format +msgid "Error" +msgstr "エラー" + +#. module: auction +#: field:auction.lots,author_right:0 +msgid "Author rights" +msgstr "著作権" + +#. module: auction +#: view:auction.bid:0 +#: view:auction.dates:0 +#: view:auction.deposit:0 +#: view:auction.lots:0 +#: view:report.auction:0 +msgid "Group By..." +msgstr "グループ化…" + +#. module: auction +#: view:report.auction:0 +msgid "Auction during last month." +msgstr "先月間のオークション" + +#. module: auction +#: help:auction.dates,journal_id:0 +msgid "Account journal for buyer" +msgstr "買い手のための口座仕訳帳" + +#. module: auction +#: field:auction.bid,bid_lines:0 +#: report:auction.bids:0 +#: report:bids.lots:0 +#: model:ir.model,name:auction.model_auction_bid_line +msgid "Bid" +msgstr "入札" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Total net rev." +msgstr "合計総収入" + +#. module: auction +#: view:auction.lots.buyer_map:0 +msgid "Update" +msgstr "更新" + +#. module: auction +#: report:auction.total.rml:0 +#: model:ir.ui.menu,name:auction.auction_seller_menu +msgid "Sellers" +msgstr "出品者" + +#. module: auction +#: view:auction.dates:0 +msgid "Draft Auction" +msgstr "ドラフトオークション" + +#. module: auction +#: help:auction.lots,lot_est2:0 +msgid "Maximum Estimate Price" +msgstr "最高見積額" + +#. module: auction +#: view:auction.lots:0 +msgid "Notes" +msgstr "注記" + +#. module: auction +#: view:auction.lots.auction.move:0 +msgid "Move to Auction date" +msgstr "オークション日に移動" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of unsold items:" +msgstr "売れず項目の数:" + +#. module: auction +#: view:auction.dates:0 +msgid "Create Invoices" +msgstr "請求書を作成" + +#. module: auction +#: field:auction.bid,auction_id:0 +#: view:auction.dates:0 +#: field:auction.lots.auction.move,auction_id:0 +msgid "Auction Date" +msgstr "オークション日" + +#. module: auction +#: report:auction.code_bar_lot:0 +msgid ", ID" +msgstr "" + +#. module: auction +#: report:buyer.list:0 +msgid "Adj.(" +msgstr "落札(" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.lot_list_inv +msgid "Lots List - Landscape" +msgstr "出品物リスト - 横向き" + +#. module: auction +#: view:auction.artists:0 +msgid "Author/Artist" +msgstr "著者 / 作者" + +#. module: auction +#: field:auction.lots,ach_login:0 +#: field:auction.lots.buyer_map,ach_login:0 +msgid "Buyer Username" +msgstr "買い手ユーザ名" + +#. module: auction +#: field:auction.lot.category,priority:0 +msgid "Priority" +msgstr "優先度" + +#. module: auction +#: view:board.board:0 +#: model:ir.actions.act_window,name:auction.action_report_latest_objects_tree +msgid "Latest objects" +msgstr "最新オブジェクト" + +#. module: auction +#: field:auction.lots,lot_local:0 +msgid "Location" +msgstr "場所" + +#. module: auction +#: view:report.auction:0 +msgid "Month -1" +msgstr "月 -1" + +#. module: auction +#: help:auction.lots,is_ok:0 +msgid "When buyer pay for bank statement', this field is marked" +msgstr "買い手が銀行取引明細書の支払をした時にこの項目はマークされます。" + +#. module: auction +#: field:auction.lots,ach_emp:0 +msgid "Taken Away" +msgstr "取り除き済" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Total gross rev." +msgstr "合計総収入" + +#. module: auction +#: help:auction.lots,lot_est1:0 +msgid "Minimum Estimate Price" +msgstr "最低見積額" + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Date" +msgstr "預入日" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_numerotate.py:145 +#, python-format +msgid "This lot does not exist !" +msgstr "この出品物は存在しません。" + +#. module: auction +#: selection:report.auction,month:0 +msgid "July" +msgstr "7月" + +#. module: auction +#: field:auction.bid_line,call:0 +msgid "To be Called" +msgstr "呼称" + +#. module: auction +#: view:auction.lots:0 +#: model:ir.actions.act_window,name:auction.action_report_auction_lots_estimation_adj_category_tree +msgid "Min est/Adj/Max est" +msgstr "最低見積 / 落札 / 最高見積" + +#. module: auction +#: field:auction.lots,lot_est1:0 +msgid "Minimum Estimation" +msgstr "最低見積" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_sms_send +msgid "Sms send " +msgstr "SMS送信済 " + +#. module: auction +#: view:auction.lots.auction.move:0 +#: model:ir.actions.act_window,name:auction.action_auction_lots_auction_move +msgid "Change Auction Date" +msgstr "オークション日変更" + +#. module: auction +#: field:auction.artists,birth_death_dates:0 +msgid "Lifespan" +msgstr "寿命" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,method:0 +msgid "Withdrawned method" +msgstr "取り下げ方法" + +#. module: auction +#: view:auction.dates:0 +msgid "Buyer Commissions" +msgstr "買い手手数料" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction +#: model:ir.ui.menu,name:auction.menu_report_auction +msgid "Auction Analysis" +msgstr "オークション分析" + +#. module: auction +#: code:addons/auction/wizard/auction_pay_buy.py:80 +#, python-format +msgid "Payment aborted !" +msgstr "支払は中止されました。" + +#. module: auction +#: field:auction.lot.history,price:0 +msgid "Withdrawn price" +msgstr "取り下げ価格" + +#. module: auction +#: view:auction.dates:0 +msgid "Beginning of the auction" +msgstr "オークションの開始" + +#. module: auction +#: help:auction.pay.buy,statement_id3:0 +msgid "Third Bank Statement For Buyer" +msgstr "買い手の第3の銀行取引明細書" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,month:0 +#: field:report.auction.object.date,month:0 +msgid "Month" +msgstr "月" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Max Estimate:" +msgstr "最高見積" + +#. module: auction +#: view:auction.lots:0 +msgid "Statistical" +msgstr "統計的" + +#. module: auction +#: model:ir.model,name:auction.model_auction_deposit +msgid "Auction Deposit Border" +msgstr "オークション預け金境界" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_object_encoded_tree +msgid "Object statistics" +msgstr "オブジェクト統計値" + +#. module: auction +#: help:auction.lots,net_margin:0 +msgid "(Net Revenue * 100)/ Object Price" +msgstr "(実質収入*100) / オブジェクト価格" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lot_history +msgid "Lot History" +msgstr "出品物履歴" + +#. module: auction +#: view:auction.lots.make.invoice:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid "Create invoices" +msgstr "請求書作成" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id5 +msgid "VAT 5%" +msgstr "消費税 5%" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_buyer_map +msgid "Map Buyer" +msgstr "消費税5%" + +#. module: auction +#: report:buyer.list:0 +msgid "Lot" +msgstr "出品物" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction_object_date_tree +msgid "Auction Object Date" +msgstr "オークションオブジェクト日" + +#. module: auction +#: model:ir.model,name:auction.model_auction_artists +msgid "auction.artists" +msgstr "" + +#. module: auction +#: field:report.auction,avg_price:0 +msgid "Avg Price." +msgstr "平均価格" + +#. module: auction +#: help:auction.pay.buy,statement_id2:0 +msgid "Second Bank Statement For Buyer" +msgstr "買い手の第2の銀行取引明細書" + +#. module: auction +#: field:auction.dates,journal_id:0 +msgid "Buyer Journal" +msgstr "買い手仕訳帳" + +#. module: auction +#: selection:auction.lots,state:0 +#: selection:report.object.encoded,state:0 +msgid "Paid" +msgstr "支払済" + +#. module: auction +#: report:bids.lots:0 +#: report:bids.phones.details:0 +msgid "Phone" +msgstr "電話" + +#. module: auction +#: field:auction.lot.category,active:0 +msgid "Active" +msgstr "アクティブ" + +#. module: auction +#: view:auction.dates:0 +msgid "Exposition Dates" +msgstr "展示日" + +#. module: auction +#: model:account.tax,name:auction.auction_tax1 +msgid "TVA" +msgstr "TVA(フランスの消費税)" + +#. module: auction +#: field:auction.lots,important:0 +msgid "To be Emphatized" +msgstr "強調する" + +#. module: auction +#: report:buyer.list:0 +msgid "Total:" +msgstr "合計:" + +#. module: auction +#: model:account.tax,name:auction.auction_tax2 +msgid "TVA1" +msgstr "TVA1(フランスの消費税)" + +#. module: auction +#: view:report.auction.object.date:0 +msgid "Objects per Day" +msgstr "日毎のオブジェクト" + +#. module: auction +#: field:auction.dates,seller_invoice_history:0 +#: field:auction.lots,sel_inv_id:0 +#: view:auction.lots.make.invoice:0 +msgid "Seller Invoice" +msgstr "出品者請求書" + +#. module: auction +#: view:board.board:0 +msgid "Objects by day" +msgstr "日毎のオブジェクト" + +#. module: auction +#: help:auction.dates,expo2:0 +msgid "Last exposition date for auction" +msgstr "オークション展示最終日" + +#. module: auction +#: code:addons/auction/auction.py:571 +#: code:addons/auction/auction.py:686 +#, python-format +msgid "Missed buyer !" +msgstr "買い手を逃しました。" + +#. module: auction +#: report:auction.code_bar_lot:0 +msgid "Flagey" +msgstr "" + +#. module: auction +#: view:board.board:0 +msgid "Auction manager " +msgstr "オークションマネジャ " + +#. module: auction +#: code:addons/auction/wizard/auction_lots_invoice.py:67 +#, python-format +msgid "" +"Two different buyers for the same invoice !\n" +"Please correct this problem before invoicing" +msgstr "" +"同じ請求書に2つの異なった買い手があります。\n" +"請求する前にこの問題を修正して下さい。" + +#. module: auction +#: view:auction.dates:0 +msgid "Invoice" +msgstr "請求書" + +#. module: auction +#: view:auction.dates:0 +msgid "Commissions" +msgstr "手数料" + +#. module: auction +#: field:auction.lots,vnd_lim:0 +msgid "Seller limit" +msgstr "出品者上限" + +#. module: auction +#: field:auction.deposit,transfer:0 +msgid "Transfer" +msgstr "転送" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Line3" +msgstr "行3" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Line2" +msgstr "行2" + +#. module: auction +#: help:auction.lots,obj_ret:0 +msgid "Object Ret" +msgstr "オブジェクト保持" + +#. module: auction +#: view:report.auction.adjudication:0 +msgid "Total adjudication" +msgstr "合計落札" + +#. module: auction +#: selection:auction.deposit,method:0 +msgid "Contact the Seller" +msgstr "出品者に連絡します。" + +#. module: auction +#: field:auction.taken,lot_ids:0 +msgid "Lots Emportes" +msgstr "出品物獲得" + +#. module: auction +#: field:auction.lots,net_margin:0 +msgid "Net Margin (%)" +msgstr "実質利鞘(%)" + +#. module: auction +#: field:auction.lots,product_id:0 +msgid "Product" +msgstr "製品" + +#. module: auction +#: report:buyer.list:0 +msgid ")" +msgstr ")" + +#. module: auction +#: view:auction.lots:0 +msgid "Seller Information" +msgstr "出品者情報" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,lot_id:0 +#: view:auction.lots:0 +#: model:ir.actions.act_window,name:auction.action_all_objects +#: model:ir.ui.menu,name:auction.auction_all_objects_menu +msgid "Objects" +msgstr "オブジェクト" + +#. module: auction +#: view:auction.dates:0 +msgid "Seller Invoices" +msgstr "出品者請求書" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Paid:" +msgstr "支払済:" + +#. module: auction +#: field:auction.deposit,total_neg:0 +msgid "Allow Negative Amount" +msgstr "マイナス金額を許可" + +#. module: auction +#: help:auction.pay.buy,amount2:0 +msgid "Amount For Second Bank Statement" +msgstr "第2の銀行口座明細書の金額" + +#. module: auction +#: field:auction.lot.history,auction_id:0 +#: field:report.auction,auction:0 +#: field:report.auction.adjudication,name:0 +msgid "Auction date" +msgstr "オークション日" + +#. module: auction +#: view:auction.lots.sms.send:0 +msgid "SMS Text" +msgstr "SMSテキスト" + +#. module: auction +#: field:auction.dates,auction1:0 +msgid "First Auction Day" +msgstr "最初のオークション日" + +#. module: auction +#: view:auction.lots.make.invoice.buyer:0 +msgid "Create Invoices for Buyer" +msgstr "買い手請求書の作成" + +#. module: auction +#: model:res.groups,name:auction.group_auction_manager +msgid "Manager" +msgstr "マネジャ" + +#. module: auction +#: view:auction.dates:0 +msgid "Names" +msgstr "名前" + +#. module: auction +#: view:auction.artists:0 +#: model:ir.ui.menu,name:auction.menu_auction_artist +msgid "Artists" +msgstr "作者" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Pay Objects" +msgstr "支払オブジェクト" + +#. module: auction +#: help:auction.dates,expo1:0 +msgid "Beginning exposition date for auction" +msgstr "オークション展示初日" + +#. module: auction +#: model:ir.actions.act_window,name:auction.act_auction_lot_line_open +msgid "Open lots" +msgstr "出品物を開く" + +#. module: auction +#: model:ir.actions.act_window,name:auction.act_auction_lot_open_deposit +msgid "Deposit slip" +msgstr "預入伝票" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_enable +msgid "Lots Enable" +msgstr "出品物の有効化" + +#. module: auction +#: view:auction.lots:0 +msgid "Lots" +msgstr "出品物" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_artist +msgid "Auction Artists" +msgstr "オークション作者" + +#. module: auction +#: field:auction.lots,seller_price:0 +msgid "Seller price" +msgstr "出品者価格" + +#. module: auction +#: model:account.tax,name:auction.auction_tax20 +msgid "Frais de vente0" +msgstr "販売" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.buy_id_list +msgid "Buyer List" +msgstr "買い手リスト" + +#. module: auction +#: report:buyer.list:0 +msgid "Buyer costs(" +msgstr "買い手経費(" + +#. module: auction +#: field:auction.pay.buy,statement_id1:0 +#: field:auction.pay.buy,statement_id2:0 +#: field:auction.pay.buy,statement_id3:0 +msgid "Statement" +msgstr "取引明細書" + +#. module: auction +#: help:auction.lots,seller_price:0 +#: help:auction.lots.make.invoice,amount:0 +msgid "Seller Price" +msgstr "出品者価格" + +#. module: auction +#: model:account.tax,name:auction.auction_tax6 +msgid "Frais de vente" +msgstr "販売" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id1 +msgid "VAT 1%" +msgstr "消費税 1%" + +#. module: auction +#: model:account.tax,name:auction.auction_tax +msgid "Droit d'auteur" +msgstr "著作権" + +#. module: auction +#: field:auction.dates,expo1:0 +msgid "First Exposition Day" +msgstr "展示初日" + +#. module: auction +#: field:report.auction.object.date,name:0 +msgid "Created date" +msgstr "作成日" + +#. module: auction +#: help:auction.lots,bord_vnd_id:0 +msgid "" +"Provide deposit information: seller, Withdrawned Method, Object, Deposit " +"Costs" +msgstr "預け金情報の提供:出品者、取り下げ方法、オブジェクト、預け金経費" + +#. module: auction +#: field:auction.lots,net_revenue:0 +#: field:report.object.encoded,net_revenue:0 +msgid "Net revenue" +msgstr "実質収入" + +#. module: auction +#: code:addons/auction/wizard/auction_catalog_flagey_report.py:63 +#: code:addons/auction/wizard/auction_pay_buy.py:89 +#, python-format +msgid "Error!" +msgstr "エラー" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_latest_doposit_tree +msgid "Latest Deposits" +msgstr "最終預け金" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of items:" +msgstr "項目の数" + +#. module: auction +#: model:account.tax,name:auction.tax_buyer_author +msgid "Author rights (4%)" +msgstr "著者の権利(4%)" + +#. module: auction +#: field:report.object.encoded,estimation:0 +msgid "Estimation" +msgstr "見積" + +#. module: auction +#: view:auction.taken:0 +msgid "OK" +msgstr "" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.buyer_form_id +msgid "Buyer Form" +msgstr "買い手フォーム" + +#. module: auction +#: field:auction.bid,partner_id:0 +msgid "Buyer Name" +msgstr "買い手氏名" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,day:0 +msgid "Day" +msgstr "日" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_lots_make_invoice +msgid "Invoice Seller objects" +msgstr "請求書出品者オブジェクト" + +#. module: auction +#: field:auction.lots,gross_margin:0 +msgid "Gross Margin (%)" +msgstr "総利鞘(%)" + +#. module: auction +#: selection:auction.dates,state:0 +#: selection:report.auction.adjudication,state:0 +msgid "Closed" +msgstr "閉じた" + +#. module: auction +#: view:auction.dates:0 +msgid "Search Next Auction Dates" +msgstr "次回オークション日付の検索" + +#. module: auction +#: view:auction.catalog.flagey:0 +msgid "Print Auction Catalog Flagey Report..." +msgstr "オークションカタログFlageyレポートの印刷" + +#. module: auction +#: field:auction.lots,ach_avance:0 +msgid "Buyer Advance" +msgstr "買い手前払い" + +#. module: auction +#: field:auction.lots,obj_comm:0 +msgid "Commission" +msgstr "手数料" + +#. module: auction +#: view:board.board:0 +msgid "Min/Adj/Max" +msgstr "最低 / 落札 / 最高" + +#. module: auction +#: view:auction.catalog.flagey:0 +msgid "Catalog Flagey Report" +msgstr "カタログFlageyレポート" + +#. module: auction +#: help:auction.lots,obj_price:0 +msgid "Object Price" +msgstr "オブジェクト価格" + +#. module: auction +#: view:auction.bid:0 +msgid "Bids Lines" +msgstr "入札行" + +#. module: auction +#: view:auction.lots:0 +msgid "Catalog" +msgstr "カタログ" + +#. module: auction +#: help:auction.lots,auction_id:0 +msgid "Auction for object" +msgstr "オブジェクトのオークション" + +#. module: auction +#: field:auction.deposit.cost,account:0 +msgid "Destination Account" +msgstr "宛先アカウント" + +#. module: auction +#: model:ir.ui.menu,name:auction.auction_config_menu +msgid "Configuration" +msgstr "設定" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction_object_date_tree_my +msgid "My Auction Object Date" +msgstr "マイオークションオブジェクト日" + +#. module: auction +#: code:addons/auction/wizard/auction_pay_buy.py:80 +#, python-format +msgid "" +"You should pay all the total: \"%.2f\" are missing to accomplish the payment." +msgstr "全合計金額を支払って下さい:全額の支払のためには %.2f が不足しています。" + +#. module: auction +#: model:ir.model,name:auction.model_auction_pay_buy +msgid "Pay buy" +msgstr "購入の支払" + +#. module: auction +#: model:ir.ui.menu,name:auction.auction_outils_menu +msgid "Tools Bar Codes" +msgstr "バーコードツール" + +#. module: auction +#: field:auction.deposit.cost,deposit_id:0 +msgid "Deposit" +msgstr "預け金" + +#. module: auction +#: field:auction.dates,expo2:0 +msgid "Last Exposition Day" +msgstr "展示最終日" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_able +msgid "Lots able" +msgstr "出品可能" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id3 +msgid "VAT 10%" +msgstr "消費税 10%" + +#. module: auction +#: field:auction.artists,name:0 +msgid "Artist/Author Name" +msgstr "作者 / 著者名" + +#. module: auction +#: selection:report.auction,month:0 +msgid "December" +msgstr "12月" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.lots,image:0 +msgid "Image" +msgstr "画像" + +#. module: auction +#: help:auction.lots,buyer_price:0 +#: help:auction.lots.make.invoice.buyer,amount:0 +msgid "Buyer Price" +msgstr "買い手価格" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lot_category +msgid "Auction Lots Category" +msgstr "オークション出品物分類" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id2 +msgid "VAT 20%" +msgstr "消費税 20%" + +#. module: auction +#: model:ir.model,name:auction.model_auction_payer_sel +msgid "Auction payment for seller" +msgstr "出品者のオークション支払" + +#. module: auction +#: view:auction.lots:0 +#: selection:auction.lots,state:0 +msgid "Taken away" +msgstr "取除き済" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.seller_form_id +msgid "Seller List" +msgstr "出品者リスト" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Total adj." +msgstr "合計落札" + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Costs" +msgstr "預け金経費" + +#. module: auction +#: field:auction.lot.category,name:0 +msgid "Category Name" +msgstr "分類名" + +#. module: auction +#: report:buyer.list:0 +msgid "........." +msgstr "" + +#. module: auction +#: view:report.auction:0 +msgid "Auction Summary tree view" +msgstr "オークション概要のツリービュー" + +#. module: auction +#: report:report.auction.buyer.result:0 +msgid "Adj" +msgstr "落札" + +#. module: auction +#: view:auction.dates:0 +#: model:ir.model,name:auction.model_auction_dates +msgid "Auction Dates" +msgstr "オークション日" + +#. module: auction +#: model:ir.ui.menu,name:auction.menu_board_auction_open +msgid "Auction DashBoard" +msgstr "オークションダッシュボード" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,user_id:0 +#: field:report.auction.adjudication,user_id:0 +#: field:report.auction.object.date,user_id:0 +#: field:report.object.encoded,user_id:0 +#: model:res.groups,name:auction.group_auction_user +msgid "User" +msgstr "ユーザ" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Payment Lines" +msgstr "支払行" + +#. module: auction +#: code:addons/auction/auction.py:692 +#, python-format +msgid "Missed Address !" +msgstr "住所がありません。" + +#. module: auction +#: help:auction.lots,net_revenue:0 +msgid "Buyer Price - Seller Price - Indirect Cost" +msgstr "買い手価格 - 出品者価格 - 間接経費" + +#. module: auction +#: help:auction.lots,state:0 +msgid "" +" * The 'Draft' state is used when a object is encoding as a new object. " +" \n" +"* The 'Unsold' state is used when object does not sold for long time, user " +"can also set it as draft state after unsold. \n" +"* The 'Paid' state is used when user pay for the object \n" +"* The 'Sold' state is used when user buy the object." +msgstr "" +" ・ ドラフト状態は新しいオブジェクトがコード化された時の状態です。 \n" +"・ 売れず状態はオブジェクトが長期間売れなかった時の状態です。ユーザは売れず状態からドラフト状態に設定できます。\n" +"・ 支払済状態はユーザがオブジェクトに対する支払った時の状態です。\n" +"・ 売却済状態はユーザがオブジェクトを購入した時の状態です。" + +#. module: auction +#: field:auction.artists,pseudo:0 +msgid "Pseudo" +msgstr "偽物" + +#. module: auction +#: view:auction.lots:0 +msgid "Not sold" +msgstr "売れず" + +#. module: auction +#: model:account.tax,name:auction.auction_tax3 +#: field:auction.dates,buyer_costs:0 +msgid "Buyer Costs" +msgstr "買い手経費" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Auction Date:" +msgstr "オークション日" + +#. module: auction +#: view:auction.deposit:0 +msgid "Objects Description" +msgstr "オブジェクト説明" + +#. module: auction +#: field:auction.dates,buyer_invoice_history:0 +#: field:auction.lots,ach_inv_id:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid "Buyer Invoice" +msgstr "買い手請求書" + +#. module: auction +#: report:auction.bids:0 +msgid "Tel" +msgstr "電話" + +#. module: auction +#: field:auction.lots,artist_id:0 +msgid "Artist/Author" +msgstr "作者 / 著者" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.total_result1 +msgid "Auction Totals with lists" +msgstr "リスト付きオークション合計" + +#. module: auction +#: view:auction.deposit:0 +msgid "General Information" +msgstr "一般情報" + +#. module: auction +#: view:auction.lots.auction.move:0 +#: view:auction.lots.buyer_map:0 +#: view:auction.lots.make.invoice:0 +#: view:auction.lots.make.invoice.buyer:0 +#: view:auction.lots.sms.send:0 +#: view:auction.pay.buy:0 +msgid "Close" +msgstr "閉じる" + +#. module: auction +#: model:ir.model,name:auction.model_report_object_encoded +msgid "Object encoded" +msgstr "オブジェクトエンコード" + +#. module: auction +#: view:auction.bid:0 +msgid "Search Auction Bid" +msgstr "オークション入札の検索" + +#. module: auction +#: report:bids.phones.details:0 +msgid "Est" +msgstr "見積" + +#. module: auction +#: view:auction.dates:0 +msgid "Seller Commissions" +msgstr "出品者手数料" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Object statistic" +msgstr "オブジェクト統計" + +#. module: auction +#: help:auction.dates,journal_seller_id:0 +msgid "Account journal for seller" +msgstr "出品者のアカウント仕訳帳" + +#. module: auction +#: field:auction.dates,auction2:0 +msgid "Last Auction Day" +msgstr "最終オークション日" + +#. module: auction +#: code:addons/auction/wizard/auction_pay_buy.py:89 +#, python-format +msgid "No auction date for \"%s\": Please set one." +msgstr "%s のためのオークション日がありません。日付をセットして下さい。" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,info:0 +#: report:bids.phones.details:0 +msgid "Description" +msgstr "詳細" + +#. module: auction +#: selection:report.auction,month:0 +msgid "May" +msgstr "5月" + +#. module: auction +#: field:auction.lots,obj_price:0 +msgid "Adjudication price" +msgstr "落札価格" + +#. module: auction +#: field:auction.dates,acc_income:0 +msgid "Income Account" +msgstr "損益勘定" + +#. module: auction +#: field:auction.lots.sms.send,password:0 +msgid "Password" +msgstr "パスワード" + +#. module: auction +#: selection:report.auction,month:0 +msgid "February" +msgstr "2月" + +#. module: auction +#: selection:report.auction,month:0 +msgid "April" +msgstr "4月" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Pay objects" +msgstr "支払オブジェクト" + +#. module: auction +#: view:report.object.encoded:0 +msgid "# objects" +msgstr "オブジェクトの数" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Adjudication:" +msgstr "落札:" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.details_bids_phones +msgid "Bids per lot (phone)" +msgstr "出品物ごとの入札(電話)" + +#. module: auction +#: field:report.auction,buyer_login:0 +msgid "Buyer Login" +msgstr "買い手ログイン" + +#. module: auction +#: field:auction.deposit,tax_id:0 +msgid "Expenses" +msgstr "経費" + +#. module: auction +#: view:report.auction:0 +msgid "Auction during current month." +msgstr "当月のオークション" + +#. module: auction +#: model:ir.model,name:auction.model_auction_payer +msgid "Auction payer" +msgstr "オークション支払人" + +#. module: auction +#: view:report.auction:0 +msgid "Auction during current year." +msgstr "当年のオークション" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Auction name:" +msgstr "オークション名" + +#. module: auction +#: view:board.board:0 +msgid "Latest deposits" +msgstr "最終預け金" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.art2 +msgid "Artists Biography" +msgstr "作者の略歴" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,year:0 +msgid "Year" +msgstr "年" + +#. module: auction +#: field:auction.lots,history_ids:0 +msgid "Auction history" +msgstr "オークション履歴" diff --git a/addons/auction/i18n/pt.po b/addons/auction/i18n/pt.po new file mode 100644 index 00000000000..9146e8cfb70 --- /dev/null +++ b/addons/auction/i18n/pt.po @@ -0,0 +1,2946 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * auction +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 6.0dev\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-05 09:42+0000\n" +"Last-Translator: Tiago Rodrigues <tig.rodrigues@gmail.com>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-06 04:37+0000\n" +"X-Generator: Launchpad (build 15353)\n" + +#. module: auction +#: model:ir.ui.menu,name:auction.auction_report_menu +msgid "Reporting" +msgstr "Relatório" + +#. module: auction +#: model:ir.model,name:auction.model_auction_taken +msgid "Auction taken" +msgstr "Ação tomada" + +#. module: auction +#: view:auction.lots:0 +msgid "Set to draft" +msgstr "Definir como Rascunho" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,partner_id:0 +#: field:auction.lots,seller_id:0 +#: view:report.auction:0 +#: field:report.auction,seller:0 +msgid "Seller" +msgstr "Vendedor" + +#. module: auction +#: field:auction.lots,name:0 +msgid "Title" +msgstr "Título" + +#. module: auction +#: field:auction.lots.sms.send,text:0 +msgid "SMS Message" +msgstr "Mensagem SMS" + +#. module: auction +#: view:auction.catalog.flagey:0 +#: view:auction.lots.auction.move:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid " " +msgstr " " + +#. module: auction +#: view:auction.lots.auction.move:0 +msgid "Warning, Erase The Object Adjudication Price and Its Buyer!" +msgstr "Atenção, apague o Preço de Adjudicação do objeto e o seu comprador!" + +#. module: auction +#: help:auction.pay.buy,statement_id1:0 +msgid "First Bank Statement For Buyer" +msgstr "Primeiro estrato bancário para o comprador" + +#. module: auction +#: field:auction.bid_line,lot_id:0 +#: field:auction.lot.history,lot_id:0 +msgid "Object" +msgstr "Objeto" + +#. module: auction +#: field:report.auction.object.date,obj_num:0 +msgid "# of Objects" +msgstr "Número de objetos" + +#. module: auction +#: view:auction.lots:0 +msgid "Authors" +msgstr "Autores" + +#. module: auction +#: view:auction.bid:0 +#: report:auction.bids:0 +#: view:auction.lots:0 +#: field:auction.lots,ach_uid:0 +#: field:auction.lots.buyer_map,ach_uid:0 +#: field:auction.lots.make.invoice.buyer,buyer_id:0 +#: field:auction.pay.buy,buyer_id:0 +#: report:buyer.list:0 +#: view:report.auction:0 +#: field:report.auction,buyer:0 +#: report:report.auction.buyer.result:0 +msgid "Buyer" +msgstr "Comprador" + +#. module: auction +#: field:report.auction,object:0 +msgid "No of objects" +msgstr "Número de objetos" + +#. module: auction +#: help:auction.lots,paid_vnd:0 +msgid "" +"When state of Seller Invoice is 'Paid', this field is selected as True." +msgstr "" +"Quando o estado da fatura da Loja é 'pago', este campo é selecionado como " +"True." + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of paid items (based on invoices):" +msgstr "Número de items pagos (com base nas faturas)" + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Border" +msgstr "Limite do Depósito" + +#. module: auction +#: field:auction.lots.make.invoice,amount:0 +#: field:auction.lots.make.invoice.buyer,amount:0 +msgid "Invoiced Amount" +msgstr "Montante Faturado" + +#. module: auction +#: help:auction.lots,name:0 +msgid "Auction object name" +msgstr "Nome do objeto leilão" + +#. module: auction +#: model:ir.model,name:auction.model_aie_category +msgid "aie.category" +msgstr "aie.category" + +#. module: auction +#: field:auction.deposit.cost,amount:0 +#: field:auction.pay.buy,amount:0 +#: field:auction.pay.buy,amount2:0 +#: field:auction.pay.buy,amount3:0 +msgid "Amount" +msgstr "Montante" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_deposit_border +#: model:ir.ui.menu,name:auction.menu_auction_deposit_border +msgid "Deposit border" +msgstr "Limite do Depósito" + +#. module: auction +#: view:auction.deposit:0 +msgid "Reference" +msgstr "Referência" + +#. module: auction +#: help:auction.dates,state:0 +msgid "" +"When auction starts the state is 'Draft'.\n" +" At the end of auction, the state becomes 'Closed'." +msgstr "" +"Quando um leilão começa, o seu estado é 'Rascunho'\n" +" No fim do leilão, o estado passa a 'Fechado'" + +#. module: auction +#: field:auction.dates,account_analytic_id:0 +msgid "Analytic Account" +msgstr "Conta Analítica" + +#. module: auction +#: help:auction.pay.buy,amount3:0 +msgid "Amount For Third Bank Statement" +msgstr "Montante para o terceiro extrato bancário" + +#. module: auction +#: view:auction.lots:0 +msgid "Buy object" +msgstr "Comprar Objeto" + +#. module: auction +#: field:auction.lots,lot_num:0 +msgid "List Number" +msgstr "Número da Lista" + +#. module: auction +#: report:buyer.list:0 +msgid "Date:" +msgstr "Data:" + +#. module: auction +#: field:auction.deposit.cost,name:0 +msgid "Cost Name" +msgstr "Nome do Custo" + +#. module: auction +#: view:auction.dates:0 +#: field:auction.dates,state:0 +#: view:auction.lots:0 +#: field:auction.lots,state:0 +#: view:report.auction:0 +#: field:report.auction,state:0 +msgid "State" +msgstr "Estado" + +#. module: auction +#: view:auction.dates:0 +msgid "First Auction Date" +msgstr "Primeira Data do Leilão" + +#. module: auction +#: selection:report.auction,month:0 +msgid "January" +msgstr "Janeiro" + +#. module: auction +#: help:auction.lot.category,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the auction " +"lot category without removing it." +msgstr "" +"Se o campo ativo é definido como Falso, ele permitirá que oculte o lote da " +"categoria leilão sem o remover." + +#. module: auction +#: view:auction.lots:0 +msgid "Ref" +msgstr "Ref" + +#. module: auction +#: field:report.auction,total_price:0 +msgid "Total Price" +msgstr "Preço Total" + +#. module: auction +#: view:auction.lots:0 +msgid "Total Adj." +msgstr "Total Adj." + +#. module: auction +#: view:auction.lots.sms.send:0 +msgid "SMS - Gateway: clickatell','Bulk SMS Send" +msgstr "Gateway de SMS: clickatell','Envio de SMS em massa" + +#. module: auction +#: help:auction.lots,costs:0 +msgid "Deposit cost" +msgstr "Custo de depósito" + +#. module: auction +#: selection:auction.lots,state:0 +#: selection:report.auction,state:0 +#: selection:report.object.encoded,state:0 +msgid "Unsold" +msgstr "Não vendido" + +#. module: auction +#: view:auction.deposit:0 +msgid "Search Auction deposit" +msgstr "Pesquisar depósito do leilão" + +#. module: auction +#: help:auction.lots,lot_num:0 +msgid "List number in depositer inventory" +msgstr "Número da lista no inventário do depósito" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Items" +msgstr "Items" + +#. module: auction +#: model:account.tax,name:auction.auction_tax5 +#: field:auction.dates,seller_costs:0 +msgid "Seller Costs" +msgstr "Custos do Vendedor" + +#. module: auction +#: view:auction.bid:0 +#: view:auction.bid_line:0 +#: view:auction.lots:0 +#: field:auction.lots,bid_lines:0 +#: model:ir.actions.report.xml,name:auction.bid_auction +#: model:ir.ui.menu,name:auction.menu_action_bid_open +msgid "Bids" +msgstr "Licitações" + +#. module: auction +#: field:report.auction,gross_revenue:0 +msgid "Gross Revenue" +msgstr "Receita Bruta" + +#. module: auction +#: view:auction.lots.buyer_map:0 +msgid "Buyer Map" +msgstr "Mapa do Comprador" + +#. module: auction +#: field:report.object.encoded,obj_ret:0 +msgid "# obj ret" +msgstr "# obj ret" + +#. module: auction +#: model:ir.model,name:auction.model_auction_bid +msgid "Bid Auctions" +msgstr "Licitações" + +#. module: auction +#: help:auction.lots,image:0 +msgid "Object Image" +msgstr "Imagem do Objeto" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_buyer_map.py:70 +#, python-format +msgid "No buyer is set for this lot." +msgstr "Nenhum comprador está definido para este lote." + +#. module: auction +#: code:addons/auction/auction.py:578 +#, python-format +msgid "The Buyer \"%s\" has no Invoice Address." +msgstr "O comprador \"%s\" não tem um endereço de faturação" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_object_categories +msgid "Auction object Categories" +msgstr "Categorias do objeto do leilão" + +#. module: auction +#: model:ir.model,name:auction.model_auction_deposit_cost +msgid "Auction Deposit Cost" +msgstr "Custo Depósito Leilão" + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Border Form" +msgstr "Formulário do Limite do Depósito" + +#. module: auction +#: help:auction.lots,statement_id:0 +msgid "Bank statement line for given buyer" +msgstr "Linha do Extrato Bancário para um Determinado Comprador" + +#. module: auction +#: field:auction.lot.category,aie_categ:0 +msgid "Category" +msgstr "Categoria" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_view_auction_buyer_map +msgid "Map buyer username to Partners" +msgstr "Mapa do comprador nome de utilizador para Parceiros" + +#. module: auction +#: view:auction.lots:0 +msgid "Search Auction Lots" +msgstr "Pesquisar lotes do leilão" + +#. module: auction +#: field:report.auction,net_revenue:0 +msgid "Net Revenue" +msgstr "Receita líquida" + +#. module: auction +#: field:report.auction.adjudication,state:0 +#: field:report.object.encoded,state:0 +msgid "Status" +msgstr "Estado" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_lots_sms_send +msgid "SMS Send" +msgstr "Enviar SMS" + +#. module: auction +#: selection:report.auction,month:0 +msgid "August" +msgstr "Agosto" + +#. module: auction +#: view:auction.lots:0 +#: selection:auction.lots,state:0 +#: view:report.auction:0 +#: selection:report.auction,state:0 +msgid "Sold" +msgstr "Vendido" + +#. module: auction +#: selection:report.auction,month:0 +msgid "June" +msgstr "Junho" + +#. module: auction +#: code:addons/auction/wizard/auction_catalog_flagey_report.py:63 +#, python-format +msgid "No Lots belong to this Auction Date" +msgstr "Sem Lotes pertencentes a esta Data do Leilão" + +#. module: auction +#: view:auction.lots:0 +msgid "New Object" +msgstr "Novo Objeto" + +#. module: auction +#: selection:report.auction,month:0 +msgid "October" +msgstr "Outubro" + +#. module: auction +#: field:auction.bid_line,name:0 +msgid "Bid date" +msgstr "Data da Licitação" + +#. module: auction +#: field:auction.dates,acc_expense:0 +msgid "Expense Account" +msgstr "Conta de Despesas" + +#. module: auction +#: model:ir.ui.menu,name:auction.menu_wizard_emporte +msgid "Deliveries Management" +msgstr "Gestão de Entregas" + +#. module: auction +#: field:auction.lots,obj_desc:0 +msgid "Object Description" +msgstr "Descrição do Objeto" + +#. module: auction +#: field:auction.lots,artist2_id:0 +msgid "Artist/Author2" +msgstr "Artista / Autor2" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Line1" +msgstr "Linha1" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_make_invoice_buyer +msgid "Make Invoice for Buyer" +msgstr "Criar Fatura para o Comprador" + +#. module: auction +#: field:auction.lots,gross_revenue:0 +#: field:report.object.encoded,gross_revenue:0 +msgid "Gross revenue" +msgstr "Receita Bruta" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_pay_buy +msgid "Pay objects of the buyer" +msgstr "Objetos pagos pelo comprador" + +#. module: auction +#: help:auction.dates,auction2:0 +msgid "End date of auction" +msgstr "Data de fim do leilão" + +#. module: auction +#: view:auction.lots.sms.send:0 +msgid "Send SMS" +msgstr "Enviar SMS" + +#. module: auction +#: field:auction.lots,name2:0 +msgid "Short Description (2)" +msgstr "Pequena descrição (2)" + +#. module: auction +#: report:auction.total.rml:0 +#: model:ir.ui.menu,name:auction.auction_buyers_menu +msgid "Buyers" +msgstr "Compradores" + +#. module: auction +#: view:auction.lots:0 +#: view:report.auction:0 +msgid "Object Category" +msgstr "Categoria do Objeto" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id4 +msgid "VAT 12%" +msgstr "IVA 12%" + +#. module: auction +#: view:auction.dates:0 +msgid "Buyer Invoices" +msgstr "Faturas de Compradores" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.res_w_buyer +msgid "Results with buyer" +msgstr "Resultados com o comprador" + +#. module: auction +#: field:auction.bid_line,price:0 +msgid "Maximum Price" +msgstr "Preço máximo" + +#. module: auction +#: help:auction.dates,auction1:0 +msgid "Start date of auction" +msgstr "Data de início do leilão" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_auction_move +msgid "Auction Move" +msgstr "Movimento Leilão" + +#. module: auction +#: help:auction.dates,buyer_costs:0 +msgid "Account tax for buyer" +msgstr "Imposto Conta para Comprador" + +#. module: auction +#: view:auction.dates:0 +msgid "Next Auction" +msgstr "Próximo Leilão" + +#. module: auction +#: view:auction.taken:0 +msgid "Select lots which are Sold" +msgstr "Selecionar os lotes que são vendidos" + +#. module: auction +#: field:auction.lots,statement_id:0 +msgid "Payment" +msgstr "Pagamento" + +#. module: auction +#: code:addons/auction/auction.py:571 +#: code:addons/auction/auction.py:686 +#, python-format +msgid "The object \"%s\" has no buyer assigned." +msgstr "O objeto \"%s\" não tem comprador atribuído" + +#. module: auction +#: selection:auction.deposit,method:0 +msgid "Keep until sold" +msgstr "Manter até ser vendido" + +#. module: auction +#: view:auction.dates:0 +msgid "Last Auction Date" +msgstr "Data do último leilão" + +#. module: auction +#: field:report.object.encoded,obj_num:0 +msgid "# of Encoded obj." +msgstr "Número de objetos codificados" + +#. module: auction +#: field:auction.lots,paid_vnd:0 +msgid "Seller Paid" +msgstr "Vendedor Pago" + +#. module: auction +#: view:board.board:0 +#: view:report.object.encoded:0 +msgid "Objects statistics" +msgstr "Estatísticas dos Objetos" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of sellers:" +msgstr "# de vendedores" + +#. module: auction +#: field:report.auction,date:0 +#: field:report.object.encoded,date:0 +msgid "Create Date" +msgstr "Data de Criação" + +#. module: auction +#: view:auction.dates:0 +#: selection:report.object.encoded,state:0 +msgid "Invoiced" +msgstr "Faturado" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of items taken away:" +msgstr "Número de items retirados:" + +#. module: auction +#: model:ir.model,name:auction.model_report_auction +#: view:report.auction:0 +msgid "Auction's Summary" +msgstr "Resumos de Leilões" + +#. module: auction +#: report:buyer.list:0 +msgid "%)" +msgstr "%)" + +#. module: auction +#: view:auction.lots:0 +msgid "Buyer Information" +msgstr "Informação sobre o comprador" + +#. module: auction +#: help:auction.lots,gross_revenue:0 +msgid "Buyer Price - Seller Price" +msgstr "Preço Comprador - Preço Vendedor" + +#. module: auction +#: field:auction.lots.make.invoice,objects:0 +#: field:auction.lots.make.invoice.buyer,objects:0 +msgid "# of objects" +msgstr "# de objetos" + +#. module: auction +#: field:auction.lots,lot_est2:0 +msgid "Maximum Estimation" +msgstr "Estimativa máxima" + +#. module: auction +#: field:auction.lots,buyer_price:0 +msgid "Buyer price" +msgstr "Preço do Comprador" + +#. module: auction +#: view:auction.lots:0 +msgid "Bids Details" +msgstr "Pormenores das licitações" + +#. module: auction +#: field:auction.lots,is_ok:0 +msgid "Buyer's payment" +msgstr "Pagamento do Comprador" + +#. module: auction +#: view:auction.dates:0 +msgid "End of auction" +msgstr "Fim do Leilão" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_catalog_flagey_wizard +#: model:ir.model,name:auction.model_auction_catalog_flagey +msgid "Auction Catalog Flagey" +msgstr "Catálogo de leilão flagey" + +#. module: auction +#: selection:report.auction,month:0 +msgid "March" +msgstr "Março" + +#. module: auction +#: model:account.tax,name:auction.auction_tax4 +msgid "Seller Costs1" +msgstr "Custos do vendedor 1" + +#. module: auction +#: field:auction.deposit,create_uid:0 +#: field:auction.lots,create_uid:0 +msgid "Created by" +msgstr "Criado por" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of buyers:" +msgstr "Número de compradores:" + +#. module: auction +#: field:auction.lots,costs:0 +msgid "Indirect costs" +msgstr "Custos indiretos" + +#. module: auction +#: help:auction.dates,seller_costs:0 +msgid "Account tax for seller" +msgstr "Imposto Conta para Vendedor" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_invoice.py:67 +#: code:addons/auction/wizard/auction_lots_numerotate.py:103 +#: code:addons/auction/wizard/auction_lots_numerotate.py:129 +#, python-format +msgid "UserError" +msgstr "Erro do Utilizador" + +#. module: auction +#: field:auction.dates,journal_seller_id:0 +msgid "Seller Journal" +msgstr "Diário do Vendedor" + +#. module: auction +#: view:auction.dates:0 +#: selection:auction.dates,state:0 +#: view:auction.lots:0 +#: selection:auction.lots,state:0 +#: view:report.auction:0 +#: selection:report.auction,state:0 +#: selection:report.auction.adjudication,state:0 +#: selection:report.object.encoded,state:0 +msgid "Draft" +msgstr "Rascunho" + +#. module: auction +#: view:auction.dates:0 +msgid "Invoiced Auction" +msgstr "Leilão faturado" + +#. module: auction +#: view:auction.catalog.flagey:0 +msgid "Print" +msgstr "Imprimir" + +#. module: auction +#: view:auction.lots:0 +#: view:report.auction:0 +msgid "Type" +msgstr "Tipo" + +#. module: auction +#: help:aie.category,child_ids:0 +msgid "children aie category" +msgstr "" + +#. module: auction +#: help:auction.lots,ach_emp:0 +msgid "When state is Taken Away, this field is marked as True" +msgstr "" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_taken +msgid "Gestion emporte" +msgstr "Substituição de Gestão" + +#. module: auction +#: view:auction.bid:0 +#: report:auction.bids:0 +#: view:auction.dates:0 +#: view:auction.lots:0 +#: field:auction.lots,auction_id:0 +#: report:auction.total.rml:0 +#: model:ir.module.category,name:auction.module_category_auction +#: model:ir.ui.menu,name:auction.auction_menu_root +#: view:report.auction:0 +msgid "Auction" +msgstr "Leilão" + +#. module: auction +#: view:auction.lot.category:0 +#: model:ir.ui.menu,name:auction.menu_auction_object_cat +msgid "Object Categories" +msgstr "Categoria de objetos" + +#. module: auction +#: field:auction.lots.sms.send,app_id:0 +msgid "API ID" +msgstr "ID da API" + +#. module: auction +#: field:auction.bid,name:0 +#: field:auction.bid_line,bid_id:0 +msgid "Bid ID" +msgstr "ID da licitação" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Min Estimate:" +msgstr "Estimativa mínima:" + +#. module: auction +#: selection:report.auction,month:0 +msgid "September" +msgstr "Setembro" + +#. module: auction +#: field:report.auction,net_margin:0 +msgid "Net Margin" +msgstr "Margem líquida" + +#. module: auction +#: field:auction.lots,vnd_lim_net:0 +msgid "Net limit ?" +msgstr "Net Limite?" + +#. module: auction +#: field:aie.category,child_ids:0 +msgid "unknown" +msgstr "desconhecido" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of commissions:" +msgstr "Número de comissões" + +#. module: auction +#: field:auction.bid_line,auction:0 +#: field:auction.dates,name:0 +msgid "Auction Name" +msgstr "Nome do Leilão" + +#. module: auction +#: model:account.tax,name:auction.tax_seller +msgid "Seller Costs (12%)" +msgstr "Custos Vendedor (12%)" + +#. module: auction +#: field:aie.category,parent_id:0 +msgid "Parent aie Category" +msgstr "" + +#. module: auction +#: view:report.auction:0 +msgid "Auction Summary" +msgstr "Resumo do leilão" + +#. module: auction +#: view:auction.lots.make.invoice:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid "(Keep empty for automatic number)" +msgstr "(Manter vazio para numerar automaticamente)" + +#. module: auction +#: code:addons/auction/auction.py:578 +#, python-format +msgid "No Invoice Address" +msgstr "Sem endereço de faturação" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.v_huissier +msgid "Bailiffs Listing" +msgstr "Listagem de oficiais de justiça" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_numerotate.py:103 +#: code:addons/auction/wizard/auction_lots_numerotate.py:129 +#, python-format +msgid "This record does not exist !" +msgstr "Este registo não existe!" + +#. module: auction +#: field:auction.pay.buy,total:0 +msgid "Total Amount" +msgstr "Montante total" + +#. module: auction +#: help:auction.pay.buy,amount:0 +msgid "Amount For First Bank Statement" +msgstr "Montante para primeiro extrato bancário" + +#. module: auction +#: model:ir.model,name:auction.model_report_auction_object_date +#: view:report.auction.object.date:0 +msgid "Objects per day" +msgstr "Objetos, por dia" + +#. module: auction +#: help:auction.lots,author_right:0 +msgid "Account tax for author commission" +msgstr "" + +#. module: auction +#: model:product.template,name:auction.monproduit_product_template +msgid "Oeuvres a 21%" +msgstr "Obras a 21%" + +#. module: auction +#: field:report.object.encoded,adj:0 +msgid "Adj." +msgstr "Adj." + +#. module: auction +#: field:auction.lot.history,name:0 +#: field:report.auction.adjudication,date:0 +msgid "Date" +msgstr "Data" + +#. module: auction +#: field:auction.lots,obj_ret:0 +msgid "Price retired" +msgstr "Preço retirado" + +#. module: auction +#: view:auction.deposit:0 +msgid "Extra Costs" +msgstr "Custos extras" + +#. module: auction +#: view:auction.lots.buyer_map:0 +msgid "Map " +msgstr "Mapa " + +#. module: auction +#: field:auction.lots,paid_ach:0 +msgid "Buyer Invoice Reconciled" +msgstr "Fatura de comprador reconciliada" + +#. module: auction +#: field:auction.deposit,date_dep:0 +msgid "Deposit date" +msgstr "Data de depósito" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.id_deposit +msgid "Deposits" +msgstr "Depósitos" + +#. module: auction +#: field:auction.deposit,specific_cost_ids:0 +msgid "Specific Costs" +msgstr "Custos específicos" + +#. module: auction +#: report:buyer.list:0 +msgid "To pay (" +msgstr "Para pagar (" + +#. module: auction +#: model:account.tax,name:auction.tax_buyer +msgid "Buyer Costs (20%)" +msgstr "Custos Comprador (20%)" + +#. module: auction +#: model:ir.ui.menu,name:auction.menu_board_auction +msgid "Dashboard" +msgstr "Painel de Controlo" + +#. module: auction +#: view:auction.dates:0 +#: model:ir.actions.act_window,name:auction.action_auction_dates_next +#: model:ir.ui.menu,name:auction.auction_date_menu +#: model:ir.ui.menu,name:auction.menu_auction_dates_next1 +msgid "Auctions" +msgstr "Leilões" + +#. module: auction +#: view:board.board:0 +msgid "Total Adjudications" +msgstr "Adjudicação Total" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_make_invoice +msgid "Make invoice" +msgstr "Criar Fatura" + +#. module: auction +#: selection:report.auction,month:0 +msgid "November" +msgstr "Novembro" + +#. module: auction +#: view:auction.dates:0 +#: view:auction.lots:0 +msgid "History" +msgstr "Histórico" + +#. module: auction +#: field:aie.category,code:0 +msgid "Code" +msgstr "Código" + +#. module: auction +#: report:auction.code_bar_lot:0 +msgid "Nr." +msgstr "Nº" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.v_report_barcode_lot +msgid "Barcode batch" +msgstr "Código de Barras do Lote" + +#. module: auction +#: report:report.auction.buyer.result:0 +msgid "Num" +msgstr "Nº" + +#. module: auction +#: view:auction.catalog.flagey:0 +#: view:auction.taken:0 +msgid "Cancel" +msgstr "Cancelar" + +#. module: auction +#: view:auction.lots:0 +msgid "Buyer's Payment History" +msgstr "Histórico de Pagamento do Comprador" + +#. module: auction +#: view:auction.artists:0 +#: field:auction.artists,biography:0 +msgid "Biography" +msgstr "Biografia" + +#. module: auction +#: view:auction.lots:0 +msgid "Inventory" +msgstr "Inventário" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Pay" +msgstr "Pagar" + +#. module: auction +#: view:auction.lots.make.invoice:0 +msgid "Create Invoices for Seller" +msgstr "Criar faturas para o vendedor" + +#. module: auction +#: field:report.object.encoded,obj_margin:0 +msgid "Net margin" +msgstr "Margem líquida" + +#. module: auction +#: help:auction.lots,lot_local:0 +msgid "Auction Location" +msgstr "Local do leilão" + +#. module: auction +#: view:auction.dates:0 +msgid "Analytic" +msgstr "Analítica" + +#. module: auction +#: help:auction.lots,paid_ach:0 +msgid "" +"When state of Buyer Invoice is 'Paid', this field is selected as True." +msgstr "" +"Quando o estado da fatura do Comprador está 'Pago', este campo é selecionado " +"como True." + +#. module: auction +#: report:bids.lots:0 +#: report:bids.phones.details:0 +msgid "Cat.N" +msgstr "Cat.N" + +#. module: auction +#: selection:auction.deposit,method:0 +msgid "Decrease limit of 10%" +msgstr "Diminuição limite de 10%" + +#. module: auction +#: field:auction.dates,adj_total:0 +#: field:report.auction.adjudication,adj_total:0 +msgid "Total Adjudication" +msgstr "Adjudicação total" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_lots_make_invoice_buyer +msgid "Invoice Buyer objects" +msgstr "Fatura de objetos comprados" + +#. module: auction +#: view:report.auction:0 +msgid "My Auction" +msgstr "O meu leilão" + +#. module: auction +#: help:auction.lots,gross_margin:0 +msgid "(Gross Revenue*100.0)/ Object Price" +msgstr "(Rendimentos Brutos*100.0)/ Preço objecto" + +#. module: auction +#: field:auction.bid,contact_tel:0 +msgid "Contact Number" +msgstr "Número para contato" + +#. module: auction +#: view:auction.lots:0 +msgid "Price" +msgstr "Preço" + +#. module: auction +#: report:bids.phones.details:0 +msgid "-" +msgstr "-" + +#. module: auction +#: view:auction.deposit:0 +msgid "Photos" +msgstr "Fotos" + +#. module: auction +#: field:auction.lots.make.invoice,number:0 +#: field:auction.lots.make.invoice.buyer,number:0 +msgid "Invoice Number" +msgstr "Número de Fatura" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_buyer_map.py:87 +#: code:addons/auction/wizard/auction_lots_numerotate.py:77 +#: code:addons/auction/wizard/auction_lots_numerotate.py:95 +#: code:addons/auction/wizard/auction_lots_numerotate.py:122 +#: code:addons/auction/wizard/auction_lots_numerotate.py:137 +#: code:addons/auction/wizard/auction_lots_numerotate.py:173 +#, python-format +msgid "Active IDs not Found" +msgstr "IDs ativos não encontrados" + +#. module: auction +#: code:addons/auction/wizard/auction_aie_send.py:166 +#: code:addons/auction/wizard/auction_aie_send_result.py:117 +#, python-format +msgid "Connection to WWW.Auction-in-Europe.com failed !" +msgstr "A ligação a www.action-in-europe.com falhou!" + +#. module: auction +#: model:ir.actions.act_window,name:auction.act_auction_lot_open_bid +#: model:ir.actions.act_window,name:auction.action_bid_open +msgid "Open Bids" +msgstr "Licitações abertas" + +#. module: auction +#: model:ir.actions.act_window,name:auction.open_board_auction +msgid "Auction board" +msgstr "" + +#. module: auction +#: field:aie.category,name:0 +#: view:auction.artists:0 +#: report:bids.lots:0 +msgid "Name" +msgstr "Nome" + +#. module: auction +#: field:auction.deposit,name:0 +#: view:auction.lots:0 +#: field:auction.lots,bord_vnd_id:0 +msgid "Depositer Inventory" +msgstr "Inventório do Depósito" + +#. module: auction +#: code:addons/auction/auction.py:692 +#, python-format +msgid "The Buyer has no Invoice Address." +msgstr "O comprador não tem endereço de faturação." + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction_adjudication_tree +msgid "Auction Adjudication Report" +msgstr "" + +#. module: auction +#: field:auction.lots.sms.send,user:0 +msgid "Login" +msgstr "Iniciar sessão" + +#. module: auction +#: model:ir.model,name:auction.model_report_auction_adjudication +msgid "report_auction_adjudication" +msgstr "report_auction_adjudication" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.seller_lots_3 +msgid "Seller Form" +msgstr "Formulário do Vendedor" + +#. module: auction +#: field:auction.lots,lot_type:0 +#: field:report.auction,lot_type:0 +msgid "Object category" +msgstr "Categoria do objeto" + +#. module: auction +#: view:auction.taken:0 +msgid "Mark Lots" +msgstr "Marca de Lotes" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots +msgid "Auction Object" +msgstr "Ação Objeto" + +#. module: auction +#: field:auction.lots,obj_num:0 +#: field:auction.lots.enable,confirm_en:0 +msgid "Catalog Number" +msgstr "Número de catálogo" + +#. module: auction +#: view:auction.dates:0 +msgid "Accounting" +msgstr "Contabilidade" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.bid_phone +msgid "Bids phones" +msgstr "Oferta de telefones" + +#. module: auction +#: field:report.auction,avg_estimation:0 +msgid "Avg estimation" +msgstr "Estimativa média" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Debit:" +msgstr "Débito:" + +#. module: auction +#: code:addons/auction/wizard/auction_aie_send.py:166 +#: code:addons/auction/wizard/auction_aie_send_result.py:116 +#: code:addons/auction/wizard/auction_lots_buyer_map.py:70 +#: code:addons/auction/wizard/auction_lots_numerotate.py:145 +#, python-format +msgid "Error" +msgstr "Erro" + +#. module: auction +#: field:auction.lots,author_right:0 +msgid "Author rights" +msgstr "Direitos de autor" + +#. module: auction +#: view:auction.bid:0 +#: view:auction.dates:0 +#: view:auction.deposit:0 +#: view:auction.lots:0 +#: view:report.auction:0 +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: auction +#: view:report.auction:0 +msgid "Auction during last month." +msgstr "Leilão durante o último mês." + +#. module: auction +#: help:auction.dates,journal_id:0 +msgid "Account journal for buyer" +msgstr "Diário da conta para o comprador" + +#. module: auction +#: field:auction.bid,bid_lines:0 +#: report:auction.bids:0 +#: report:bids.lots:0 +#: model:ir.model,name:auction.model_auction_bid_line +msgid "Bid" +msgstr "Licitação" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Total net rev." +msgstr "Receita líquida total" + +#. module: auction +#: view:auction.lots.buyer_map:0 +msgid "Update" +msgstr "Atualizar" + +#. module: auction +#: report:auction.total.rml:0 +#: model:ir.ui.menu,name:auction.auction_seller_menu +msgid "Sellers" +msgstr "Vendedores" + +#. module: auction +#: view:auction.dates:0 +msgid "Draft Auction" +msgstr "Rascunho Leilão" + +#. module: auction +#: help:auction.lots,lot_est2:0 +msgid "Maximum Estimate Price" +msgstr "Preço máximo estimado" + +#. module: auction +#: view:auction.lots:0 +msgid "Notes" +msgstr "Notas" + +#. module: auction +#: view:auction.lots.auction.move:0 +msgid "Move to Auction date" +msgstr "Mudar para data de Leilão" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of unsold items:" +msgstr "Número de items por vender" + +#. module: auction +#: view:auction.dates:0 +msgid "Create Invoices" +msgstr "Criar Faturas" + +#. module: auction +#: field:auction.bid,auction_id:0 +#: view:auction.dates:0 +#: field:auction.lots.auction.move,auction_id:0 +msgid "Auction Date" +msgstr "Data de leilão" + +#. module: auction +#: report:auction.code_bar_lot:0 +msgid ", ID" +msgstr ", ID" + +#. module: auction +#: report:buyer.list:0 +msgid "Adj.(" +msgstr "" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.lot_list_inv +msgid "Lots List - Landscape" +msgstr "Lista de Lotes (na horizontal)" + +#. module: auction +#: view:auction.artists:0 +msgid "Author/Artist" +msgstr "Autor / Artista" + +#. module: auction +#: field:auction.lots,ach_login:0 +#: field:auction.lots.buyer_map,ach_login:0 +msgid "Buyer Username" +msgstr "Nome de utilizador do comprador" + +#. module: auction +#: field:auction.lot.category,priority:0 +msgid "Priority" +msgstr "Prioridade" + +#. module: auction +#: view:board.board:0 +#: model:ir.actions.act_window,name:auction.action_report_latest_objects_tree +msgid "Latest objects" +msgstr "Objetos mais recentes" + +#. module: auction +#: field:auction.lots,lot_local:0 +msgid "Location" +msgstr "Localização" + +#. module: auction +#: view:report.auction:0 +msgid "Month -1" +msgstr "Mês -1" + +#. module: auction +#: help:auction.lots,is_ok:0 +msgid "When buyer pay for bank statement', this field is marked" +msgstr "" +"Quando o comprador pagar por extrato bancário', este campo está marcado" + +#. module: auction +#: field:auction.lots,ach_emp:0 +msgid "Taken Away" +msgstr "Retirados" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Total gross rev." +msgstr "Receita bruta total" + +#. module: auction +#: help:auction.lots,lot_est1:0 +msgid "Minimum Estimate Price" +msgstr "Preço mínimo estimado" + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Date" +msgstr "Data do Depósito" + +#. module: auction +#: code:addons/auction/wizard/auction_lots_numerotate.py:145 +#, python-format +msgid "This lot does not exist !" +msgstr "Este lote não existe !" + +#. module: auction +#: selection:report.auction,month:0 +msgid "July" +msgstr "Julho" + +#. module: auction +#: field:auction.bid_line,call:0 +msgid "To be Called" +msgstr "Para ser Cancelado" + +#. module: auction +#: view:auction.lots:0 +#: model:ir.actions.act_window,name:auction.action_report_auction_lots_estimation_adj_category_tree +msgid "Min est/Adj/Max est" +msgstr "Estimativa mínima/Preço de adjudicação/Estimativa máxima" + +#. module: auction +#: field:auction.lots,lot_est1:0 +msgid "Minimum Estimation" +msgstr "Estimativa mínima" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_sms_send +msgid "Sms send " +msgstr "Enviar SMS " + +#. module: auction +#: view:auction.lots.auction.move:0 +#: model:ir.actions.act_window,name:auction.action_auction_lots_auction_move +msgid "Change Auction Date" +msgstr "Mudar data de leilão" + +#. module: auction +#: field:auction.artists,birth_death_dates:0 +msgid "Lifespan" +msgstr "Período de validade" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,method:0 +msgid "Withdrawned method" +msgstr "Método de Arrebatamento" + +#. module: auction +#: view:auction.dates:0 +msgid "Buyer Commissions" +msgstr "Comissões Comprador" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction +#: model:ir.ui.menu,name:auction.menu_report_auction +msgid "Auction Analysis" +msgstr "Análise Leilão" + +#. module: auction +#: code:addons/auction/wizard/auction_pay_buy.py:80 +#, python-format +msgid "Payment aborted !" +msgstr "Pagamento Cancelado !" + +#. module: auction +#: field:auction.lot.history,price:0 +msgid "Withdrawn price" +msgstr "Preço Final" + +#. module: auction +#: view:auction.dates:0 +msgid "Beginning of the auction" +msgstr "Inicio do leilão" + +#. module: auction +#: help:auction.pay.buy,statement_id3:0 +msgid "Third Bank Statement For Buyer" +msgstr "" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,month:0 +#: field:report.auction.object.date,month:0 +msgid "Month" +msgstr "Mês" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Max Estimate:" +msgstr "Estimativa máxima" + +#. module: auction +#: view:auction.lots:0 +msgid "Statistical" +msgstr "Estatística" + +#. module: auction +#: model:ir.model,name:auction.model_auction_deposit +msgid "Auction Deposit Border" +msgstr "" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_object_encoded_tree +msgid "Object statistics" +msgstr "Estatísticas do Objeto" + +#. module: auction +#: help:auction.lots,net_margin:0 +msgid "(Net Revenue * 100)/ Object Price" +msgstr "(Receita líquida * 100) / Preço do objeto" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lot_history +msgid "Lot History" +msgstr "Histórico do Lote" + +#. module: auction +#: view:auction.lots.make.invoice:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid "Create invoices" +msgstr "Criar Faturas" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id5 +msgid "VAT 5%" +msgstr "IVA 5%" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_buyer_map +msgid "Map Buyer" +msgstr "" + +#. module: auction +#: report:buyer.list:0 +msgid "Lot" +msgstr "Lote" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction_object_date_tree +msgid "Auction Object Date" +msgstr "Data da ação do objeto" + +#. module: auction +#: model:ir.model,name:auction.model_auction_artists +msgid "auction.artists" +msgstr "auction.artists" + +#. module: auction +#: field:report.auction,avg_price:0 +msgid "Avg Price." +msgstr "Preço médio" + +#. module: auction +#: help:auction.pay.buy,statement_id2:0 +msgid "Second Bank Statement For Buyer" +msgstr "" + +#. module: auction +#: field:auction.dates,journal_id:0 +msgid "Buyer Journal" +msgstr "Diário do Comprador" + +#. module: auction +#: selection:auction.lots,state:0 +#: selection:report.object.encoded,state:0 +msgid "Paid" +msgstr "Pago" + +#. module: auction +#: report:bids.lots:0 +#: report:bids.phones.details:0 +msgid "Phone" +msgstr "Telefone" + +#. module: auction +#: field:auction.lot.category,active:0 +msgid "Active" +msgstr "Ativo" + +#. module: auction +#: view:auction.dates:0 +msgid "Exposition Dates" +msgstr "" + +#. module: auction +#: model:account.tax,name:auction.auction_tax1 +msgid "TVA" +msgstr "IVA" + +#. module: auction +#: field:auction.lots,important:0 +msgid "To be Emphatized" +msgstr "Para realçar" + +#. module: auction +#: report:buyer.list:0 +msgid "Total:" +msgstr "Total:" + +#. module: auction +#: model:account.tax,name:auction.auction_tax2 +msgid "TVA1" +msgstr "IVA 1" + +#. module: auction +#: view:report.auction.object.date:0 +msgid "Objects per Day" +msgstr "Objetos por Dia" + +#. module: auction +#: field:auction.dates,seller_invoice_history:0 +#: field:auction.lots,sel_inv_id:0 +#: view:auction.lots.make.invoice:0 +msgid "Seller Invoice" +msgstr "Fatura do comprador" + +#. module: auction +#: view:board.board:0 +msgid "Objects by day" +msgstr "Objetos por dia" + +#. module: auction +#: help:auction.dates,expo2:0 +msgid "Last exposition date for auction" +msgstr "" + +#. module: auction +#: code:addons/auction/auction.py:571 +#: code:addons/auction/auction.py:686 +#, python-format +msgid "Missed buyer !" +msgstr "Perdeu Comprador !" + +#. module: auction +#: report:auction.code_bar_lot:0 +msgid "Flagey" +msgstr "Flagey" + +#. module: auction +#: view:board.board:0 +msgid "Auction manager " +msgstr "Gestor de leilão " + +#. module: auction +#: code:addons/auction/wizard/auction_lots_invoice.py:67 +#, python-format +msgid "" +"Two different buyers for the same invoice !\n" +"Please correct this problem before invoicing" +msgstr "" +"Dois compradores diferentes para a mesma fatura!\n" +"Por favor, corrija este problema antes da faturação" + +#. module: auction +#: view:auction.dates:0 +msgid "Invoice" +msgstr "Fatura" + +#. module: auction +#: view:auction.dates:0 +msgid "Commissions" +msgstr "Comissões" + +#. module: auction +#: field:auction.lots,vnd_lim:0 +msgid "Seller limit" +msgstr "Limite de Vendedores" + +#. module: auction +#: field:auction.deposit,transfer:0 +msgid "Transfer" +msgstr "Transferência" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Line3" +msgstr "Linha3" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Line2" +msgstr "Linha2" + +#. module: auction +#: help:auction.lots,obj_ret:0 +msgid "Object Ret" +msgstr "" + +#. module: auction +#: view:report.auction.adjudication:0 +msgid "Total adjudication" +msgstr "Adjudicação Total" + +#. module: auction +#: selection:auction.deposit,method:0 +msgid "Contact the Seller" +msgstr "Contate o Vendedor" + +#. module: auction +#: field:auction.taken,lot_ids:0 +msgid "Lots Emportes" +msgstr "Importação de Lotes" + +#. module: auction +#: field:auction.lots,net_margin:0 +msgid "Net Margin (%)" +msgstr "Margem líquida (%)" + +#. module: auction +#: field:auction.lots,product_id:0 +msgid "Product" +msgstr "Artigo" + +#. module: auction +#: report:buyer.list:0 +msgid ")" +msgstr ")" + +#. module: auction +#: view:auction.lots:0 +msgid "Seller Information" +msgstr "Informação sobre o vendedor" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,lot_id:0 +#: view:auction.lots:0 +#: model:ir.actions.act_window,name:auction.action_all_objects +#: model:ir.ui.menu,name:auction.auction_all_objects_menu +msgid "Objects" +msgstr "Objetos" + +#. module: auction +#: view:auction.dates:0 +msgid "Seller Invoices" +msgstr "Faturas de vendedor" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Paid:" +msgstr "Pago:" + +#. module: auction +#: field:auction.deposit,total_neg:0 +msgid "Allow Negative Amount" +msgstr "Permitir um montante negativo" + +#. module: auction +#: help:auction.pay.buy,amount2:0 +msgid "Amount For Second Bank Statement" +msgstr "" + +#. module: auction +#: field:auction.lot.history,auction_id:0 +#: field:report.auction,auction:0 +#: field:report.auction.adjudication,name:0 +msgid "Auction date" +msgstr "Data de leilão" + +#. module: auction +#: view:auction.lots.sms.send:0 +msgid "SMS Text" +msgstr "Texto do SMS" + +#. module: auction +#: field:auction.dates,auction1:0 +msgid "First Auction Day" +msgstr "Primeiro Dia de Leilão" + +#. module: auction +#: view:auction.lots.make.invoice.buyer:0 +msgid "Create Invoices for Buyer" +msgstr "Criar faturas para o comprador" + +#. module: auction +#: model:res.groups,name:auction.group_auction_manager +msgid "Manager" +msgstr "Gestor" + +#. module: auction +#: view:auction.dates:0 +msgid "Names" +msgstr "Nomes" + +#. module: auction +#: view:auction.artists:0 +#: model:ir.ui.menu,name:auction.menu_auction_artist +msgid "Artists" +msgstr "Artistas" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Pay Objects" +msgstr "Pagar objetos" + +#. module: auction +#: help:auction.dates,expo1:0 +msgid "Beginning exposition date for auction" +msgstr "A partir da data de exposição para leilão" + +#. module: auction +#: model:ir.actions.act_window,name:auction.act_auction_lot_line_open +msgid "Open lots" +msgstr "Lotes Abertos" + +#. module: auction +#: model:ir.actions.act_window,name:auction.act_auction_lot_open_deposit +msgid "Deposit slip" +msgstr "" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_enable +msgid "Lots Enable" +msgstr "" + +#. module: auction +#: view:auction.lots:0 +msgid "Lots" +msgstr "Lotes" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_artist +msgid "Auction Artists" +msgstr "" + +#. module: auction +#: field:auction.lots,seller_price:0 +msgid "Seller price" +msgstr "Preço do Vendedor" + +#. module: auction +#: model:account.tax,name:auction.auction_tax20 +msgid "Frais de vente0" +msgstr "" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.buy_id_list +msgid "Buyer List" +msgstr "Lista de Comprador" + +#. module: auction +#: report:buyer.list:0 +msgid "Buyer costs(" +msgstr "Custos do Comprador(" + +#. module: auction +#: field:auction.pay.buy,statement_id1:0 +#: field:auction.pay.buy,statement_id2:0 +#: field:auction.pay.buy,statement_id3:0 +msgid "Statement" +msgstr "Extrato" + +#. module: auction +#: help:auction.lots,seller_price:0 +#: help:auction.lots.make.invoice,amount:0 +msgid "Seller Price" +msgstr "Preço Vendedor" + +#. module: auction +#: model:account.tax,name:auction.auction_tax6 +msgid "Frais de vente" +msgstr "Taxas de Vendas" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id1 +msgid "VAT 1%" +msgstr "IVA 1%" + +#. module: auction +#: model:account.tax,name:auction.auction_tax +msgid "Droit d'auteur" +msgstr "Direitos de autor" + +#. module: auction +#: field:auction.dates,expo1:0 +msgid "First Exposition Day" +msgstr "Primeiro Dia de Exposição" + +#. module: auction +#: field:report.auction.object.date,name:0 +msgid "Created date" +msgstr "Data Criada" + +#. module: auction +#: help:auction.lots,bord_vnd_id:0 +msgid "" +"Provide deposit information: seller, Withdrawned Method, Object, Deposit " +"Costs" +msgstr "" + +#. module: auction +#: field:auction.lots,net_revenue:0 +#: field:report.object.encoded,net_revenue:0 +msgid "Net revenue" +msgstr "Receitas líquidas" + +#. module: auction +#: code:addons/auction/wizard/auction_catalog_flagey_report.py:63 +#: code:addons/auction/wizard/auction_pay_buy.py:89 +#, python-format +msgid "Error!" +msgstr "Erro !" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_latest_doposit_tree +msgid "Latest Deposits" +msgstr "Últimos Depósitos" + +#. module: auction +#: report:auction.total.rml:0 +msgid "# of items:" +msgstr "Número de items" + +#. module: auction +#: model:account.tax,name:auction.tax_buyer_author +msgid "Author rights (4%)" +msgstr "Direitos de autor (4%)" + +#. module: auction +#: field:report.object.encoded,estimation:0 +msgid "Estimation" +msgstr "Estimativa" + +#. module: auction +#: view:auction.taken:0 +msgid "OK" +msgstr "OK" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.buyer_form_id +msgid "Buyer Form" +msgstr "Formulário do Comprador" + +#. module: auction +#: field:auction.bid,partner_id:0 +msgid "Buyer Name" +msgstr "Nome do comprador" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,day:0 +msgid "Day" +msgstr "Dia" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_auction_lots_make_invoice +msgid "Invoice Seller objects" +msgstr "Faturas de Objetos Vendidos" + +#. module: auction +#: field:auction.lots,gross_margin:0 +msgid "Gross Margin (%)" +msgstr "Margem bruta (%)" + +#. module: auction +#: selection:auction.dates,state:0 +#: selection:report.auction.adjudication,state:0 +msgid "Closed" +msgstr "Encerrado" + +#. module: auction +#: view:auction.dates:0 +msgid "Search Next Auction Dates" +msgstr "Procurar próximas datas de leilões" + +#. module: auction +#: view:auction.catalog.flagey:0 +msgid "Print Auction Catalog Flagey Report..." +msgstr "" + +#. module: auction +#: field:auction.lots,ach_avance:0 +msgid "Buyer Advance" +msgstr "Adiantamento do Comprador" + +#. module: auction +#: field:auction.lots,obj_comm:0 +msgid "Commission" +msgstr "Comissão" + +#. module: auction +#: view:board.board:0 +msgid "Min/Adj/Max" +msgstr "Min/adj/Max" + +#. module: auction +#: view:auction.catalog.flagey:0 +msgid "Catalog Flagey Report" +msgstr "" + +#. module: auction +#: help:auction.lots,obj_price:0 +msgid "Object Price" +msgstr "Preço do objeto" + +#. module: auction +#: view:auction.bid:0 +msgid "Bids Lines" +msgstr "" + +#. module: auction +#: view:auction.lots:0 +msgid "Catalog" +msgstr "Catálogo" + +#. module: auction +#: help:auction.lots,auction_id:0 +msgid "Auction for object" +msgstr "Leilão por objeto" + +#. module: auction +#: field:auction.deposit.cost,account:0 +msgid "Destination Account" +msgstr "Conta de destino" + +#. module: auction +#: model:ir.ui.menu,name:auction.auction_config_menu +msgid "Configuration" +msgstr "Configuração" + +#. module: auction +#: model:ir.actions.act_window,name:auction.action_report_auction_object_date_tree_my +msgid "My Auction Object Date" +msgstr "" + +#. module: auction +#: code:addons/auction/wizard/auction_pay_buy.py:80 +#, python-format +msgid "" +"You should pay all the total: \"%.2f\" are missing to accomplish the payment." +msgstr "" +"Deve pagar a totalidade: \"%.2f\" estão em falta para realizar o pagamento." + +#. module: auction +#: model:ir.model,name:auction.model_auction_pay_buy +msgid "Pay buy" +msgstr "Pagar Compra" + +#. module: auction +#: model:ir.ui.menu,name:auction.auction_outils_menu +msgid "Tools Bar Codes" +msgstr "Ferramenta do Código de Barras" + +#. module: auction +#: field:auction.deposit.cost,deposit_id:0 +msgid "Deposit" +msgstr "Depósito" + +#. module: auction +#: field:auction.dates,expo2:0 +msgid "Last Exposition Day" +msgstr "Último Dia de Exposição" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lots_able +msgid "Lots able" +msgstr "" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id3 +msgid "VAT 10%" +msgstr "IVA 10%" + +#. module: auction +#: field:auction.artists,name:0 +msgid "Artist/Author Name" +msgstr "Artista/Nome do Autor" + +#. module: auction +#: selection:report.auction,month:0 +msgid "December" +msgstr "Dezembro" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.lots,image:0 +msgid "Image" +msgstr "Imagem" + +#. module: auction +#: help:auction.lots,buyer_price:0 +#: help:auction.lots.make.invoice.buyer,amount:0 +msgid "Buyer Price" +msgstr "Preço Comprador" + +#. module: auction +#: model:ir.model,name:auction.model_auction_lot_category +msgid "Auction Lots Category" +msgstr "" + +#. module: auction +#: model:account.tax.code,name:auction.account_tax_code_id2 +msgid "VAT 20%" +msgstr "IVA 20%" + +#. module: auction +#: model:ir.model,name:auction.model_auction_payer_sel +msgid "Auction payment for seller" +msgstr "" + +#. module: auction +#: view:auction.lots:0 +#: selection:auction.lots,state:0 +msgid "Taken away" +msgstr "Retirado" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.seller_form_id +msgid "Seller List" +msgstr "Lista de vendedores" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Total adj." +msgstr "Total adj." + +#. module: auction +#: view:auction.deposit:0 +msgid "Deposit Costs" +msgstr "Custos de Depósito" + +#. module: auction +#: field:auction.lot.category,name:0 +msgid "Category Name" +msgstr "Nome da categoria" + +#. module: auction +#: report:buyer.list:0 +msgid "........." +msgstr "........." + +#. module: auction +#: view:report.auction:0 +msgid "Auction Summary tree view" +msgstr "" + +#. module: auction +#: report:report.auction.buyer.result:0 +msgid "Adj" +msgstr "Adj" + +#. module: auction +#: view:auction.dates:0 +#: model:ir.model,name:auction.model_auction_dates +msgid "Auction Dates" +msgstr "Datas de leilão" + +#. module: auction +#: model:ir.ui.menu,name:auction.menu_board_auction_open +msgid "Auction DashBoard" +msgstr "Painel Controlo do Leilão" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,user_id:0 +#: field:report.auction.adjudication,user_id:0 +#: field:report.auction.object.date,user_id:0 +#: field:report.object.encoded,user_id:0 +#: model:res.groups,name:auction.group_auction_user +msgid "User" +msgstr "Utilizador" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Payment Lines" +msgstr "Linhas de Pagamento" + +#. module: auction +#: code:addons/auction/auction.py:692 +#, python-format +msgid "Missed Address !" +msgstr "Endereço Errado !" + +#. module: auction +#: help:auction.lots,net_revenue:0 +msgid "Buyer Price - Seller Price - Indirect Cost" +msgstr "" + +#. module: auction +#: help:auction.lots,state:0 +msgid "" +" * The 'Draft' state is used when a object is encoding as a new object. " +" \n" +"* The 'Unsold' state is used when object does not sold for long time, user " +"can also set it as draft state after unsold. \n" +"* The 'Paid' state is used when user pay for the object \n" +"* The 'Sold' state is used when user buy the object." +msgstr "" + +#. module: auction +#: field:auction.artists,pseudo:0 +msgid "Pseudo" +msgstr "Pseudónimo" + +#. module: auction +#: view:auction.lots:0 +msgid "Not sold" +msgstr "Por vender" + +#. module: auction +#: model:account.tax,name:auction.auction_tax3 +#: field:auction.dates,buyer_costs:0 +msgid "Buyer Costs" +msgstr "Custos do Comprador" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Auction Date:" +msgstr "Data de Leilão" + +#. module: auction +#: view:auction.deposit:0 +msgid "Objects Description" +msgstr "Descrição Objetos" + +#. module: auction +#: field:auction.dates,buyer_invoice_history:0 +#: field:auction.lots,ach_inv_id:0 +#: view:auction.lots.make.invoice.buyer:0 +msgid "Buyer Invoice" +msgstr "Fatura do comprador" + +#. module: auction +#: report:auction.bids:0 +msgid "Tel" +msgstr "Tel" + +#. module: auction +#: field:auction.lots,artist_id:0 +msgid "Artist/Author" +msgstr "Artista/Autor" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.total_result1 +msgid "Auction Totals with lists" +msgstr "Totais Leilão com listas" + +#. module: auction +#: view:auction.deposit:0 +msgid "General Information" +msgstr "Informação Geral" + +#. module: auction +#: view:auction.lots.auction.move:0 +#: view:auction.lots.buyer_map:0 +#: view:auction.lots.make.invoice:0 +#: view:auction.lots.make.invoice.buyer:0 +#: view:auction.lots.sms.send:0 +#: view:auction.pay.buy:0 +msgid "Close" +msgstr "Fechar" + +#. module: auction +#: model:ir.model,name:auction.model_report_object_encoded +msgid "Object encoded" +msgstr "Objeto codificado" + +#. module: auction +#: view:auction.bid:0 +msgid "Search Auction Bid" +msgstr "" + +#. module: auction +#: report:bids.phones.details:0 +msgid "Est" +msgstr "Est" + +#. module: auction +#: view:auction.dates:0 +msgid "Seller Commissions" +msgstr "Comissões Vendedor" + +#. module: auction +#: view:report.object.encoded:0 +msgid "Object statistic" +msgstr "Estatística do objeto" + +#. module: auction +#: help:auction.dates,journal_seller_id:0 +msgid "Account journal for seller" +msgstr "Diário da Conta para o vendedor" + +#. module: auction +#: field:auction.dates,auction2:0 +msgid "Last Auction Day" +msgstr "Último dia de leilão" + +#. module: auction +#: code:addons/auction/wizard/auction_pay_buy.py:89 +#, python-format +msgid "No auction date for \"%s\": Please set one." +msgstr "" + +#. module: auction +#: view:auction.deposit:0 +#: field:auction.deposit,info:0 +#: report:bids.phones.details:0 +msgid "Description" +msgstr "Descrição" + +#. module: auction +#: selection:report.auction,month:0 +msgid "May" +msgstr "Maio" + +#. module: auction +#: field:auction.lots,obj_price:0 +msgid "Adjudication price" +msgstr "Preço de adjudicação" + +#. module: auction +#: field:auction.dates,acc_income:0 +msgid "Income Account" +msgstr "Conta de receitas" + +#. module: auction +#: field:auction.lots.sms.send,password:0 +msgid "Password" +msgstr "Password" + +#. module: auction +#: selection:report.auction,month:0 +msgid "February" +msgstr "Fevereiro" + +#. module: auction +#: selection:report.auction,month:0 +msgid "April" +msgstr "Abril" + +#. module: auction +#: view:auction.pay.buy:0 +msgid "Pay objects" +msgstr "Objetos Pagos" + +#. module: auction +#: view:report.object.encoded:0 +msgid "# objects" +msgstr "Número de objetos" + +#. module: auction +#: report:auction.total.rml:0 +msgid "Adjudication:" +msgstr "Adjudicação:" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.details_bids_phones +msgid "Bids per lot (phone)" +msgstr "Oferta por Lote (telefone)" + +#. module: auction +#: field:report.auction,buyer_login:0 +msgid "Buyer Login" +msgstr "Login do Comprador" + +#. module: auction +#: field:auction.deposit,tax_id:0 +msgid "Expenses" +msgstr "Despesas" + +#. module: auction +#: view:report.auction:0 +msgid "Auction during current month." +msgstr "" + +#. module: auction +#: model:ir.model,name:auction.model_auction_payer +msgid "Auction payer" +msgstr "" + +#. module: auction +#: view:report.auction:0 +msgid "Auction during current year." +msgstr "Leilão durante este ano." + +#. module: auction +#: report:auction.total.rml:0 +msgid "Auction name:" +msgstr "Nome do Leilão:" + +#. module: auction +#: view:board.board:0 +msgid "Latest deposits" +msgstr "Depósitos mais recentes" + +#. module: auction +#: model:ir.actions.report.xml,name:auction.art2 +msgid "Artists Biography" +msgstr "Biografia do Artista" + +#. module: auction +#: view:report.auction:0 +#: field:report.auction,year:0 +msgid "Year" +msgstr "Ano" + +#. module: auction +#: field:auction.lots,history_ids:0 +msgid "Auction history" +msgstr "Histórico do Leilão" + +#~ msgid "SMS - Gateway: clickatell" +#~ msgstr "SMS - Gateway: clickatell" + +#~ msgid "Provisoire" +#~ msgstr "Provisório" + +#~ msgid "Adjudication by Auction" +#~ msgstr "Adjudicação por Leilão" + +#~ msgid "Numerotation (per lot)" +#~ msgstr "Numeração (por lote)" + +#~ msgid "Antique/Books, manuscripts, eso." +#~ msgstr "Antiguidades/livros, manuscritos, etc." + +#~ msgid "Buyer invoice reconciled" +#~ msgstr "Factura do comprador reconciliada" + +#~ msgid "Objects by Auction" +#~ msgstr "Objetos por Leilão" + +#~ msgid "Antiques" +#~ msgstr "Antiguidades" + +#~ msgid "Dates" +#~ msgstr "Datas" + +#~ msgid "All objects" +#~ msgstr "Todos os objectos" + +#~ msgid "Contact" +#~ msgstr "Contacto" + +#~ msgid "Back" +#~ msgstr "Anterior" + +#~ msgid "Langage" +#~ msgstr "Linguagem" + +#~ msgid "Exit" +#~ msgstr "Sair" + +#~ msgid "Amount paid" +#~ msgstr "Montante pago" + +#~ msgid "Continue" +#~ msgstr "Continuar" + +#~ msgid "Retry" +#~ msgstr "Repetir" + +#~ msgid "The VAT doesn't seem to be correct." +#~ msgstr "O IVA não parece estar correcto." + +#~ msgid "Error ! You can not create recursive associated members." +#~ msgstr "Erro! Não pode criar membros associados recursivamente." + +#~ msgid "Total margin" +#~ msgstr "Margem Total" + +#~ msgid "Definitive (ordre catalogue)" +#~ msgstr "Definitivo (Catálogo de Ordem)" + +#~ msgid "My Encoded Objects Per Day" +#~ msgstr "Meus Objectos Codificacdos Por Dia" + +#~ msgid "Lot history" +#~ msgstr "Histórico de Lote" + +#~ msgid "Bids line" +#~ msgstr "Linha de Ofertas" + +#~ msgid "Antique/Tin / Copper wares" +#~ msgstr "Antiguidade/Lata/Mercadorias de cobre" + +#~ msgid "Mark as taken away" +#~ msgstr "Marcar como retirado" + +#~ msgid "Statements" +#~ msgstr "Extratos" + +#~ msgid "Unclassifieds" +#~ msgstr "Desclassificados" + +#~ msgid "Object Type" +#~ msgstr "Tipo de Objecto" + +#~ msgid "Contemporary Art" +#~ msgstr "Arte Contemporânea" + +#~ msgid "No of sellers" +#~ msgstr "Nº de vendedores" + +#~ msgid "ned" +#~ msgstr "ned" + +#~ msgid "Net margin (%)" +#~ msgstr "Margem de Net (%)" + +#~ msgid "Buyer's auction for all months" +#~ msgstr "Leilão do Comprador por todos os meses" + +#~ msgid "Cont. Art/Painting" +#~ msgstr "Cont. Arte/Pintura" + +#~ msgid "Unsold objects" +#~ msgstr "Objectos não Bendidos" + +#~ msgid "Sold Objects" +#~ msgstr "Objectos Vendidos" + +#~ msgid "Sum net margin" +#~ msgstr "Somar margem de net" + +#~ msgid "Inventory Number" +#~ msgstr "Número do Inventário" + +#~ msgid "Antique/Cartoons" +#~ msgstr "Antiguidade/Cartoons" + +#~ msgid "Error ! You cannot create recursive Hierarchy of Employees." +#~ msgstr "Erro ! Não pode criar Hierarquias de Funcionários recursivamente." + +#~ msgid "Artist/Author 2" +#~ msgstr "Artista/Autor 2" + +#~ msgid "Auction Objects" +#~ msgstr "Objectos do Leilão" + +#~ msgid "Depositer's statistics" +#~ msgstr "Estatisticas do Depositante" + +#~ msgid "Buyer information" +#~ msgstr "Informação do Comprador" + +#~ msgid "auction.dates" +#~ msgstr "auction.dates" + +#~ msgid "My Latest Deposits" +#~ msgstr "Meus Últimos Depósitos" + +#~ msgid "Buyer's Revenues" +#~ msgstr "Lucros do Comprador" + +#~ msgid "eng" +#~ msgstr "eng" + +#~ msgid "Bulk SMS send" +#~ msgstr "Enviar um Volume de SMS" + +#~ msgid "fr" +#~ msgstr "FR" + +#~ msgid "Antique/Old weapons and militaria" +#~ msgstr "Antiguidade/Velhas armas e militaria" + +#~ msgid "Antique/Oriental Arts/Chineese furnitures" +#~ msgstr "Antigo/Arte Oriental/Móveis Chineses" + +#~ msgid "Avg. Est" +#~ msgstr "Avg.Est" + +#~ msgid "" +#~ "This module provides functionality to \n" +#~ " manage artists, articles, sellers, buyers and auction.\n" +#~ " Manage bids, track of sold, paid and unpaid objects.\n" +#~ " Delivery Management. \n" +#~ " " +#~ msgstr "" +#~ "Este módulo provê funcionalidade para\n" +#~ " gestão artistica, artigos, vendedores, compradores e leilão.\n" +#~ " Gestão de oferta, faixa de vendas, pagos e objecto não pagos.\n" +#~ " Gestão de Entrega. \n" +#~ " " + +#~ msgid "Confirmation set taken away" +#~ msgstr "Confirmação do conjunto retirado" + +#~ msgid "Mark as paid for seller" +#~ msgstr "Marcar como pago para o vendedor" + +#~ msgid "Close + Create all invoices" +#~ msgstr "Fechar + Criar todas as Facturas" + +#~ msgid "Antique/Verreries" +#~ msgstr "Antiguidade/Artigos de Vidro" + +#~ msgid "Antique/Toys" +#~ msgstr "Antigo/Brinquedos" + +#~ msgid "Auction Management" +#~ msgstr "Gestão de Leilão" + +#~ msgid "Define Artists" +#~ msgstr "Definir Artistas" + +#~ msgid "Comparison of estimations" +#~ msgstr "Comparação das estimativas" + +#~ msgid "Code barres du lot" +#~ msgstr "Código de barras do lote" + +#~ msgid "Birth / Death dates" +#~ msgstr "Datas de Nascimento/Morte" + +#~ msgid "Antique/Jewelry" +#~ msgstr "Antiguidade/Jóias" + +#~ msgid "Unclassified objects " +#~ msgstr "Objectos não Classificados " + +#~ msgid "Numerotation" +#~ msgstr "Numeração" + +#~ msgid "Bordereau de dépôt" +#~ msgstr "Comprovante de Depósito" + +#~ msgid "Cont. Art/Arts" +#~ msgstr "Cont. Arte/Artes" + +#~ msgid "comparaison estimate/adjudication " +#~ msgstr "comparação estimar/adjudicação " + +#~ msgid "Adj(EUR)" +#~ msgstr "Adj(EUR)" + +#~ msgid "Cont. Art/Other Media" +#~ msgstr "Cont. Arte/Outros Mídia" + +#~ msgid "Send Image also ?" +#~ msgstr "Enviar Imagem também?" + +#~ msgid "General Informations" +#~ msgstr "Informações Gerais" + +#~ msgid "Auctions results" +#~ msgstr "Resultados de Leilões" + +#~ msgid "Unclassified objects" +#~ msgstr "Objectos não Classificados" + +#~ msgid "Antique/Carpet and textilles" +#~ msgstr "Antiguidade/Carpete e têxteis" + +#~ msgid "New Auction Dates" +#~ msgstr "Nova Data de Leilão" + +#~ msgid "Sum adj" +#~ msgstr "Soma adj" + +#~ msgid "No of Objects" +#~ msgstr "Nº de Objectos" + +#~ msgid "Antique/Painting" +#~ msgstr "Antiguidade/Pintura" + +#~ msgid "Aie Category" +#~ msgstr "Categoria AIE" + +#~ msgid "Check payment for seller" +#~ msgstr "Verificar o pagamento para o vendedor" + +#~ msgid "Send results to Auction-in-europe.com" +#~ msgstr "Enviar resultados para Auction-in-europe.com" + +#~ msgid "Seller's auction" +#~ msgstr "Leilão do Vendedor" + +#~ msgid "Seller's Revenues" +#~ msgstr "Receitas do Vendedor" + +#~ msgid "Buyer's Summary" +#~ msgstr "Resumo de Comprador" + +#~ msgid "Depositer's Statistics" +#~ msgstr "Estatísticas do Depósito" + +#~ msgid "To pay" +#~ msgstr "Para pagar" + +#~ msgid "Enable Taken away" +#~ msgstr "Permitir Retirada" + +#~ msgid "Antique/Others" +#~ msgstr "Antiguidade/Outros" + +#~ msgid "Auction dates" +#~ msgstr "Data dos Leilões" + +#~ msgid "Encoded Objects Per Day" +#~ msgstr "Codificar Objectos por Dia" + +#~ msgid "Auction Reporting on buyer view" +#~ msgstr "Relatório do Leilão na vista do comprador" + +#~ msgid "Payment's history" +#~ msgstr "Histórico de Pagamentos" + +#~ msgid "Auction results" +#~ msgstr "Resultados dos Leilões" + +#~ msgid "Auction's Revenues" +#~ msgstr "Rendimentos dos Leilões" + +#~ msgid "Antique/Metal Ware" +#~ msgstr "Antiguidade/Peças de Metal" + +#~ msgid "de" +#~ msgstr "de" + +#~ msgid "Old Auctions" +#~ msgstr "Leilões Antigos" + +#~ msgid "Cont. Art/Curiosa" +#~ msgstr "Cont. Arte/Curiosa" + +#~ msgid "Auction module" +#~ msgstr "Módulo Leilão" + +#~ msgid "Attendance" +#~ msgstr "Atendimento" + +#~ msgid "Seller information" +#~ msgstr "Informação do Vendedor" + +#~ msgid "Cont. Art/Jewelry" +#~ msgstr "Cont. Arte/Jóias" + +#~ msgid "Next Auctions" +#~ msgstr "Próximos Leilões" + +#~ msgid "#" +#~ msgstr "#" + +#~ msgid "Antique/Miniatures / Collections" +#~ msgstr "Antiguidade/Miniaturas/Colecções" + +#~ msgid "Cont. Art/Photo" +#~ msgstr "Cont. Arte/Fotografia" + +#~ msgid "Bid auctions" +#~ msgstr "Oferta de Leilão" + +#~ msgid "Avg margin" +#~ msgstr "Margem Avg" + +#~ msgid "Antique/Art from the Ivory Coast" +#~ msgstr "Antiguidade/ Arte para a Costa do Marfim" + +#~ msgid "Antique/Religiosa" +#~ msgstr "Antiguidade/Religiosa" + +#~ msgid "" +#~ "Error: The default UOM and the purchase UOM must be in the same category." +#~ msgstr "" +#~ "Erro: O UOM padrão e o UOM de compra devem estar na mesma categoria." + +#~ msgid "Unplanned objects" +#~ msgstr "Objectos não Pagos" + +#~ msgid "Cont. Art/Sculpture" +#~ msgstr "Cont. Arte/Escultura" + +#~ msgid "Antique/Argenterie" +#~ msgstr "Antiguidade/Talheres" + +#~ msgid "Detailed lots" +#~ msgstr "Lotes Detalhados" + +#~ msgid "Antique/Lightings" +#~ msgstr "Antiguidade/Iluminação" + +#~ msgid "Antique/Sculpture, bronze, eso." +#~ msgstr "Antiguidade/Escultura, bronze, etc." + +#~ msgid "Numerotate" +#~ msgstr "Numeração" + +#~ msgid "Listing Huissiers" +#~ msgstr "Listagem de Oficiais de Justiça" + +#~ msgid "All objects are assigned to buyers !" +#~ msgstr "Todos os objectos são atribuidos para os compradores !" + +#~ msgid "Able Taken away" +#~ msgstr "Permissão de Retirada" + +#~ msgid "Seller's Summary" +#~ msgstr "Resumo de Vendedores" + +#~ msgid "Send on your website" +#~ msgstr "Enviar para o seu Website" + +#~ msgid "Simplified lots for adjudication" +#~ msgstr "Lotes Simplificados para adjudicação" + +#~ msgid "Sum Adjustication" +#~ msgstr "Soma da Adjudicação" + +#~ msgid "Antique/Porcelain, Ceramics, Glassmaking, ..." +#~ msgstr "Antiguidade/Porcelanas/Cerâmicas/Vidreiros" + +#~ msgid "Object Reference" +#~ msgstr "Referência do Objecto" + +#~ msgid "Cont. Art/Shows" +#~ msgstr "Cont. Arte/Shows" + +#~ msgid "Unsold Objects" +#~ msgstr "Objectos não Vendidos" + +#~ msgid "Avg Adj." +#~ msgstr "Avg Adj." + +#~ msgid "auction.deposit.cost" +#~ msgstr "auction.deposit.cost" + +#~ msgid "Object Inventory" +#~ msgstr "Inventário do Objecto" + +#~ msgid "Antique/Art from the Ivory Coast/African Arts" +#~ msgstr "Antiguidade/Arte a partir da Costa de Marfim/Artes Africanas" + +#~ msgid "Lot Category" +#~ msgstr "Categoria de Lote" + +#~ msgid "Total" +#~ msgstr "Total" + +#~ msgid "Send to website" +#~ msgstr "Enviar para o Website" + +#~ msgid "Old Auction Dates" +#~ msgstr "Datas Antigas de Leilões" + +#~ msgid "Antique/Engravings" +#~ msgstr "Antiguidade/Gravuras" + +#~ msgid "First Number" +#~ msgstr "Primeiro Número" + +#~ msgid "" +#~ "Warning, this will erase the object adjudication price and its buyer !" +#~ msgstr "" +#~ "Aviso, isto vai apagar o preço de adjudicção do objecto e do seu comprador !" + +#~ msgid "Bid information" +#~ msgstr "Informação da Oferta" + +#~ msgid "Antique/Musical Instruments" +#~ msgstr "Antiguidade/Instrumentos Musicais" + +#~ msgid "Antique/Graphic Arts" +#~ msgstr "Antiguidade/Artes Gráficas" + +#~ msgid "Antique/Oriental Arts" +#~ msgstr "Antiguidade/Artes Orientais" + +#~ msgid "Sum of adjudication" +#~ msgstr "Soma de Adjudicação" + +#~ msgid "Unmark as taken away" +#~ msgstr "Desmarcar como retirados" + +#~ msgid "Lot Number" +#~ msgstr "Número de Lote" + +#~ msgid "Employee" +#~ msgstr "Funcionário" + +#~ msgid "Report deposit border" +#~ msgstr "Relatório de deposito limite" + +#~ msgid "Auction report" +#~ msgstr "Relatório do Leilão" + +#~ msgid "auction.lot.category" +#~ msgstr "auction.lot.category" + +#~ msgid "Antique/Collectible & art objects" +#~ msgstr "Antiguidade/Coleção&objectos de arte" + +#~ msgid "Buyer's auction" +#~ msgstr "Leilão de Compradores" + +#~ msgid "Antique/Furnitures" +#~ msgstr "Antiguidade/Móveis" + +#~ msgid "Unplanned Objects" +#~ msgstr "Objectos não Planeados" + +#~ msgid "Numerotation (automatic)" +#~ msgstr "Numeração (automatica)" + +#~ msgid "Amount to paid" +#~ msgstr "Montante para pagar" + +#~ msgid "No of buyers" +#~ msgstr "Nº de compradores" + +#~ msgid "Avg adjudication" +#~ msgstr "Avg de Adjudicação" + +#~ msgid "Next Auction Dates" +#~ msgstr "Próximas Datas de Leilão" + +#~ msgid "Report Sign In/Out" +#~ msgstr "Relatória de Entrada/Saída" + +#~ msgid "Objects to sell" +#~ msgstr "Objectos para vender" + +#~ msgid "Short Description" +#~ msgstr "Pequena Descrição" + +#~ msgid "Employees" +#~ msgstr "Funcionários" + +#~ msgid "Antique/Clocks and watches" +#~ msgstr "Antiguidade/Relógio e relógios" + +#~ msgid "Antique/Scientific Instruments" +#~ msgstr "Antiguidade/ Instrumentos Ciêntificos" + +#~ msgid "Confirmation enable taken away" +#~ msgstr "Confirmar a permissão de retirada" + +#~ msgid "Sum of adjustication" +#~ msgstr "Soma de adjudicação" + +#~ msgid "Antique/Wine" +#~ msgstr "Antiguidade/Vinhos" + +#~ msgid "Antique/African Arts" +#~ msgstr "Antiguidade/Artes Africanas" + +#~ msgid "Antique/Posters" +#~ msgstr "Antiguidade/Cartazes" + +#~ msgid "Create Invoices For Seller" +#~ msgstr "Criar faturas para o vendedor" + +#~ msgid "Invalid model name in the action definition." +#~ msgstr "Nome de modelo inválido na definição da ação" + +#~ msgid "Error: Sign in (resp. Sign out) must follow Sign out (resp. Sign in)" +#~ msgstr "Erro: Entrada (Saída) deve ser seguida de Saída (Entrada)" + +#~ msgid "Error ! You can not create recursive accounts." +#~ msgstr "Erro! Não pode criar contas recursivamente." + +#~ msgid "Invalid XML for View Architecture!" +#~ msgstr "XML inválido para a arquitetura da vista" + +#~ msgid "Error: Invalid ean code" +#~ msgstr "Erro: Código EAN inválido" + +#~ msgid "" +#~ "The Object name must start with x_ and not contain any special character !" +#~ msgstr "" +#~ "O nome do Objeto deve começar com x_ e não pode conter nenhum caracter " +#~ "especial !" + +#~ msgid "Create Invoices For Buyer" +#~ msgstr "Criar faturas para o comprador" + +#~ msgid "Auction Reporting on seller view" +#~ msgstr "Relatório do Leilão na vista do vendedor" + +#~ msgid "Error: UOS must be in a different category than the UOM" +#~ msgstr "Erro: UdV deve estar numa categoria diferente da UdM" + +#~ msgid "Auction buyer reporting form view" +#~ msgstr "Formulário do comprador do Leilão" + +#~ msgid "Auction reporting2 form view" +#~ msgstr "Formulário de relatorios do Leilão" diff --git a/addons/audittrail/i18n/ja.po b/addons/audittrail/i18n/ja.po index a3d469d0362..8ce3f28608a 100644 --- a/addons/audittrail/i18n/ja.po +++ b/addons/audittrail/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-18 23:37+0000\n" +"PO-Revision-Date: 2012-06-08 02:18+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-05-20 04:38+0000\n" -"X-Generator: Launchpad (build 15259)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: audittrail #: code:addons/audittrail/audittrail.py:75 @@ -39,7 +39,9 @@ msgstr "申込済" msgid "" "There is already a rule defined on this object\n" " You cannot define another: please edit the existing one." -msgstr "このオブジェクトでは既にルールが定義されているので、他のルールの定義ができません:既存のルールを変更して下さい。" +msgstr "" +"このオブジェクトでは既にルールが定義されているので、\n" +" 他のルールの定義ができません:既存のルールを変更して下さい。" #. module: audittrail #: view:audittrail.rule:0 diff --git a/addons/auth_openid/i18n/gu.po b/addons/auth_openid/i18n/gu.po new file mode 100644 index 00000000000..20022b1dfa6 --- /dev/null +++ b/addons/auth_openid/i18n/gu.po @@ -0,0 +1,112 @@ +# Gujarati 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 01:37+0100\n" +"PO-Revision-Date: 2012-05-31 11:08+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Gujarati <gu@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: auth_openid +#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: view:res.users:0 +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:12 +msgid "OpenID" +msgstr "" + +#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: auth_openid +#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: field:res.users,openid_url:0 +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:47 +msgid "OpenID URL" +msgstr "" + +#. module: auth_openid +#: help:res.users,openid_email:0 +msgid "Used for disambiguation in case of a shared OpenID URL" +msgstr "" + +#. module: auth_openid +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "તમે બે વપરાશકર્તાઓને એક જ લોગીન ન કરી શકો!" + +#. module: auth_openid +#: field:res.users,openid_email:0 +msgid "OpenID Email" +msgstr "" + +#. module: auth_openid +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "પસંદ કરેલ કંપની માન્ય કંપનીઓમાં આ વપરાશકર્તા માટે નથી" + +#. module: auth_openid +#: field:res.users,openid_key:0 +msgid "OpenID Key" +msgstr "" + +#. module: auth_openid +#: model:ir.model,name:auth_openid.model_res_users +msgid "res.users" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:8 +msgid "Password" +msgstr "પાસવર્ડ" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:9 +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10 +msgid "Google" +msgstr "ગુગલ" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10 +msgid "Google Apps" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:11 +msgid "Launchpad" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:20 +msgid "Google Apps Domain:" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:24 +msgid "Username:" +msgstr "વપરાશકર્તાનું નામ:" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:28 +msgid "OpenID URL:" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:35 +msgid "Google Apps Domain" +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:41 +msgid "Username" +msgstr "વપરાશકર્તા નામ" diff --git a/addons/auth_openid/i18n/pt.po b/addons/auth_openid/i18n/pt.po index e3e24a4d8c3..ceea02965de 100644 --- a/addons/auth_openid/i18n/pt.po +++ b/addons/auth_openid/i18n/pt.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-09 11:49+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2012-06-05 09:43+0000\n" +"Last-Translator: Tiago Baptista <Unknown>\n" "Language-Team: Portuguese <pt@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-02-10 04:50+0000\n" -"X-Generator: Launchpad (build 14771)\n" +"X-Launchpad-Export-Date: 2012-06-06 04:37+0000\n" +"X-Generator: Launchpad (build 15353)\n" #. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-# #. module: auth_openid @@ -24,7 +24,7 @@ msgstr "" #: view:res.users:0 #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:12 msgid "OpenID" -msgstr "" +msgstr "OpenID" #. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-# #. module: auth_openid @@ -33,7 +33,7 @@ msgstr "" #: field:res.users,openid_url:0 #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:47 msgid "OpenID URL" -msgstr "" +msgstr "OpenID URL" #. module: auth_openid #: help:res.users,openid_email:0 @@ -43,70 +43,71 @@ msgstr "" #. module: auth_openid #: sql_constraint:res.users:0 msgid "You can not have two users with the same login !" -msgstr "" +msgstr "Não pode ter dois utilizadores com o mesmo login!" #. module: auth_openid #: field:res.users,openid_email:0 msgid "OpenID Email" -msgstr "" +msgstr "Email OpenID" #. module: auth_openid #: constraint:res.users:0 msgid "The chosen company is not in the allowed companies for this user" msgstr "" +"A empresa escolhida não está entre as permitidas para este utilizador" #. module: auth_openid #: field:res.users,openid_key:0 msgid "OpenID Key" -msgstr "" +msgstr "OpenID Chave" #. module: auth_openid #: model:ir.model,name:auth_openid.model_res_users msgid "res.users" -msgstr "" +msgstr "res.users" #. openerp-web #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:8 msgid "Password" -msgstr "" +msgstr "Password" #. openerp-web #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:9 #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10 msgid "Google" -msgstr "" +msgstr "Google" #. openerp-web #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10 msgid "Google Apps" -msgstr "" +msgstr "Google Apps" #. openerp-web #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:11 msgid "Launchpad" -msgstr "" +msgstr "Launchpad" #. openerp-web #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:20 msgid "Google Apps Domain:" -msgstr "" +msgstr "Domínio Google Apps:" #. openerp-web #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:24 msgid "Username:" -msgstr "" +msgstr "Nome de utilizador:" #. openerp-web #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:28 msgid "OpenID URL:" -msgstr "" +msgstr "OpenID URL:" #. openerp-web #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:35 msgid "Google Apps Domain" -msgstr "" +msgstr "Domínio Google Apps" #. openerp-web #: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:41 msgid "Username" -msgstr "" +msgstr "Nome de utilizador" diff --git a/addons/auth_openid/i18n/sv.po b/addons/auth_openid/i18n/sv.po new file mode 100644 index 00000000000..c89dcfe9d9e --- /dev/null +++ b/addons/auth_openid/i18n/sv.po @@ -0,0 +1,114 @@ +# 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 01:37+0100\n" +"PO-Revision-Date: 2012-06-04 10:13+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-05 04:54+0000\n" +"X-Generator: Launchpad (build 15353)\n" + +#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: auth_openid +#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: view:res.users:0 +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:12 +msgid "OpenID" +msgstr "OpenID" + +#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: auth_openid +#. #-#-#-#-# auth_openid.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: field:res.users,openid_url:0 +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:47 +msgid "OpenID URL" +msgstr "OpenID URL" + +#. module: auth_openid +#: help:res.users,openid_email:0 +msgid "Used for disambiguation in case of a shared OpenID URL" +msgstr "" +"Används för att skilja mellan olika användare i fallet med en delad OpenID-" +"URL" + +#. module: auth_openid +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Du kan inte ha två användare med samma användarid !" + +#. module: auth_openid +#: field:res.users,openid_email:0 +msgid "OpenID Email" +msgstr "OpenID-epost" + +#. module: auth_openid +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "Detta bolag är inte tillåtet för den här användaren" + +#. module: auth_openid +#: field:res.users,openid_key:0 +msgid "OpenID Key" +msgstr "OpenID Nyckel" + +#. module: auth_openid +#: model:ir.model,name:auth_openid.model_res_users +msgid "res.users" +msgstr "res.users" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:8 +msgid "Password" +msgstr "Lösenord" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:9 +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10 +msgid "Google" +msgstr "Google" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:10 +msgid "Google Apps" +msgstr "Google Apps" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:11 +msgid "Launchpad" +msgstr "Launchpad" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:20 +msgid "Google Apps Domain:" +msgstr "Google Apps Domän:" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:24 +msgid "Username:" +msgstr "Användarnamn:" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:28 +msgid "OpenID URL:" +msgstr "OpenID URL:" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:35 +msgid "Google Apps Domain" +msgstr "Google Apps Domän" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/auth_openid/static/src/xml/auth_openid.xml:41 +msgid "Username" +msgstr "Användarnamn" diff --git a/addons/base_action_rule/i18n/ja.po b/addons/base_action_rule/i18n/ja.po index 2fc7e0fef91..3f6a5cbbf77 100644 --- a/addons/base_action_rule/i18n/ja.po +++ b/addons/base_action_rule/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-19 02:19+0000\n" +"PO-Revision-Date: 2012-06-08 02:21+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-05-20 04:38+0000\n" -"X-Generator: Launchpad (build 15259)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: base_action_rule #: help:base.action.rule,act_mail_to_user:0 @@ -26,7 +26,7 @@ msgstr "責任者にメールを送信するためのルールを望む場合は #. module: base_action_rule #: field:base.action.rule,act_remind_partner:0 msgid "Remind Partner" -msgstr "パートナを思い出して下さい。" +msgstr "パートナを思い出させる" #. module: base_action_rule #: field:base.action.rule,trg_partner_categ_id:0 @@ -120,7 +120,7 @@ msgstr "モデルパートナとしての条件" #. module: base_action_rule #: selection:base.action.rule,trg_date_type:0 msgid "Deadline" -msgstr "締切期限" +msgstr "期限" #. module: base_action_rule #: field:base.action.rule,trg_partner_id:0 @@ -155,8 +155,8 @@ msgid "" "specific sales team, or an opportunity which still has status pending after " "14 days might trigger an automatic reminder email." msgstr "" -"多種の画面のために自動的なアクションを自動的にトリガー実行するために使って下さい。例えば、特定のユーザにより作成されたリードには自動的に特定の営業チームを" -"設定したり、オポチュニティが保留中になって14日を経過したので、自動的に通知Eメールの送信をトリガーしたりできます。" +"多種の画面のために自動的なアクションを自動的にトリガー実行するために使います。例えば、特定のユーザにより作成されたリードには自動的に特定の営業チームを設定" +"したり、オポチュニティが保留中になって14日を経過したので、自動的に通知Eメールの送信をトリガーしたりできます。" #. module: base_action_rule #: help:base.action.rule,act_mail_to_email:0 @@ -326,7 +326,7 @@ msgstr "責任者への通知" #. module: base_action_rule #: help:base.action.rule,sequence:0 msgid "Gives the sequence order when displaying a list of rules." -msgstr "ルールのリストを表示する時には、並び順を指定して下さい。" +msgstr "ルールのリストを表示する時には、並び順を指定します。" #. module: base_action_rule #: selection:base.action.rule,trg_date_range_type:0 diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index d7d6501926f..bbededc8eaf 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -814,7 +814,6 @@ class calendar_alarm(osv.osv): context = {} mail_message = self.pool.get('mail.message') current_datetime = datetime.now() - request_obj = self.pool.get('res.request') alarm_ids = self.search(cr, uid, [('state', '!=', 'done')], context=context) mail_to = [] @@ -854,26 +853,28 @@ class calendar_alarm(osv.osv): ref = alarm.model_id.model + ',' + str(alarm.res_id) # search for alreay sent requests - if request_obj.search(cr, uid, [('trigger_date', '=', r_date), ('ref_doc1', '=', ref)], context=context): - continue - - if alarm.action == 'display': - value = { - 'name': alarm.name, - 'act_from': alarm.user_id.id, - 'act_to': alarm.user_id.id, - 'body': alarm.description, - 'trigger_date': r_date, - 'ref_doc1': ref - } - request_id = request_obj.create(cr, uid, value) - request_ids = [request_id] - for attendee in res_obj.attendee_ids: - if attendee.user_id: - value['act_to'] = attendee.user_id.id - request_id = request_obj.create(cr, uid, value) - request_ids.append(request_id) - request_obj.request_send(cr, uid, request_ids) + #if request_obj.search(cr, uid, [('trigger_date', '=', r_date), ('ref_doc1', '=', ref)], context=context): + #continue + + # Deactivated because of the removing of res.request + # TODO: when cleaning calendar module, re-add this in a new mechanism + #if alarm.action == 'display': + #value = { + #'name': alarm.name, + #'act_from': alarm.user_id.id, + #'act_to': alarm.user_id.id, + #'body': alarm.description, + #'trigger_date': r_date, + #'ref_doc1': ref + #} + #request_id = request_obj.create(cr, uid, value) + #request_ids = [request_id] + #for attendee in res_obj.attendee_ids: + #if attendee.user_id: + #value['act_to'] = attendee.user_id.id + #request_id = request_obj.create(cr, uid, value) + #request_ids.append(request_id) + #request_obj.request_send(cr, uid, request_ids) if alarm.action == 'email': sub = '[Openobject Reminder] %s' % (alarm.name) diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml index 6d98e936821..e5e45c07d61 100644 --- a/addons/base_calendar/base_calendar_view.xml +++ b/addons/base_calendar/base_calendar_view.xml @@ -9,7 +9,7 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="do_tentative" states="needs-action,declined,accepted" string="Uncertain" type="object" @@ -26,11 +26,8 @@ <button name="do_decline" string="Decline" states="needs-action,tentative,accepted" type="object" /> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="tentative,needs-action,accepted" statusbar_colors='{"proforma":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="tentative,needs-action,accepted" statusbar_colors='{"proforma":"blue"}'/> + </header> <sheet string="Invitation details" layout="auto"> <group col="6" colspan="4"> <field name="email" string="Invitation To"/> @@ -85,21 +82,6 @@ <field name="cutype" string="Invitation Type"/> <field name="state" /> <field name="rsvp" string="Required to Join"/> - <button name="do_tentative" states="needs-action,declined,accepted" - string="Uncertain" type="object" - icon="terp-crm" /> - <button name="do_accept" string="Accept" - states="needs-action,tentative,declined" - type="object" icon="gtk-apply" /> - <button name="do_decline" string="Decline" - states="needs-action,tentative,accepted" - type="object" icon="gtk-cancel" /> - <button - name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d" - string="Delegate" type="action" - icon="gtk-sort-descending" - states="needs-action,tentative,declined,accepted" - context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" /> </tree> </field> </record> @@ -229,7 +211,7 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="do_confirm" string="Confirm" states="tentative,cancelled" @@ -245,11 +227,8 @@ states="tentative,confirmed" type="object" /> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="tentative,confirmed" statusbar_colors='{"proforma":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="tentative,confirmed" statusbar_colors='{"proforma":"blue"}'/> + </header> <sheet string="Events" layout="auto"> <group col="6" colspan="4"> <field name="name" select="1" string="Summary" diff --git a/addons/base_calendar/i18n/ja.po b/addons/base_calendar/i18n/ja.po index 86889b89ef7..60a4a071a51 100644 --- a/addons/base_calendar/i18n/ja.po +++ b/addons/base_calendar/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-23 06:06+0000\n" +"PO-Revision-Date: 2012-06-08 02:32+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-05-24 11:09+0000\n" -"X-Generator: Launchpad (build 15288)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: base_calendar #: view:calendar.attendee:0 @@ -202,7 +202,7 @@ msgstr "イベント参照" #. module: base_calendar #: view:calendar.event:0 msgid "Show Time as" -msgstr "時間を示して下さい。" +msgstr "時間として表示" #. module: base_calendar #: field:calendar.event,tu:0 @@ -326,7 +326,7 @@ msgstr "コンタクトと関係あるパートナ" #. module: base_calendar #: help:calendar.attendee,cutype:0 msgid "Specify the type of Invitation" -msgstr "招待タイプを定義して下さい。" +msgstr "招待タイプを定義します。" #. module: base_calendar #: field:calendar.alarm,event_end_date:0 @@ -382,7 +382,7 @@ msgstr "主催者" #: field:calendar.event,user_id:0 #: field:calendar.todo,user_id:0 msgid "Responsible" -msgstr "責任者" +msgstr "担当" #. module: base_calendar #: view:calendar.event:0 @@ -414,7 +414,7 @@ msgstr "出席者" #: code:addons/base_calendar/base_calendar.py:1411 #, python-format msgid "Group by date not supported, use the calendar view instead" -msgstr "日付のグループ化はサポートされませんが、代りにカレンダービューを使って下さい。" +msgstr "日付のグループ化はサポートされませんが、代りにカレンダービューを使います。" #. module: base_calendar #: view:calendar.event:0 @@ -505,7 +505,7 @@ msgstr "繰り返し(まで)" msgid "" "Create specific calendar alarms that may be assigned to calendar events or " "meetings." -msgstr "カレンダーイベントまたはミーティングを割り当てられる特定のカレンダーアラームを作成して下さい。" +msgstr "カレンダーイベントまたはミーティングを割り当てられる特定のカレンダーアラームを作成します。" #. module: base_calendar #: field:calendar.event,show_as:0 @@ -995,7 +995,7 @@ msgstr "カレンダーの出席者は重複できません。" #. module: base_calendar #: view:calendar.event:0 msgid "Choose day in the month where repeat the meeting" -msgstr "ミーティングを定期的に行う場合は月の日を選択して下さい。" +msgstr "ミーティングを定期的に行う場合は月の日を選択します。" #. module: base_calendar #: field:calendar.alarm,action:0 @@ -1005,7 +1005,7 @@ msgstr "アクション" #. module: base_calendar #: help:base_calendar.invite.attendee,type:0 msgid "Select whom you want to Invite" -msgstr "招待したい人を選択して下さい。" +msgstr "招待したい人を選択します。" #. module: base_calendar #: help:calendar.alarm,duration:0 @@ -1034,7 +1034,7 @@ msgstr "委任先" #. module: base_calendar #: help:calendar.alarm,action:0 msgid "Defines the action to be invoked when an alarm is triggered" -msgstr "アラームが起動する時に発動するアクションを定義して下さい。" +msgstr "アラームが起動する時に発動するアクションを定義します。" #. module: base_calendar #: selection:calendar.event,end_type:0 @@ -1219,7 +1219,7 @@ msgstr "詳細" msgid "" "Defines a rule or repeating pattern of time to exclude from the recurring " "rule." -msgstr "ルールまたは反復ルールから除外あうする時間の繰り返しパターンを定義して下さい。" +msgstr "ルールまたは反復ルールから除外する時間の繰り返しパターンを定義します。" #. module: base_calendar #: field:calendar.event,month_list:0 @@ -1306,7 +1306,7 @@ msgstr "土" #. module: base_calendar #: view:calendar.event:0 msgid "Choose day where repeat the meeting" -msgstr "定例ミーティングの日を選択して下さい。" +msgstr "定例ミーティングの日を選択します。" #. module: base_calendar #: field:calendar.alarm,trigger_related:0 @@ -1317,7 +1317,7 @@ msgstr "関連先" #. module: base_calendar #: help:calendar.attendee,sent_by:0 msgid "Specify the user that is acting on behalf of the calendar user" -msgstr "カレンダーユーザのために行動しているユーザを指定してして下さい。" +msgstr "カレンダーユーザのために行動しているユーザを指定します。" #. module: base_calendar #: view:calendar.event:0 @@ -1445,7 +1445,7 @@ msgstr "順序" #: help:calendar.event,alarm_id:0 #: help:calendar.todo,alarm_id:0 msgid "Set an alarm at this time, before the event occurs" -msgstr "イベントが発生する前に今回アラームを設定して下さい。" +msgstr "イベントが発生する前に今回アラームを設定します。" #. module: base_calendar #: selection:base_calendar.invite.attendee,type:0 @@ -1512,9 +1512,9 @@ msgid "" " * Points to a procedure resource, which is invoked when " " the alarm is triggered for procedure." msgstr "" -"・ アラームが起動する時に発せられる音のリソースを指定して下さい。\n" +"・ アラームが起動する時に発せられる音のリソースを指定します。\n" " ・ ファイルはEメールにメッセージの添付として送信されます。\n" -" ・ アラームが起動された時に処理される手続きのリソースを指定して下さい。" +" ・ アラームが起動された時に処理される手続きのリソースを指定します。" #. module: base_calendar #: selection:calendar.event,byday:0 diff --git a/addons/base_setup/base_setup_views.xml b/addons/base_setup/base_setup_views.xml index b0b533d78e1..0692b4f651c 100644 --- a/addons/base_setup/base_setup_views.xml +++ b/addons/base_setup/base_setup_views.xml @@ -46,10 +46,10 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Sales" layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Apply" type="object" name="execute"/> <button string="Cancel" special="cancel"/> - </div> + </header> <sheet layout="auto"> <group> <group name="config_sale" colspan="4"/> diff --git a/addons/base_setup/i18n/gu.po b/addons/base_setup/i18n/gu.po new file mode 100644 index 00000000000..3563c7da2ff --- /dev/null +++ b/addons/base_setup/i18n/gu.po @@ -0,0 +1,282 @@ +# Gujarati translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 11:08+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Gujarati <gu@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:32+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: base_setup +#: field:user.preferences.config,menu_tips:0 +msgid "Display Tips" +msgstr "" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Guest" +msgstr "અતિથિ" + +#. module: base_setup +#: model:ir.model,name:base_setup.model_product_installer +msgid "product.installer" +msgstr "" + +#. module: base_setup +#: selection:product.installer,customers:0 +msgid "Create" +msgstr "બનાવો" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Member" +msgstr "સભ્ય" + +#. module: base_setup +#: field:migrade.application.installer.modules,sync_google_contact:0 +msgid "Sync Google Contact" +msgstr "" + +#. module: base_setup +#: help:user.preferences.config,context_tz:0 +msgid "" +"Set default for new user's timezone, used to perform timezone conversions " +"between the server and the client." +msgstr "" + +#. module: base_setup +#: selection:product.installer,customers:0 +msgid "Import" +msgstr "આયાત કરો" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Donor" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,name:base_setup.action_base_setup_company +msgid "Set Company Header and Footer" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,help:base_setup.action_base_setup_company +msgid "" +"Fill in your company data (address, logo, bank accounts) so that it's " +"printed on your reports. You can click on the button 'Preview Header' in " +"order to check the header/footer of PDF documents." +msgstr "" + +#. module: base_setup +#: field:product.installer,customers:0 +msgid "Customers" +msgstr "ગ્રાહકો" + +#. module: base_setup +#: selection:user.preferences.config,view:0 +msgid "Extended" +msgstr "વિસ્તૃત" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Patient" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,help:base_setup.action_import_create_installer +msgid "" +"Create or Import Customers and their contacts manually from this form or " +"you can import your existing partners by CSV spreadsheet from \"Import " +"Data\" wizard" +msgstr "" + +#. module: base_setup +#: view:user.preferences.config:0 +msgid "Define Users's Preferences" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,name:base_setup.action_user_preferences_config_form +msgid "Define default users preferences" +msgstr "" + +#. module: base_setup +#: help:migrade.application.installer.modules,import_saleforce:0 +msgid "For Import Saleforce" +msgstr "" + +#. module: base_setup +#: help:migrade.application.installer.modules,quickbooks_ippids:0 +msgid "For Quickbooks Ippids" +msgstr "" + +#. module: base_setup +#: help:user.preferences.config,view:0 +msgid "" +"If you use OpenERP for the first time we strongly advise you to select the " +"simplified interface, which has less features but is easier. You can always " +"switch later from the user preferences." +msgstr "" + +#. module: base_setup +#: view:base.setup.terminology:0 +#: view:user.preferences.config:0 +msgid "res_config_contents" +msgstr "" + +#. module: base_setup +#: field:user.preferences.config,view:0 +msgid "Interface" +msgstr "ઇન્ટરફેસ" + +#. module: base_setup +#: model:ir.model,name:base_setup.model_migrade_application_installer_modules +msgid "migrade.application.installer.modules" +msgstr "" + +#. module: base_setup +#: view:base.setup.terminology:0 +msgid "" +"You can use this wizard to change the terminologies for customers in the " +"whole application." +msgstr "" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Tenant" +msgstr "" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Customer" +msgstr "" + +#. module: base_setup +#: field:user.preferences.config,context_lang:0 +msgid "Language" +msgstr "ભાષા" + +#. module: base_setup +#: help:user.preferences.config,context_lang:0 +msgid "" +"Sets default language for the all user interface, when UI translations are " +"available. If you want to Add new Language, you can add it from 'Load an " +"Official Translation' wizard from 'Administration' menu." +msgstr "" + +#. module: base_setup +#: view:user.preferences.config:0 +msgid "" +"This will set the default preferences for new users and update all existing " +"ones. Afterwards, users are free to change those values on their own user " +"preference form." +msgstr "" + +#. module: base_setup +#: field:base.setup.terminology,partner:0 +msgid "How do you call a Customer" +msgstr "" + +#. module: base_setup +#: field:migrade.application.installer.modules,quickbooks_ippids:0 +msgid "Quickbooks Ippids" +msgstr "" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Client" +msgstr "" + +#. module: base_setup +#: field:migrade.application.installer.modules,import_saleforce:0 +msgid "Import Saleforce" +msgstr "" + +#. module: base_setup +#: field:user.preferences.config,context_tz:0 +msgid "Timezone" +msgstr "ટાઈમઝોન" + +#. module: base_setup +#: model:ir.actions.act_window,name:base_setup.action_partner_terminology_config_form +msgid "Use another word to say \"Customer\"" +msgstr "" + +#. module: base_setup +#: model:ir.model,name:base_setup.model_base_setup_terminology +msgid "base.setup.terminology" +msgstr "" + +#. module: base_setup +#: help:user.preferences.config,menu_tips:0 +msgid "" +"Check out this box if you want to always display tips on each menu action" +msgstr "" + +#. module: base_setup +#: field:base.setup.terminology,config_logo:0 +#: field:migrade.application.installer.modules,config_logo:0 +#: field:product.installer,config_logo:0 +#: field:user.preferences.config,config_logo:0 +msgid "Image" +msgstr "ચિત્ર" + +#. module: base_setup +#: model:ir.model,name:base_setup.model_user_preferences_config +msgid "user.preferences.config" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,name:base_setup.action_config_access_other_user +msgid "Create Additional Users" +msgstr "" + +#. module: base_setup +#: model:ir.actions.act_window,name:base_setup.action_import_create_installer +msgid "Create or Import Customers" +msgstr "" + +#. module: base_setup +#: field:migrade.application.installer.modules,import_sugarcrm:0 +msgid "Import Sugarcrm" +msgstr "" + +#. module: base_setup +#: help:product.installer,customers:0 +msgid "Import or create customers" +msgstr "" + +#. module: base_setup +#: selection:user.preferences.config,view:0 +msgid "Simplified" +msgstr "સરળ" + +#. module: base_setup +#: help:migrade.application.installer.modules,import_sugarcrm:0 +msgid "For Import Sugarcrm" +msgstr "" + +#. module: base_setup +#: selection:base.setup.terminology,partner:0 +msgid "Partner" +msgstr "ભાગીદાર" + +#. module: base_setup +#: view:base.setup.terminology:0 +msgid "Specify Your Terminology" +msgstr "" + +#. module: base_setup +#: help:migrade.application.installer.modules,sync_google_contact:0 +msgid "For Sync Google Contact" +msgstr "" diff --git a/addons/base_setup/res_config_view.xml b/addons/base_setup/res_config_view.xml index 0281263397a..ccf231924fe 100644 --- a/addons/base_setup/res_config_view.xml +++ b/addons/base_setup/res_config_view.xml @@ -7,10 +7,10 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="General Settings" layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Apply" type="object" name="execute"/> <button string="Cancel" special="cancel"/> - </div> + </header> <sheet layout="auto"> <separator string="Company Settings" colspan="4"/> <field name="module_multi_company"/> diff --git a/addons/delivery/wizard/__init__.py b/addons/base_status/__init__.py index 3b35a3cd51e..e4107f90a37 100644 --- a/addons/delivery/wizard/__init__.py +++ b/addons/base_status/__init__.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- ############################################################################## -# +# # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# Copyright (C) 2012-today OpenERP SA (<http://openerp.com>) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -15,11 +15,11 @@ # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <http://www.gnu.org/licenses/>. # ############################################################################## -import delivery_sale_order +import base_state +import base_stage # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/base_status/__openerp__.py b/addons/base_status/__openerp__.py new file mode 100644 index 00000000000..fcb8f54a7ee --- /dev/null +++ b/addons/base_status/__openerp__.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2012-today OpenERP SA (<http://openerp.com>) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +{ + 'name': 'State/Stage Management', + 'version': '1.0', + 'category': 'Hidden', + 'description': """ +This module handles state and stage. It is derived from the crm_base and +crm_case classes from crm. + + * ``base_state``: state management + * ``base_stage``: stage management + """, + 'author': 'OpenERP SA', + 'website': 'http://www.openerp.com', + 'depends': ['base'], + 'init_xml': [], + 'update_xml': [], + 'demo_xml': [], + 'installable': True, + 'auto_install': False, +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/base_status/base_stage.py b/addons/base_status/base_stage.py new file mode 100644 index 00000000000..cc6dda19cdf --- /dev/null +++ b/addons/base_status/base_stage.py @@ -0,0 +1,432 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from osv import fields +from tools.translate import _ + +class base_stage(object): + """ Base utility mixin class for objects willing to manage their stages. + Object that inherit from this class should inherit from mailgate.thread + to have access to the mail gateway, as well as Chatter. Objects + subclassing this class should define the following colums: + - ``date_open`` (datetime field) + - ``date_closed`` (datetime field) + - ``user_id`` (many2one to res.users) + - ``partner_id`` (many2one to res.partner) + - ``stage_id`` (many2one to a stage definition model) + - ``state`` (selection field, related to the stage_id.state) + """ + + def _get_default_partner(self, cr, uid, context=None): + """ Gives id of partner for current user + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + if hasattr(user, 'partner_address_id') and user.partner_address_id: + return user.partner_address_id + return user.company_id.partner_id.id + + def _get_default_email(self, cr, uid, context=None): + """ Gives default email address for current user + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + return user.user_email + + def _get_default_user(self, cr, uid, context=None): + """ Gives current user id + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + return uid + + def onchange_partner_address_id(self, cr, uid, ids, add, email=False): + """ This function returns value of partner email based on Partner Address + :param add: Id of Partner's address + :param email: Partner's email ID + """ + data = {'value': {'email_from': False, 'phone':False}} + if add: + address = self.pool.get('res.partner').browse(cr, uid, add) + data['value'] = {'email_from': address and address.email or False , + 'phone': address and address.phone or False} + if 'phone' not in self._columns: + del data['value']['phone'] + return data + + def onchange_partner_id(self, cr, uid, ids, part, email=False): + """ This function returns value of partner address based on partner + :param part: Partner's id + :param email: Partner's email ID + """ + data={} + if part: + addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact']) + data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value']) + return {'value': data} + + def _get_default_section_id(self, cr, uid, context=None): + """ Gives default section """ + return False + + def _get_default_stage_id(self, cr, uid, context=None): + """ Gives default stage_id """ + return self.stage_find(cr, uid, [], None, [('state', '=', 'draft')], context=context) + + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Find stage, with a given (optional) domain on the search, + ordered by the order parameter. If several stages match the + search criterions, the first one will be returned, according + to the requested search order. + This method is meant to be overriden by subclasses. That way + specific behaviors can be achieved for every class inheriting + from base_stage. + + :param cases: browse_record of cases + :param section_id: section limitating the search, given for + a generic search (for example default search). + A section models concepts such as Sales team + (for CRM), ou departments (for HR). + :param domain: a domain on the search of stages + :param order: order of the search + """ + return False + + def stage_set_with_state_name(self, cr, uid, cases, state_name, context=None): + """ Set a new stage, with a state_name instead of a stage_id + :param cases: browse_record of cases + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + for case in cases: + stage_id = self.stage_find(cr, uid, [case], None, [('state', '=', state_name)], context=context) + if stage_id: + self.stage_set(cr, uid, [case.id], stage_id, context=context) + return True + + def stage_set(self, cr, uid, ids, stage_id, context=None): + """ Set the new stage. This methods is the right method to call + when changing states. It also checks whether an onchange is + defined, and execute it. + """ + value = {} + if hasattr(self, 'onchange_stage_id'): + value = self.onchange_stage_id(cr, uid, ids, stage_id, context=context)['value'] + value['stage_id'] = stage_id + self.stage_set_send_note(cr, uid, ids, stage_id, context=context) + return self.write(cr, uid, ids, value, context=context) + + def stage_change(self, cr, uid, ids, op, order, context=None): + """ Change the stage and take the next one, based on a condition + writen for the 'sequence' field and an operator. This methods + checks whether the case has a current stage, and takes its + sequence. Otherwise, a default 0 sequence is chosen and this + method will therefore choose the first available stage. + For example if op is '>' and current stage has a sequence of + 10, this will call stage_find, with [('sequence', '>', '10')]. + """ + for case in self.browse(cr, uid, ids, context=context): + seq = 0 + if case.stage_id: + seq = case.stage_id.sequence or 0 + section_id = None + next_stage_id = self.stage_find(cr, uid, [case], None, [('sequence', op, seq)],order, context=context) + if next_stage_id: + return self.stage_set(cr, uid, [case.id], next_stage_id, context=context) + return False + + def stage_next(self, cr, uid, ids, context=None): + """ This function computes next stage for case from its current stage + using available stage for that case type + """ + return self.stage_change(cr, uid, ids, '>','sequence', context) + + def stage_previous(self, cr, uid, ids, context=None): + """ This function computes previous stage for case from its current + stage using available stage for that case type + """ + return self.stage_change(cr, uid, ids, '<', 'sequence desc', context) + + def copy(self, cr, uid, id, default=None, context=None): + """ Overrides orm copy method to avoid copying messages, + as well as date_closed and date_open columns if they + exist.""" + if default is None: + default = {} + + if hasattr(self, '_columns'): + if self._columns.get('date_closed'): + default.update({ 'date_closed': False, }) + if self._columns.get('date_open'): + default.update({ 'date_open': False }) + return super(base_stage, self).copy(cr, uid, id, default, context=context) + + def case_escalate(self, cr, uid, ids, context=None): + """ Escalates case to parent level """ + cases = self.browse(cr, uid, ids, context=context) + cases[0].state # fill browse record cache, for _action having old and new values + for case in cases: + data = {'active': True} + if case.section_id.parent_id: + data['section_id'] = case.section_id.parent_id.id + if case.section_id.parent_id.change_responsible: + if case.section_id.parent_id.user_id: + data['user_id'] = case.section_id.parent_id.user_id.id + else: + raise osv.except_osv(_('Error !'), _('You can not escalate, you are already at the top level regarding your sales-team category.')) + self.write(cr, uid, [case.id], data, context=context) + case.case_escalate_send_note(case.section_id.parent_id, context=context) + cases = self.browse(cr, uid, ids, context=context) + self._action(cr, uid, cases, 'escalate', context=context) + return True + + def case_open(self, cr, uid, ids, context=None): + """ Opens case """ + cases = self.browse(cr, uid, ids, context=context) + for case in cases: + data = {'active': True} + if case.stage_id and case.stage_id.state == 'draft': + data['date_open'] = fields.datetime.now() + if not case.user_id: + data['user_id'] = uid + self.case_set(cr, uid, [case.id], 'open', data, context=context) + self.case_open_send_note(cr, uid, [case.id], context=context) + return True + + def case_close(self, cr, uid, ids, context=None): + """ Closes case """ + self.case_set(cr, uid, ids, 'done', {'active': True, 'date_closed': fields.datetime.now()}, context=context) + self.case_close_send_note(cr, uid, ids, context=context) + return True + + def case_cancel(self, cr, uid, ids, context=None): + """ Cancels case """ + self.case_set(cr, uid, ids, 'cancel', {'active': True}, context=context) + self.case_cancel_send_note(cr, uid, ids, context=context) + return True + + def case_pending(self, cr, uid, ids, context=None): + """ Set case as pending """ + self.case_set(cr, uid, ids, 'pending', {'active': True}, context=context) + self.case_pending_send_note(cr, uid, ids, context=context) + return True + + def case_reset(self, cr, uid, ids, context=None): + """ Resets case as draft """ + self.case_set(cr, uid, ids, 'draft', {'active': True}, context=context) + self.case_reset_send_note(cr, uid, ids, context=context) + return True + + def case_set(self, cr, uid, ids, new_state_name=None, values_to_update=None, new_stage_id=None, context=None): + """ Generic method for setting case. This methods wraps the update + of the record, as well as call to _action and browse_record + case setting to fill the cache. + + :params new_state_name: the new state of the record; this method + will call ``stage_set_with_state_name`` + that will find the stage matching the + new state, using the ``stage_find`` method. + :params new_stage_id: alternatively, you may directly give the + new stage of the record + :params state_name: the new value of the state, such as + 'draft' or 'close'. + :params update_values: values that will be added with the state + update when writing values to the record. + """ + cases = self.browse(cr, uid, ids, context=context) + cases[0].state # fill browse record cache, for _action having old and new values + # 1. update the stage + if new_state_name: + self.stage_set_with_state_name(cr, uid, cases, new_state_name, context=context) + elif not (new_stage_id is None): + self.stage_set(cr, uid, ids, new_stage_id, context=context) + # 2. update values + if values_to_update: + self.write(cr, uid, ids, values_to_update, context=context) + # 3. call _action for base action rule + if new_state_name: + self._action(cr, uid, cases, new_state_name, context=context) + elif not (new_stage_id is None): + new_state_name = self.read(cr, uid, ids, ['state'], context=context)[0]['state'] + self._action(cr, uid, cases, new_state_name, context=context) + return True + + def _action(self, cr, uid, cases, state_to, scrit=None, context=None): + if context is None: + context = {} + context['state_to'] = state_to + rule_obj = self.pool.get('base.action.rule') + if not rule_obj: + return True + model_obj = self.pool.get('ir.model') + model_ids = model_obj.search(cr, uid, [('model','=',self._name)], context=context) + rule_ids = rule_obj.search(cr, uid, [('model_id','=',model_ids[0])], context=context) + return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context) + + def remind_partner(self, cr, uid, ids, context=None, attach=False): + return self.remind_user(cr, uid, ids, context, attach, + destination=False) + + def remind_user(self, cr, uid, ids, context=None, attach=False, destination=True): + mail_message = self.pool.get('mail.message') + for case in self.browse(cr, uid, ids, context=context): + if not destination and not case.email_from: + return False + if not case.user_id.user_email: + return False + if destination and case.section_id.user_id: + case_email = case.section_id.user_id.user_email + else: + case_email = case.user_id.user_email + + src = case_email + dest = case.user_id.user_email or "" + body = case.description or "" + for message in case.message_ids: + if message.email_from and message.body_text: + body = message.body_text + break + + if not destination: + src, dest = dest, case.email_from + if body and case.user_id.signature: + if body: + body += '\n\n%s' % (case.user_id.signature) + else: + body = '\n\n%s' % (case.user_id.signature) + + body = self.format_body(body) + + attach_to_send = {} + + if attach: + attach_ids = self.pool.get('ir.attachment').search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', case.id)]) + attach_to_send = self.pool.get('ir.attachment').read(cr, uid, attach_ids, ['datas_fname', 'datas']) + attach_to_send = dict(map(lambda x: (x['datas_fname'], base64.decodestring(x['datas'])), attach_to_send)) + + # Send an email + subject = "Reminder: [%s] %s" % (str(case.id), case.name, ) + mail_message.schedule_with_attach(cr, uid, + src, + [dest], + subject, + body, + model=self._name, + reply_to=case.section_id.reply_to, + res_id=case.id, + attachments=attach_to_send, + context=context + ) + return True + + def _check(self, cr, uid, ids=False, context=None): + """ Function called by the scheduler to process cases for date actions. + Must be overriden by inheriting classes. + """ + return True + + def format_body(self, body): + return self.pool.get('base.action.rule').format_body(body) + + def format_mail(self, obj, body): + return self.pool.get('base.action.rule').format_mail(obj, body) + + def message_thread_followers(self, cr, uid, ids, context=None): + res = {} + for case in self.browse(cr, uid, ids, context=context): + l=[] + if case.email_cc: + l.append(case.email_cc) + if case.user_id and case.user_id.user_email: + l.append(case.user_id.user_email) + res[case.id] = l + return res + + # ****************************** + # Notifications + # ****************************** + + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + """ Default prefix for notifications. For example: "%s has been + <b>closed</b>.". As several models will inherit from base_stage, + this method returns a void string. Class using base_stage + will have to override this method to define the prefix they + want to display. + """ + return '' + + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Send a notification when the stage changes. This method has + to be overriden, because each document will have its particular + behavior and/or stage model (such as project.task.type or + crm.case.stage). + """ + return True + + def case_open_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been <b>opened</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_close_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been <b>closed</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_cancel_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been <b>canceled</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_pending_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s is now <b>pending</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_reset_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been <b>renewed</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_escalate_send_note(self, cr, uid, ids, new_section=None, context=None): + for id in ids: + if new_section: + msg = '%s has been <b>escalated</b> to <b>%s</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context), new_section.name) + else: + msg = '%s has been <b>escalated</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], 'System Notification', msg, context=context) + return True diff --git a/addons/base_status/base_state.py b/addons/base_status/base_state.py new file mode 100644 index 00000000000..5baf71a01b6 --- /dev/null +++ b/addons/base_status/base_state.py @@ -0,0 +1,194 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from osv import fields +from tools.translate import _ + +class base_state(object): + """ Base utility mixin class for objects willing to manage their state. + Object subclassing this class should define the following colums: + - ``date_open`` (datetime field) + - ``date_closed`` (datetime field) + - ``user_id`` (many2one to res.users) + - ``partner_id`` (many2one to res.partner) + - ``state`` (selection field) + """ + + def _get_default_partner(self, cr, uid, context=None): + """ Gives id of partner for current user + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + if hasattr(user, 'partner_address_id') and user.partner_address_id: + return user.partner_address_id + return user.company_id.partner_id.id + + def _get_default_email(self, cr, uid, context=None): + """ Gives default email address for current user + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + user = self.pool.get('res.users').browse(cr, uid, uid, context=context) + return user.user_email + + def _get_default_user(self, cr, uid, context=None): + """ Gives current user id + :param context: if portal not in context returns False + """ + if context is None: + context = {} + if not context or not context.get('portal'): + return False + return uid + + def onchange_partner_address_id(self, cr, uid, ids, add, email=False): + """ This function returns value of partner email based on Partner Address + :param add: Id of Partner's address + :param email: Partner's email ID + """ + data = {'value': {'email_from': False, 'phone':False}} + if add: + address = self.pool.get('res.partner').browse(cr, uid, add) + data['value'] = {'email_from': address and address.email or False , + 'phone': address and address.phone or False} + if 'phone' not in self._columns: + del data['value']['phone'] + return data + + def onchange_partner_id(self, cr, uid, ids, part, email=False): + """ This function returns value of partner address based on partner + :param part: Partner's id + :param email: Partner's email ID + """ + data={} + if part: + addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact']) + data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value']) + return {'value': data} + + def case_open(self, cr, uid, ids, context=None): + """ Opens case """ + cases = self.browse(cr, uid, ids, context=context) + for case in cases: + values = {'active': True} + if case.state == 'draft': + values['date_open'] = fields.datetime.now() + if not case.user_id: + values['user_id'] = uid + self.case_set(cr, uid, [case.id], 'open', values, context=context) + self.case_open_send_note(cr, uid, [case.id], context=context) + return True + + def case_close(self, cr, uid, ids, context=None): + """ Closes case """ + self.case_set(cr, uid, ids, 'done', {'date_closed': fields.datetime.now()}, context=context) + self.case_close_send_note(cr, uid, ids, context=context) + return True + + def case_cancel(self, cr, uid, ids, context=None): + """ Cancels case """ + self.case_set(cr, uid, ids, 'cancel', {'active': True}, context=context) + self.case_cancel_send_note(cr, uid, ids, context=context) + return True + + def case_pending(self, cr, uid, ids, context=None): + """ Sets case as pending """ + self.case_set(cr, uid, ids, 'pending', {'active': True}, context=context) + self.case_pending_send_note(cr, uid, ids, context=context) + return True + + def case_reset(self, cr, uid, ids, context=None): + """ Resets case as draft """ + self.case_set(cr, uid, ids, 'draft', {'active': True}, context=context) + self.case_reset_send_note(cr, uid, ids, context=context) + return True + + def case_set(self, cr, uid, ids, state_name, update_values=None, context=None): + """ Generic method for setting case. This methods wraps the update + of the record, as well as call to _action and browse_record + case setting to fill the cache. + + :params: state_name: the new value of the state, such as + 'draft' or 'close'. + :params: update_values: values that will be added with the state + update when writing values to the record. + """ + cases = self.browse(cr, uid, ids, context=context) + cases[0].state # fill browse record cache, for _action having old and new values + if update_values is None: + update_values = {} + update_values['state'] = state_name + self.write(cr, uid, ids, update_values, context=context) + self._action(cr, uid, cases, state_name, context=context) + + def _action(self, cr, uid, cases, state_to, scrit=None, context=None): + if context is None: + context = {} + context['state_to'] = state_to + rule_obj = self.pool.get('base.action.rule') + model_obj = self.pool.get('ir.model') + model_ids = model_obj.search(cr, uid, [('model','=',self._name)]) + rule_ids = rule_obj.search(cr, uid, [('model_id','=',model_ids[0])]) + return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context) + + # ****************************** + # Notifications + # ****************************** + + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + return '' + + def case_open_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been <b>opened</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_close_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been <b>closed</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_cancel_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been <b>canceled</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_pending_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s is now <b>pending</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True + + def case_reset_send_note(self, cr, uid, ids, context=None): + for id in ids: + msg = _('%s has been <b>renewed</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) + self.message_append_note(cr, uid, [id], body=msg, context=context) + return True diff --git a/addons/base_synchro/__openerp__.py b/addons/base_synchro/__openerp__.py index a7e0cff1144..73c8cf13258 100644 --- a/addons/base_synchro/__openerp__.py +++ b/addons/base_synchro/__openerp__.py @@ -30,7 +30,7 @@ Synchronization with all objects. Configure servers and trigger synchronization with its database objects. """, - "depends": ["base"], + "depends": ["base", "mail"], "demo_xml": [], "update_xml": [ "wizard/base_synchro_view.xml", diff --git a/addons/base_synchro/i18n/zh_CN.po b/addons/base_synchro/i18n/zh_CN.po index e340ae849e4..87078672ab3 100644 --- a/addons/base_synchro/i18n/zh_CN.po +++ b/addons/base_synchro/i18n/zh_CN.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-08 03:42+0000\n" -"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n" +"PO-Revision-Date: 2012-06-07 03:31+0000\n" +"Last-Translator: Jeff Wang <wjfonhand@hotmail.com>\n" "Language-Team: Chinese (Simplified) <zh_CN@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-02-09 07:05+0000\n" -"X-Generator: Launchpad (build 14763)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: base_synchro #: model:ir.actions.act_window,name:base_synchro.action_view_base_synchro @@ -212,7 +212,7 @@ msgstr "同步" #. module: base_synchro #: field:base.synchro.obj,domain:0 msgid "Domain" -msgstr "域" +msgstr "过滤条件" #. module: base_synchro #: view:base.synchro:0 diff --git a/addons/base_synchro/wizard/base_synchro.py b/addons/base_synchro/wizard/base_synchro.py index 1192c7768ff..28433b5caac 100644 --- a/addons/base_synchro/wizard/base_synchro.py +++ b/addons/base_synchro/wizard/base_synchro.py @@ -234,7 +234,6 @@ class base_synchro(osv.osv_memory): self.pool.get('base.synchro.obj').write(cr, uid, [object.id], {'synchronize_date': dt}) end_date = time.strftime('%Y-%m-%d, %Hh %Mm %Ss') if syn_obj.user_id: - request = pooler.get_pool(cr.dbname).get('res.request') if not self.report: self.report.append('No exception.') summary = '''Here is the synchronization report: @@ -249,12 +248,8 @@ Records created: %d Exceptions: '''% (start_date,end_date,self.report_total, self.report_write,self.report_create) summary += '\n'.join(self.report) - request.create(cr, uid, { - 'name' : "Synchronization report", - 'act_from' : uid, - 'act_to' : syn_obj.user_id.id, - 'body': summary, - }) + # Chatter: old res.request transformed into a message added to the destination user + self.pool.get('res.users').message_append_note(cr, uid, [syn_obj.user_id.id], body=summary, subject=_('Synchronization Report'), context=context) return True def upload_download_multi_thread(self, cr, uid, data, context=None): diff --git a/addons/base_vat/base_vat_view.xml b/addons/base_vat/base_vat_view.xml index 6be9d306546..fe43cc0770a 100644 --- a/addons/base_vat/base_vat_view.xml +++ b/addons/base_vat/base_vat_view.xml @@ -9,7 +9,7 @@ <field name="arch" type="xml"> <field name="property_account_payable" position="after"> <group colspan="2" col="6"> - <field name="vat" on_change="vat_change(vat)"/> + <field name="vat" on_change="vat_change(vat)" placeholder="BE0477472702"/> <button colspan="2" name="button_check_vat" string="Check VAT" type="object" icon="gtk-execute"/> <field name="vat_subjected" colspan="1"/> </group> diff --git a/addons/board/i18n/gu.po b/addons/board/i18n/gu.po new file mode 100644 index 00000000000..31d883053f7 --- /dev/null +++ b/addons/board/i18n/gu.po @@ -0,0 +1,348 @@ +# Gujarati translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 11:09+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Gujarati <gu@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: board +#: view:res.log.report:0 +msgid " Year " +msgstr "" + +#. module: board +#: model:ir.model,name:board.model_board_menu_create +msgid "Menu Create" +msgstr "" + +#. module: board +#: view:board.menu.create:0 +msgid "Menu Information" +msgstr "" + +#. module: board +#: view:res.users:0 +msgid "Latest Connections" +msgstr "" + +#. module: board +#: view:res.log.report:0 +msgid "Log created in last month" +msgstr "" + +#. module: board +#: view:board.board:0 +#: model:ir.actions.act_window,name:board.open_board_administration_form +msgid "Administration Dashboard" +msgstr "સંચાલન ડેશબોર્ડ" + +#. module: board +#: view:res.log.report:0 +msgid "Group By..." +msgstr "ગ્રુપ દ્વારા..." + +#. module: board +#: view:res.log.report:0 +msgid "Log created in current year" +msgstr "" + +#. module: board +#: model:ir.model,name:board.model_board_board +msgid "Board" +msgstr "બૉર્ડ" + +#. module: board +#: field:board.menu.create,menu_name:0 +msgid "Menu Name" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.board_weekly_res_log_report_action +#: view:res.log.report:0 +msgid "Weekly Global Activity" +msgstr "" + +#. module: board +#: field:board.board.line,name:0 +msgid "Title" +msgstr "શીર્ષક" + +#. module: board +#: field:res.log.report,nbr:0 +msgid "# of Entries" +msgstr "" + +#. module: board +#: view:res.log.report:0 +#: field:res.log.report,month:0 +msgid "Month" +msgstr "મહિનો" + +#. module: board +#: view:res.log.report:0 +msgid "Log created in current month" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.board_monthly_res_log_report_action +#: view:res.log.report:0 +msgid "Monthly Activity per Document" +msgstr "" + +#. module: board +#: view:board.board:0 +msgid "Configuration Overview" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.action_view_board_list_form +#: model:ir.ui.menu,name:board.menu_view_board_form +msgid "Dashboard Definition" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "March" +msgstr "માર્ચ" + +#. module: board +#: selection:res.log.report,month:0 +msgid "August" +msgstr "ઑગસ્ટ" + +#. module: board +#: model:ir.actions.act_window,name:board.action_user_connection_tree +msgid "User Connections" +msgstr "" + +#. module: board +#: field:res.log.report,creation_date:0 +msgid "Creation Date" +msgstr "સર્જન તારીખ" + +#. module: board +#: view:res.log.report:0 +msgid "Log Analysis" +msgstr "" + +#. module: board +#: field:res.log.report,res_model:0 +msgid "Object" +msgstr "વસ્તુ" + +#. module: board +#: selection:res.log.report,month:0 +msgid "June" +msgstr "જૂન" + +#. module: board +#: field:board.board,line_ids:0 +msgid "Action Views" +msgstr "" + +#. module: board +#: model:ir.model,name:board.model_res_log_report +msgid "Log Report" +msgstr "" + +#. module: board +#: code:addons/board/wizard/board_menu_create.py:46 +#, python-format +msgid "Please Insert Dashboard View(s) !" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "July" +msgstr "જુલાઈ" + +#. module: board +#: view:res.log.report:0 +#: field:res.log.report,day:0 +msgid "Day" +msgstr "દિવસ" + +#. module: board +#: view:board.menu.create:0 +msgid "Create Menu For Dashboard" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "February" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "October" +msgstr "" + +#. module: board +#: model:ir.model,name:board.model_board_board_line +msgid "Board Line" +msgstr "" + +#. module: board +#: field:board.menu.create,menu_parent_id:0 +msgid "Parent Menu" +msgstr "" + +#. module: board +#: view:res.log.report:0 +msgid " Month-1 " +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "January" +msgstr "" + +#. module: board +#: view:board.board:0 +msgid "Users" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "November" +msgstr "" + +#. module: board +#: help:board.board.line,sequence:0 +msgid "" +"Gives the sequence order when displaying a list of " +"board lines." +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "April" +msgstr "" + +#. module: board +#: view:board.board:0 +#: field:board.board,name:0 +#: field:board.board.line,board_id:0 +#: model:ir.ui.menu,name:board.menu_dasboard +msgid "Dashboard" +msgstr "" + +#. module: board +#: code:addons/board/wizard/board_menu_create.py:45 +#, python-format +msgid "User Error!" +msgstr "" + +#. module: board +#: field:board.board.line,action_id:0 +msgid "Action" +msgstr "" + +#. module: board +#: field:board.board.line,position:0 +msgid "Position" +msgstr "" + +#. module: board +#: view:res.log.report:0 +msgid "Model" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.board_homepage_action +msgid "Home Page" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.action_latest_activities_tree +msgid "Latest Activities" +msgstr "" + +#. module: board +#: selection:board.board.line,position:0 +msgid "Left" +msgstr "" + +#. module: board +#: field:board.board,view_id:0 +msgid "Board View" +msgstr "" + +#. module: board +#: selection:board.board.line,position:0 +msgid "Right" +msgstr "" + +#. module: board +#: field:board.board.line,width:0 +msgid "Width" +msgstr "" + +#. module: board +#: view:res.log.report:0 +msgid " Month " +msgstr "" + +#. module: board +#: field:board.board.line,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "September" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "December" +msgstr "" + +#. module: board +#: view:board.board:0 +#: view:board.menu.create:0 +msgid "Create Menu" +msgstr "" + +#. module: board +#: field:board.board.line,height:0 +msgid "Height" +msgstr "" + +#. module: board +#: model:ir.actions.act_window,name:board.action_board_menu_create +msgid "Create Board Menu" +msgstr "" + +#. module: board +#: selection:res.log.report,month:0 +msgid "May" +msgstr "" + +#. module: board +#: view:res.log.report:0 +#: field:res.log.report,name:0 +msgid "Year" +msgstr "" + +#. module: board +#: view:board.menu.create:0 +msgid "Cancel" +msgstr "" + +#. module: board +#: view:board.board:0 +msgid "Dashboard View" +msgstr "" diff --git a/addons/board/i18n/ja.po b/addons/board/i18n/ja.po index d3d95a02373..7c1b2755ddc 100644 --- a/addons/board/i18n/ja.po +++ b/addons/board/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-24 04:45+0000\n" +"PO-Revision-Date: 2012-06-08 02:39+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-05-24 11:09+0000\n" -"X-Generator: Launchpad (build 15288)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: board #: view:res.log.report:0 @@ -224,7 +224,7 @@ msgstr "11月" msgid "" "Gives the sequence order when displaying a list of " "board lines." -msgstr "ボード行のリストを表示する場合、並び順を指定して下さい。" +msgstr "ボード行のリストを表示する場合、並び順を指定します。" #. module: board #: selection:res.log.report,month:0 diff --git a/addons/caldav/i18n/ja.po b/addons/caldav/i18n/ja.po index cb0c2dc92e5..92f6a32e62f 100644 --- a/addons/caldav/i18n/ja.po +++ b/addons/caldav/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-24 17:42+0000\n" +"PO-Revision-Date: 2012-06-08 02:42+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-05-25 04:40+0000\n" -"X-Generator: Launchpad (build 15288)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: caldav #: view:basic.calendar:0 @@ -99,7 +99,7 @@ msgstr "遠隔カレンダーへの経路を指定して下さい。" #. module: caldav #: model:ir.actions.act_window,name:caldav.action_calendar_event_import_values msgid "Import .ics File" -msgstr ".ics ファイルをインポートして下さい。" +msgstr ".ics ファイルのインポート" #. module: caldav #: view:caldav.browse:0 @@ -346,7 +346,7 @@ msgstr "タイプ" #. module: caldav #: help:calendar.event.export,name:0 msgid "Save in .ics format" -msgstr ".ics 形式で保存して下さい。" +msgstr ".ics 形式で保存" #. module: caldav #: code:addons/caldav/calendar.py:1293 @@ -424,7 +424,7 @@ msgstr "カレンダー" msgid "" "Please install python-vobject from http://vobject.skyhouseconsulting.com/" msgstr "" -"http://vobject.skyhouseconsulting.com/ からpython-vobjectをダウンロードして、インストールしてください" +"http://vobject.skyhouseconsulting.com/ からpython-vobjectをダウンロードして、インストールして下さい。" #. module: caldav #: code:addons/caldav/wizard/calendar_event_import.py:63 @@ -493,7 +493,7 @@ msgstr "集合" #. module: caldav #: field:basic.calendar,write_date:0 msgid "Write Date" -msgstr "日付を入れて下さい。" +msgstr "記入日" #. module: caldav #: code:addons/caldav/wizard/caldav_browse.py:32 @@ -581,7 +581,7 @@ msgstr "basic.calendar.alias" #: view:calendar.event.import:0 #: field:calendar.event.import,file_path:0 msgid "Select ICS File" -msgstr "ICS ファイルを選んで下さい。" +msgstr "ICS ファイルの選択" #. module: caldav #: field:user.preference,device:0 diff --git a/addons/caldav/i18n/pt.po b/addons/caldav/i18n/pt.po index 1a27f114f0c..2746ddd853a 100644 --- a/addons/caldav/i18n/pt.po +++ b/addons/caldav/i18n/pt.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-10 17:59+0000\n" -"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n" +"PO-Revision-Date: 2012-05-31 15:16+0000\n" +"Last-Translator: ThinkOpen Solutions <Unknown>\n" "Language-Team: Portuguese <pt@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-05-11 05:13+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: caldav #: view:basic.calendar:0 @@ -672,7 +672,7 @@ msgstr "" #. module: caldav #: view:caldav.browse:0 msgid "Browse Caldav" -msgstr "" +msgstr "Pesquisa Caldav" #. module: caldav #: field:user.preference,host_name:0 diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py index 2049b3a8cc9..0c9b75b4d41 100644 --- a/addons/crm/__openerp__.py +++ b/addons/crm/__openerp__.py @@ -57,6 +57,7 @@ Creates a dashboard for CRM that includes: 'depends': [ 'base_action_rule', 'base_setup', + 'base_status', 'process', 'mail', 'base_calendar', @@ -66,7 +67,6 @@ Creates a dashboard for CRM that includes: ], 'init_xml': [ 'crm_data.xml', - 'crm_meeting_data.xml', 'crm_lead_data.xml', 'crm_meeting_data.xml', 'crm_phonecall_data.xml', diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml index b8e05b68cf5..fd6b95d81f9 100644 --- a/addons/crm/board_crm_view.xml +++ b/addons/crm/board_crm_view.xml @@ -11,27 +11,10 @@ <field name="name" string="Opportunity"/> <field name="partner_id" string="Customer"/> <field name="stage_id"/> - <button name="stage_previous" string="Previous Stage" - states="open,pending" type="object" icon="gtk-go-back" /> - <button name="stage_next" string="Next Stage" - states="open,pending" type="object" - icon="gtk-go-forward" /> <field name="planned_revenue" sum="Total of Planned Revenue"/> <field name="probability" widget="progressbar" avg="Avg. of Probability"/> <field name="date_deadline" invisible="1"/> - <field name="state"/> - <button name="case_open" string="Open" - states="draft,pending" type="object" - icon="gtk-go-forward" /> - <button name="case_pending" string="Pending" - states="open,draft" type="object" - icon="gtk-media-pause" /> - <button name="case_mark_lost" string="Lost" - states="open,pending" type="object" - icon="gtk-cancel" /> - <button name="case_close" string="Won" - states="open,draft,pending" type="object" - icon="gtk-apply" /> + <field name="state" groups="base.group_no_one"/> </tree> </field> </record> diff --git a/addons/crm/crm.py b/addons/crm/crm.py index eb6314c5103..65af3f9e530 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,12 +19,11 @@ # ############################################################################## -import time import base64 -import tools - +import time from osv import fields from osv import osv +import tools from tools.translate import _ MAX_LEVEL = 15 @@ -57,8 +56,11 @@ class crm_case_channel(osv.osv): } class crm_case_stage(osv.osv): - """ Stage of case """ - + """ Model for case stages. This models the main stages of a document + management flow. Main CRM objects (leads, opportunities, project + issues, ...) will now use only stages, instead of state and stages. + Stages are for example used to display the kanban view of records. + """ _name = "crm.case.stage" _description = "Stage of case" _rec_name = 'name' @@ -66,22 +68,34 @@ class crm_case_stage(osv.osv): _columns = { 'name': fields.char('Stage Name', size=64, required=True, translate=True), - 'sequence': fields.integer('Sequence', help="Used to order stages."), + 'sequence': fields.integer('Sequence', help="Used to order stages. Lower is better."), 'probability': fields.float('Probability (%)', required=True, help="This percentage depicts the default/average probability of the Case for this stage to be a success"), 'on_change': fields.boolean('Change Probability Automatically', help="Setting this stage will change the probability automatically on the opportunity."), 'requirements': fields.text('Requirements'), - 'section_ids':fields.many2many('crm.case.section', 'section_stage_rel', 'stage_id', 'section_id', 'Sections'), - 'case_default': fields.boolean('Common to All Teams', help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."), + 'section_ids':fields.many2many('crm.case.section', 'section_stage_rel', 'stage_id', 'section_id', string='Sections', + help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."), + 'state': fields.selection(AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change regarding the selected stage. For example, if a stage is related to the state 'Close', when your document reaches this stage, it will be automatically have the 'closed' state."), + 'case_default': fields.boolean('Common to All Teams', + help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."), + 'fold': fields.boolean('Hide in Views when Empty', + help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."), + 'type': fields.selection([ ('lead','Lead'), + ('opportunity', 'Opportunity'), + ('both', 'Both')], + string='Type', size=16, required=True, + help="This field is used to distinguish stages related to Leads from stages related to Opportunities, or to specify stages available for both types."), } _defaults = { 'sequence': lambda *args: 1, 'probability': lambda *args: 0.0, + 'state': 'draft', + 'fold': False, + 'type': 'both', } class crm_case_section(osv.osv): - """Sales Team""" - + """ Model for sales teams. """ _name = "crm.case.section" _description = "Sales Teams" _order = "complete_name" @@ -107,6 +121,7 @@ class crm_case_section(osv.osv): 'working_hours': fields.float('Working Hours', digits=(16,2 )), 'stage_ids': fields.many2many('crm.case.stage', 'section_stage_rel', 'section_id', 'stage_id', 'Stages'), } + def _get_stage_common(self, cr, uid, context): ids = self.pool.get('crm.case.stage').search(cr, uid, [('case_default','=',1)], context=context) return ids @@ -171,429 +186,6 @@ class crm_case_resource_type(osv.osv): 'section_id': fields.many2one('crm.case.section', 'Sales Team'), } -class crm_base(object): - """ Base utility mixin class for crm objects, - Object subclassing this should define colums: - date_open - date_closed - user_id - partner_id - """ - def _get_default_partner_address(self, cr, uid, context=None): - """Gives id of default address for current user - :param context: if portal in context is false return false anyway - """ - if context is None: - context = {} - if not context.get('portal'): - return False - # was user.address_id.id, but address_id has been removed - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - if hasattr(user, 'partner_address_id') and user.partner_address_id: - return user.partner_address_id - return False - - def _get_default_partner(self, cr, uid, context=None): - """Gives id of partner for current user - :param context: if portal in context is false return false anyway - """ - if context is None: - context = {} - if not context.get('portal', False): - return False - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - if hasattr(user, 'partner_address_id') and user.partner_address_id: - return user.partner_address_id - return user.company_id.partner_id.id - - def _get_default_email(self, cr, uid, context=None): - """Gives default email address for current user - :param context: if portal in context is false return false anyway - """ - if not context.get('portal', False): - return False - user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - return user.user_email - - def _get_default_user(self, cr, uid, context=None): - """Gives current user id - :param context: if portal in context is false return false anyway - """ - if context and context.get('portal', False): - return False - return uid - - def _get_section(self, cr, uid, context=None): - return False - - def onchange_partner_address_id(self, cr, uid, ids, add, email=False): - """This function returns value of partner email based on Partner Address - :param ids: List of case IDs - :param add: Id of Partner's address - :param email: Partner's email ID - """ - data = {'value': {'email_from': False, 'phone':False}} - if add: - address = self.pool.get('res.partner').browse(cr, uid, add) - data['value'] = {'email_from': address and address.email or False , - 'phone': address and address.phone or False} - if 'phone' not in self._columns: - del data['value']['phone'] - return data - - def onchange_partner_id(self, cr, uid, ids, part, email=False): - """This function returns value of partner address based on partner - :param ids: List of case IDs - :param part: Partner's id - :param email: Partner's email ID - """ - data={} - if part: - addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact']) - data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value']) - return {'value': data} - - def case_get_note_msg_prefix(self, cr, uid, id, context=None): - return '' - - def case_open_send_note(self, cr, uid, ids, context=None): - for id in ids: - msg = '%s has been <b>opened</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], body=msg, context=context) - return True - - def case_close_send_note(self, cr, uid, ids, context=None): - for id in ids: - msg = '%s has been <b>closed</b>.'% (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], body=msg, context=context) - return True - - def case_cancel_send_note(self, cr, uid, ids, context=None): - for id in ids: - msg = '%s has been <b>canceled</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], body=msg, context=context) - return True - - def case_pending_send_note(self, cr, uid, ids, context=None): - for id in ids: - msg = '%s is now <b>pending</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], body=msg, context=context) - return True - - def case_reset_send_note(self, cr, uid, ids, context=None): - for id in ids: - msg = '%s has been <b>renewed</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], body=msg, context=context) - return True - - def case_open(self, cr, uid, ids, context=None): - """Opens Case - :param ids: List of case Ids - """ - cases = self.browse(cr, uid, ids) - for case in cases: - data = {'state': 'open', 'active': True} - if not case.user_id: - data['user_id'] = uid - self.write(cr, uid, [case.id], data) - self.case_open_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'open') - - return True - - def case_close(self, cr, uid, ids, context=None): - """Closes Case - :param ids: List of case Ids - """ - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'done', 'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'), }) - # We use the cache of cases to keep the old case state - self.case_close_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'done') - return True - - def case_cancel(self, cr, uid, ids, context=None): - """Cancels Case - :param ids: List of case Ids - """ - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'cancel', 'active': True}) - # We use the cache of cases to keep the old case state - self.case_cancel_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'cancel') - return True - - def case_pending(self, cr, uid, ids, context=None): - """Marks case as pending - :param ids: List of case Ids - """ - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'pending', 'active': True}) - self.case_pending_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'pending') - return True - - def case_reset(self, cr, uid, ids, context=None): - """Resets case as draft - :param ids: List of case Ids - """ - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'draft', 'active': True}) - self.case_reset_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'draft') - return True - - def _action(self, cr, uid, cases, state_to, scrit=None, context=None): - if context is None: - context = {} - context['state_to'] = state_to - rule_obj = self.pool.get('base.action.rule') - model_obj = self.pool.get('ir.model') - model_ids = model_obj.search(cr, uid, [('model','=',self._name)]) - rule_ids = rule_obj.search(cr, uid, [('model_id','=',model_ids[0])]) - return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context) - -class crm_case(crm_base): - """ A simple python class to be used for common functions - Object that inherit from this class should inherit from mailgate.thread - And need a stage_id field - And object that inherit (orm inheritance) from a class the overwrite copy - """ - - def stage_find(self, cr, uid, section_id, domain=[], order='sequence'): - domain = list(domain) - if section_id: - domain.append(('section_ids', '=', section_id)) - stage_ids = self.pool.get('crm.case.stage').search(cr, uid, domain, order=order) - if stage_ids: - return stage_ids[0] - return False - - def stage_set(self, cr, uid, ids, stage_id, context=None): - value = {} - if hasattr(self,'onchange_stage_id'): - value = self.onchange_stage_id(cr, uid, ids, stage_id)['value'] - value['stage_id'] = stage_id - return self.write(cr, uid, ids, value, context=context) - - def stage_change(self, cr, uid, ids, op, order, context=None): - if context is None: - context = {} - for case in self.browse(cr, uid, ids, context=context): - seq = 0 - if case.stage_id: - seq = case.stage_id.sequence - section_id = None - if case.section_id: - section_id = case.section_id.id - next_stage_id = self.stage_find(cr, uid, section_id, [('sequence',op,seq)],order) - if next_stage_id: - return self.stage_set(cr, uid, [case.id], next_stage_id, context=context) - return False - - def stage_next(self, cr, uid, ids, context=None): - """This function computes next stage for case from its current stage - using available stage for that case type - """ - return self.stage_change(cr, uid, ids, '>','sequence', context) - - def stage_previous(self, cr, uid, ids, context=None): - """This function computes previous stage for case from its current - stage using available stage for that case type - """ - return self.stage_change(cr, uid, ids, '<', 'sequence desc', context) - - def copy(self, cr, uid, id, default=None, context=None): - """Overrides orm copy method to avoid copying messages, - as well as date_closed and date_open columns if they - exist.""" - if default is None: - default = {} - - default.update({ 'message_ids': [], }) - if hasattr(self, '_columns'): - if self._columns.get('date_closed'): - default.update({ 'date_closed': False, }) - if self._columns.get('date_open'): - default.update({ 'date_open': False }) - return super(crm_case, self).copy(cr, uid, id, default, context=context) - - def case_escalate_send_note(self, cr, uid, ids, new_section=None, context=None): - for id in ids: - if new_section: - msg = '%s has been <b>escalated</b> to <b>%s</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context), new_section.name) - else: - msg = '%s has been <b>escalated</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context)) - self.message_append_note(cr, uid, [id], 'System Notification', msg, context=context) - return True - - def case_get_note_msg_prefix(self, cr, uid, id, context=None): - return '' - - def case_open(self, cr, uid, ids, context=None): - """Opens Case""" - cases = self.browse(cr, uid, ids) - for case in cases: - data = {'state': 'open', 'active': True } - if not case.user_id: - data['user_id'] = uid - self.write(cr, uid, [case.id], data) - self.case_open_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'open') - return True - - def case_close(self, cr, uid, ids, context=None): - """Closes Case""" - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'done', - 'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'), - }) - # - # We use the cache of cases to keep the old case state - # - self.case_close_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'done') - return True - - def case_escalate(self, cr, uid, ids, context=None): - """Escalates case to parent level""" - cases = self.browse(cr, uid, ids) - for case in cases: - data = {'active': True} - if case.section_id.parent_id: - data['section_id'] = case.section_id.parent_id.id - if case.section_id.parent_id.change_responsible: - if case.section_id.parent_id.user_id: - data['user_id'] = case.section_id.parent_id.user_id.id - else: - raise osv.except_osv(_('Error !'), _('You can not escalate, you are already at the top level regarding your sales-team category.')) - self.write(cr, uid, [case.id], data) - case.case_escalate_send_note(case.section_id.parent_id) - cases = self.browse(cr, uid, ids) - self._action(cr, uid, cases, 'escalate') - return True - - def case_cancel(self, cr, uid, ids, context=None): - """Cancels Case""" - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'cancel', - 'active': True}) - self.case_cancel_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'cancel') - return True - - def case_pending(self, cr, uid, ids, context=None): - """Marks case as pending""" - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': 'pending', 'active': True}) - self.case_pending_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, 'pending') - return True - - def case_reset(self, cr, uid, ids, context=None): - """Resets case as draft""" - state = 'draft' - cases = self.browse(cr, uid, ids) - cases[0].state # to fill the browse record cache - self.write(cr, uid, ids, {'state': state, 'active': True}) - self.case_reset_send_note(cr, uid, ids, context=context) - self._action(cr, uid, cases, state) - return True - - def remind_partner(self, cr, uid, ids, context=None, attach=False): - return self.remind_user(cr, uid, ids, context, attach, - destination=False) - - def remind_user(self, cr, uid, ids, context=None, attach=False, destination=True): - mail_message = self.pool.get('mail.message') - for case in self.browse(cr, uid, ids, context=context): - if not destination and not case.email_from: - return False - if not case.user_id.user_email: - return False - if destination and case.section_id.user_id: - case_email = case.section_id.user_id.user_email - else: - case_email = case.user_id.user_email - - src = case_email - dest = case.user_id.user_email or "" - body = case.description or "" - for message in case.message_ids: - if message.email_from and message.body_text: - body = message.body_text - break - - if not destination: - src, dest = dest, case.email_from - if body and case.user_id.signature: - if body: - body += '\n\n%s' % (case.user_id.signature) - else: - body = '\n\n%s' % (case.user_id.signature) - - body = self.format_body(body) - - attach_to_send = {} - - if attach: - attach_ids = self.pool.get('ir.attachment').search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', case.id)]) - attach_to_send = self.pool.get('ir.attachment').read(cr, uid, attach_ids, ['datas_fname', 'datas']) - attach_to_send = dict(map(lambda x: (x['datas_fname'], base64.decodestring(x['datas'])), attach_to_send)) - - # Send an email - subject = "Reminder: [%s] %s" % (str(case.id), case.name, ) - mail_message.schedule_with_attach(cr, uid, - src, - [dest], - subject, - body, - model=self._name, - reply_to=case.section_id.reply_to, - res_id=case.id, - attachments=attach_to_send, - context=context - ) - return True - - def _check(self, cr, uid, ids=False, context=None): - """Function called by the scheduler to process cases for date actions - Only works on not done and cancelled cases - """ - cr.execute('select * from crm_case \ - where (date_action_last<%s or date_action_last is null) \ - and (date_action_next<=%s or date_action_next is null) \ - and state not in (\'cancel\',\'done\')', - (time.strftime("%Y-%m-%d %H:%M:%S"), - time.strftime('%Y-%m-%d %H:%M:%S'))) - - ids2 = map(lambda x: x[0], cr.fetchall() or []) - cases = self.browse(cr, uid, ids2, context=context) - return self._action(cr, uid, cases, False, context=context) - - def format_body(self, body): - return self.pool.get('base.action.rule').format_body(body) - - def format_mail(self, obj, body): - return self.pool.get('base.action.rule').format_mail(obj, body) - - def message_thread_followers(self, cr, uid, ids, context=None): - res = {} - for case in self.browse(cr, uid, ids, context=context): - l=[] - if case.email_cc: - l.append(case.email_cc) - if case.user_id and case.user_id.user_email: - l.append(case.user_id.user_email) - res[case.id] = l - return res def _links_get(self, cr, uid, context=None): """Gets links value for reference field""" diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index bf20deb0ce5..82bc50eafea 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,15 +19,15 @@ # ############################################################################## -from osv import fields, osv -from datetime import datetime +import binascii +from base_status.base_stage import base_stage import crm +from datetime import datetime +from mail.mail_message import to_email +from osv import fields, osv import time -from tools.translate import _ -from crm import crm_case -import binascii import tools -from mail.mail_message import to_email +from tools.translate import _ CRM_LEAD_PENDING_STATES = ( crm.AVAILABLE_STATES[2][0], # Cancelled @@ -35,22 +35,68 @@ CRM_LEAD_PENDING_STATES = ( crm.AVAILABLE_STATES[4][0], # Pending ) -class crm_lead(crm_case, osv.osv): +class crm_lead(base_stage, osv.osv): """ CRM Lead Case """ _name = "crm.lead" _description = "Lead/Opportunity" _order = "priority,date_action,id desc" _inherit = ['ir.needaction_mixin', 'mail.thread','res.partner'] + def _get_default_section_id(self, cr, uid, context=None): + """ Gives default section by checking if present in the context """ + return (self._resolve_section_id_from_context(cr, uid, context=context) or False) + + def _get_default_stage_id(self, cr, uid, context=None): + """ Gives default stage_id """ + section_id = self._get_default_section_id(cr, uid, context=context) + return self.stage_find(cr, uid, [], section_id, [('state', '=', 'draft'), ('type', '=', 'both')], context=context) + + def _resolve_section_id_from_context(self, cr, uid, context=None): + """ Returns ID of section based on the value of 'section_id' + context key, or None if it cannot be resolved to a single + Sales Team. + """ + if context is None: + context = {} + if type(context.get('default_section_id')) in (int, long): + return context.get('default_section_id') + if isinstance(context.get('default_section_id'), basestring): + section_name = context['default_section_id'] + section_ids = self.pool.get('crm.case.section').name_search(cr, uid, name=section_name, context=context) + if len(section_ids) == 1: + return int(section_ids[0][0]) + return None + + def _resolve_type_from_context(self, cr, uid, context=None): + """ Returns the type (lead or opportunity) from the type context + key. Returns None if it cannot be resolved. + """ + if context is None: + context = {} + return context.get('default_type') + def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): access_rights_uid = access_rights_uid or uid stage_obj = self.pool.get('crm.case.stage') order = stage_obj._order + # lame hack to allow reverting search, should just work in the trivial case if read_group_order == 'stage_id desc': - # lame hack to allow reverting search, should just work in the trivial case order = "%s desc" % order - stage_ids = stage_obj._search(cr, uid, ['|', ('id','in',ids),('case_default','=',1)], order=order, - access_rights_uid=access_rights_uid, context=context) + # retrieve section_id from the context and write the domain + # - ('id', 'in', 'ids'): add columns that should be present + # - OR ('case_default', '=', True), ('fold', '=', False): add default columns that are not folded + # - OR ('section_ids', '=', section_id), ('fold', '=', False) if section_id: add section columns that are not folded + search_domain = [] + section_id = self._resolve_section_id_from_context(cr, uid, context=context) + if section_id: + search_domain += ['|', '&', ('section_ids', '=', section_id), ('fold', '=', False)] + search_domain += ['|', ('id', 'in', ids), '&', ('case_default', '=', True), ('fold', '=', False)] + # retrieve type from the context (if set: choose 'type' or 'both') + type = self._resolve_type_from_context(cr, uid, context=context) + if type: + search_domain += ['|', ('type', '=', type), ('type', '=', 'both')] + # perform search + stage_ids = stage_obj._search(cr, uid, search_domain, order=order, access_rights_uid=access_rights_uid, context=context) result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context) # restore order of the search result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) @@ -143,7 +189,7 @@ class crm_lead(crm_case, osv.osv): select=True, help="Optional linked partner, usually after conversion of the lead"), 'id': fields.integer('ID', readonly=True), - 'name': fields.char('Name', size=64, select=1), + 'name': fields.char('Subject', size=64, required=True, select=1), 'active': fields.boolean('Active', required=False), 'date_action_last': fields.datetime('Last Action', readonly=1), 'date_action_next': fields.datetime('Next Action', readonly=1), @@ -154,7 +200,6 @@ class crm_lead(crm_case, osv.osv): 'email_cc': fields.text('Global CC', size=252 , help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"), 'description': fields.text('Notes'), 'write_date': fields.datetime('Update Date' , readonly=True), - 'categ_id': fields.many2one('crm.case.categ', 'Category', \ domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]"), 'type_id': fields.many2one('crm.case.resource.type', 'Campaign', \ @@ -167,7 +212,8 @@ class crm_lead(crm_case, osv.osv): 'type':fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', help="Type is used to separate Leads and Opportunities"), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True), 'date_closed': fields.datetime('Closed', readonly=True), - 'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('section_ids', '=', section_id)]"), + 'stage_id': fields.many2one('crm.case.stage', 'Stage', + domain="['&', '|', ('section_ids', '=', section_id), ('case_default', '=', True), '|', ('type', '=', type), ('type', '=', 'both')]"), 'user_id': fields.many2one('res.users', 'Salesperson'), 'referred': fields.char('Referred By', size=64), 'date_open': fields.datetime('Opened', readonly=True), @@ -175,12 +221,13 @@ class crm_lead(crm_case, osv.osv): multi='day_open', type="float", store=True), 'day_close': fields.function(_compute_day, string='Days to Close', \ multi='day_close', type="float", store=True), - 'state': fields.selection(crm.AVAILABLE_STATES, 'Status', size=16, readonly=True, - help='The state is set to \'Draft\', when a case is created.\ - \nIf the case is in progress the state is set to \'In progress\'.\ - \nWhen the case is over, the state is set to \'Done\'.\ - \nIf the case needs to be reviewed then the state is set to \'Pending\'.'), - 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=crm.AVAILABLE_STATES, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If the case needs to be reviewed then the state is \ + set to \'Pending\'.'), 'subjects': fields.function(_get_email_subject, fnct_search=_history_search, string='Subject of Email', type='char', size=64), # Only used for type opportunity @@ -192,23 +239,21 @@ class crm_lead(crm_case, osv.osv): 'date_deadline': fields.date('Expected Closing'), 'date_action': fields.date('Next Action Date', select=True), 'title_action': fields.char('Next Action', size=64), - 'stage_id': fields.many2one('crm.case.stage', 'Stage', domain="[('section_ids', '=', section_id)]"), 'color': fields.integer('Color Index'), 'partner_address_name': fields.related('partner_id', 'name', type='char', string='Partner Contact Name', readonly=True), 'partner_address_email': fields.related('partner_id', 'email', type='char', string='Partner Contact Email', readonly=True), 'company_currency': fields.related('company_id', 'currency_id', 'symbol', type='char', string='Company Currency', readonly=True), 'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True), 'user_login': fields.related('user_id', 'login', type='char', string='User Login', readonly=True), - } _defaults = { - 'active': lambda *a: 1, - 'user_id': crm_case._get_default_user, - 'email_from': crm_case._get_default_email, - 'state': lambda *a: 'draft', - 'type': lambda *a: 'lead', - 'section_id': crm_case._get_section, + 'active': 1, + 'type': 'lead', + 'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c), + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), + 'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c), + 'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c), 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c), 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], 'color': 0, @@ -241,95 +286,104 @@ class crm_lead(crm_case, osv.osv): return {'value':{}} return {'value':{'probability': stage.probability}} - def stage_find_percent(self, cr, uid, percent, section_id): - """ Return the first stage with a probability == percent + def _check(self, cr, uid, ids=False, context=None): + """ Override of the base.stage method. + Function called by the scheduler to process cases for date actions + Only works on not done and cancelled cases + """ + cr.execute('select * from crm_case \ + where (date_action_last<%s or date_action_last is null) \ + and (date_action_next<=%s or date_action_next is null) \ + and state not in (\'cancel\',\'done\')', + (time.strftime("%Y-%m-%d %H:%M:%S"), + time.strftime('%Y-%m-%d %H:%M:%S'))) + + ids2 = map(lambda x: x[0], cr.fetchall() or []) + cases = self.browse(cr, uid, ids2, context=context) + return self._action(cr, uid, cases, False, context=context) + + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the lead: + - type: stage type must be the same or 'both' + - section_id: if set, stages must belong to this section or + be a default stage; if not set, stages must be default + stages """ - stage_pool = self.pool.get('crm.case.stage') - if section_id : - ids = stage_pool.search(cr, uid, [("probability", '=', percent), ("section_ids", 'in', [section_id])]) - else : - ids = stage_pool.search(cr, uid, [("probability", '=', percent)]) - - if ids: - return ids[0] + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + section_ids = [] + types = ['both'] + if section_id: + section_ids.append(section_id) + for lead in cases: + if lead.section_id: + section_ids.append(lead.section_id.id) + if lead.type not in types: + types.append(lead.type) + # OR all section_ids and OR with case_default + search_domain = [] + if section_ids: + search_domain += [('|')] * len(section_ids) + for section_id in section_ids: + search_domain.append(('section_ids', '=', section_id)) + search_domain.append(('case_default', '=', True)) + # AND with cases types + search_domain.append(('type', 'in', types)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('crm.case.stage').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] return False - def stage_find_lost(self, cr, uid, section_id): - return self.stage_find_percent(cr, uid, 0.0, section_id) - - def stage_find_won(self, cr, uid, section_id): - return self.stage_find_percent(cr, uid, 100.0, section_id) - - def case_open(self, cr, uid, ids, context=None): - for lead in self.browse(cr, uid, ids, context=context): - if lead.state == 'draft': - value = {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')} - self.write(cr, uid, [lead.id], value) - if lead.type == 'opportunity' and not lead.stage_id: - stage_id = self.stage_find(cr, uid, lead.section_id.id or False, [('sequence','>',0)]) - if stage_id: - self.stage_set(cr, uid, [lead.id], stage_id) - res = super(crm_lead, self).case_open(cr, uid, ids, context) - return res - - def case_close(self, cr, uid, ids, context=None): - res = super(crm_lead, self).case_close(cr, uid, ids, context) - self.write(cr, uid, ids, {'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')}) - return res - def case_cancel(self, cr, uid, ids, context=None): - """Overrides cancel for crm_case for setting probability - """ - res = super(crm_lead, self).case_cancel(cr, uid, ids, context) - self.write(cr, uid, ids, {'probability' : 0.0}) + """ Overrides case_cancel from base_stage to set probability """ + res = super(crm_lead, self).case_cancel(cr, uid, ids, context=context) + self.write(cr, uid, ids, {'probability' : 0.0}, context=context) return res def case_reset(self, cr, uid, ids, context=None): - """Overrides reset as draft in order to set the stage field as empty - """ - res = super(crm_lead, self).case_reset(cr, uid, ids, context) - self.write(cr, uid, ids, {'stage_id': False, 'probability': 0.0}) + """ Overrides case_reset from base_stage to set probability """ + res = super(crm_lead, self).case_reset(cr, uid, ids, context=context) + self.write(cr, uid, ids, {'probability': 0.0}, context=context) return res def case_mark_lost(self, cr, uid, ids, context=None): - """Mark the case as lost: state = done and probability = 0% - """ - res = super(crm_lead, self).case_close(cr, uid, ids, context) - self.write(cr, uid, ids, {'probability' : 0.0}) + """ Mark the case as lost: state=cancel and probability=0 """ for lead in self.browse(cr, uid, ids): - stage_id = self.stage_find_lost(cr, uid, lead.section_id.id or False) + stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, [('probability', '=', 0.0)], context=context) if stage_id: - self.stage_set(cr, uid, [lead.id], stage_id) - return res + self.case_set(cr, uid, [lead.id], values_to_update={'probability': 0.0}, new_stage_id=stage_id, context=context) + self.case_mark_lost_send_note(cr, uid, ids, context=context) + return True def case_mark_won(self, cr, uid, ids, context=None): - """Mark the case as lost: state = done and probability = 0% - """ - res = super(crm_lead, self).case_close(cr, uid, ids, context=None) - self.write(cr, uid, ids, {'probability' : 100.0}) + """ Mark the case as lost: state=done and probability=100 """ for lead in self.browse(cr, uid, ids): - stage_id = self.stage_find_won(cr, uid, lead.section_id.id or False) + stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, [('probability', '=', 100.0)], context=context) if stage_id: - self.stage_set(cr, uid, [lead.id], stage_id) - self.case_mark_won_send_note(cr, uid, [lead.id], context=context) - return res + self.case_set(cr, uid, [lead.id], values_to_update={'probability': 100.0}, new_stage_id=stage_id, context=context) + self.case_mark_won_send_note(cr, uid, ids, context=context) + return True def set_priority(self, cr, uid, ids, priority): - """Set lead priority + """ Set lead priority """ return self.write(cr, uid, ids, {'priority' : priority}) def set_high_priority(self, cr, uid, ids, context=None): - """Set lead priority to high + """ Set lead priority to high """ return self.set_priority(cr, uid, ids, '1') def set_normal_priority(self, cr, uid, ids, context=None): - """Set lead priority to normal + """ Set lead priority to normal """ return self.set_priority(cr, uid, ids, '3') - def _merge_data(self, cr, uid, ids, oldest, fields, context=None): # prepare opportunity data into dictionary for merging opportunities = self.browse(cr, uid, ids, context=context) @@ -807,22 +861,12 @@ class crm_lead(crm_case, osv.osv): "You should better cancel it, instead of deleting it.") % lead.name) return super(crm_lead, self).unlink(cr, uid, ids, context) - def write(self, cr, uid, ids, vals, context=None): - if not context: - context = {} - - if 'date_closed' in vals: - return super(crm_lead,self).write(cr, uid, ids, vals, context=context) - - if vals.get('stage_id'): - stage = self.pool.get('crm.case.stage').browse(cr, uid, vals['stage_id'], context=context) + if vals.get('stage_id') and not vals.get('probability'): # change probability of lead(s) if required by stage - if not vals.get('probability') and stage.on_change: + stage = self.pool.get('crm.case.stage').browse(cr, uid, vals['stage_id'], context=context) + if stage.on_change: vals['probability'] = stage.probability - for case in self.browse(cr, uid, ids, context=context): - message = _("Stage changed to <b>%s</b>.") % (stage.name) - case.message_append_note(body=message) return super(crm_lead,self).write(cr, uid, ids, vals, context) # ---------------------------------------- @@ -837,6 +881,11 @@ class crm_lead(crm_case, osv.osv): sub_ids.append(obj.user_id.id) return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + stage_name = self.pool.get('crm.case.stage').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to <b>%s</b>.") % (stage_name), context=context) + def case_get_note_msg_prefix(self, cr, uid, lead, context=None): if isinstance(lead, (int, long)): lead = self.browse(cr, uid, [lead], context=context)[0] diff --git a/addons/crm/crm_lead_data.xml b/addons/crm/crm_lead_data.xml index aaa00307bfe..306a35924a9 100644 --- a/addons/crm/crm_lead_data.xml +++ b/addons/crm/crm_lead_data.xml @@ -3,47 +3,81 @@ <data noupdate="1"> <!-- Crm stages --> - <record model="crm.case.stage" id="stage_lead6"> - <field name="name">Lost</field> - <field eval="1" name="case_default"/> - <field eval="'0'" name="probability"/> - <field eval="'0'" name="sequence"/> - </record> <record model="crm.case.stage" id="stage_lead1"> <field name="name">New</field> <field eval="1" name="case_default"/> + <field name="state">draft</field> <field eval="'10'" name="probability"/> - <field eval="'11'" name="sequence"/> + <field eval="'10'" name="sequence"/> + <field name="type">both</field> </record> <record model="crm.case.stage" id="stage_lead2"> + <field name="name">Opportunity</field> + <field eval="1" name="case_default"/> + <field name="state">open</field> + <field eval="'20'" name="probability"/> + <field eval="'11'" name="sequence"/> + <field name="type">lead</field> + </record> + <record model="crm.case.stage" id="stage_lead3"> <field name="name">Qualification</field> <field eval="1" name="case_default"/> + <field name="state">open</field> <field eval="'20'" name="probability"/> <field eval="'12'" name="sequence"/> + <field name="type">opportunity</field> </record> - <record model="crm.case.stage" id="stage_lead3"> + <record model="crm.case.stage" id="stage_lead4"> <field name="name">Proposition</field> <field eval="1" name="case_default"/> + <field name="state">open</field> <field eval="'40'" name="probability"/> <field eval="'13'" name="sequence"/> + <field name="type">opportunity</field> </record> - <record model="crm.case.stage" id="stage_lead4"> + <record model="crm.case.stage" id="stage_lead5"> <field name="name">Negotiation</field> <field eval="1" name="case_default"/> + <field name="state">open</field> <field eval="'60'" name="probability"/> <field eval="'14'" name="sequence"/> + <field name="type">opportunity</field> </record> - <record model="crm.case.stage" id="stage_lead5"> + <record model="crm.case.stage" id="stage_lead6"> <field name="name">Won</field> <field eval="1" name="case_default"/> + <field name="state">done</field> <field eval="'100'" name="probability"/> <field eval="'15'" name="sequence"/> <field eval="1" name="on_change"/> + <field name="type">opportunity</field> + </record> + <record model="crm.case.stage" id="stage_lead7"> + <field name="name">Dead</field> + <field eval="1" name="case_default"/> + <field eval="True" name="fold"/> + <field name="state">cancel</field> + <field eval="'0'" name="probability"/> + <field eval="'16'" name="sequence"/> + <field name="type">lead</field> + </record> + <record model="crm.case.stage" id="stage_lead8"> + <field name="name">Lost</field> + <field eval="1" name="case_default"/> + <field eval="True" name="fold"/> + <field name="state">cancel</field> + <field eval="'0'" name="probability"/> + <field eval="'17'" name="sequence"/> + <field name="type">opportunity</field> </record> + <record model="crm.case.section" id="section_sales_department"> <field name="name">Sales Department</field> <field name="code">Sales</field> - <field name="stage_ids" eval="[(4, ref('stage_lead1')), (4, ref('stage_lead2')), (4, ref('stage_lead3')), (4, ref('stage_lead4')), (4, ref('stage_lead5')), (4, ref('stage_lead6'))]"/> + <field name="stage_ids" eval="[ (4, ref('stage_lead1')), (4, ref('stage_lead2')), + (4, ref('stage_lead3')), (4, ref('stage_lead4')), + (4, ref('stage_lead5')), (4, ref('stage_lead6')), + (4, ref('stage_lead7')), (4, ref('stage_lead8'))]"/> </record> <!-- Crm campain --> diff --git a/addons/crm/crm_lead_demo.xml b/addons/crm/crm_lead_demo.xml index 19987f8f61a..21c7f9e31ab 100644 --- a/addons/crm/crm_lead_demo.xml +++ b/addons/crm/crm_lead_demo.xml @@ -8,14 +8,13 @@ <field name="type">lead</field> <field name="user_id" ref="base.user_root"/> <field eval="'The Oil Company'" name="partner_name"/> - <field eval="'draft'" name="state"/> <field name="section_id" ref="crm.section_sales_marketing_department"/> <field eval="'Luc Latour'" name="contact_name"/> <field name="title" ref="base.res_partner_title_sir"/> - <field eval="'Training Manager'" name="function"/> - <field eval="'Paris'" name="city"/> - <field name="country_id" ref="base.fr"/> - <field eval="'luc.latour@oilcompany.fr'" name="email_from"/> + <field eval="'Training Manager'" name="function"/> + <field eval="'Paris'" name="city"/> + <field name="country_id" ref="base.fr"/> + <field eval="'luc.latour@oilcompany.fr'" name="email_from"/> <field eval="'0033 621 782-0636'" name="mobile"/> <field eval="1" name="active"/> <field name="stage_id" ref="crm.stage_lead1"/> @@ -29,18 +28,17 @@ <field name="type">lead</field> <field name="user_id" ref="base.user_root"/> <field eval="'Le Club SARL'" name="partner_name"/> - <field eval="'Marc Dufour'" name="contact_name"/> + <field eval="'Marc Dufour'" name="contact_name"/> <field name="title" ref="base.res_partner_title_sir"/> - <field eval="'Purchase Manager'" name="function"/> - <field eval="'Bordeaux'" name="city"/> - <field name="country_id" ref="base.fr"/> - <field eval="'md@leclub.fr'" name="email_from"/> - <field eval="'draft'" name="state"/> + <field eval="'Purchase Manager'" name="function"/> + <field eval="'Bordeaux'" name="city"/> + <field name="country_id" ref="base.fr"/> + <field eval="'md@leclub.fr'" name="email_from"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="'(392) 895-7917'" name="mobile"/> <field eval="1" name="active"/> <field name="categ_id" ref="crm.categ_oppor2"/> - <field name="stage_id" ref="crm.stage_lead2"/> + <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Interest in Your New Product'" name="name"/> <field eval="'(956) 293-2595'" name="phone"/> </record> @@ -50,15 +48,14 @@ <field name="type">lead</field> <field name="user_id" ref="base.user_demo"/> <field eval="'The Kompany'" name="partner_name"/> - <field eval="'John Miller'" name="contact_name"/> - <field eval="'New-York'" name="city"/> - <field name="country_id" ref="base.us"/> - <field eval="'draft'" name="state"/> + <field eval="'John Miller'" name="contact_name"/> + <field eval="'New-York'" name="city"/> + <field name="country_id" ref="base.us"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="'(820) 167-3208'" name="mobile"/> <field eval="1" name="active"/> <field name="categ_id" ref="crm.categ_oppor4"/> - <field name="stage_id" ref="crm.stage_lead2"/> + <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Need Info about Web Design'" name="name"/> <field eval="'(079) 681-2139'" name="phone"/> <field eval="'contact@thkompany.com'" name="email_from"/> @@ -68,10 +65,9 @@ <field eval="'3'" name="priority"/> <field name="type">lead</field> <field eval="'The Gas Company'" name="partner_name"/> - <field eval="'Henry Mc Coy'" name="contact_name"/> - <field eval="'London'" name="city"/> - <field name="country_id" ref="base.uk"/> - <field eval="'draft'" name="state"/> + <field eval="'Henry Mc Coy'" name="contact_name"/> + <field eval="'London'" name="city"/> + <field name="country_id" ref="base.uk"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="'(077) 582-4035'" name="mobile"/> <field eval="1" name="active"/> @@ -87,16 +83,15 @@ <field name="type">lead</field> <field name="user_id" ref="base.user_root"/> <field eval="'Stonage IT'" name="partner_name"/> - <field eval="'Carrie Helle'" name="contact_name"/> - <field eval="'Purchase Manager'" name="function"/> - <field eval="'Bruxelles'" name="city"/> - <field name="country_id" ref="base.be"/> - <field eval="'draft'" name="state"/> + <field eval="'Carrie Helle'" name="contact_name"/> + <field eval="'Purchase Manager'" name="function"/> + <field eval="'Bruxelles'" name="city"/> + <field name="country_id" ref="base.be"/> <field name="section_id" ref="crm.section_sales_marketing_department"/> <field eval="'(333) 715-1450'" name="mobile"/> <field eval="1" name="active"/> <field name="categ_id" ref="crm.categ_oppor1"/> - <field name="stage_id" ref="crm.stage_lead2"/> + <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Need a Quotation for PC1'" name="name"/> <field eval="'(855) 924-4364'" name="phone"/> <field eval="'helle@stonageit.be'" name="email_from"/> @@ -110,15 +105,14 @@ <field name="type">lead</field> <field name="user_id" ref="base.user_root"/> <field eval="'Opensides'" name="partner_name"/> - <field eval="'Tina Pinero'" name="contact_name"/> - <field eval="'Consultant'" name="function"/> - <field eval="'Roma'" name="city"/> - <field name="country_id" ref="base.it"/> - <field eval="'draft'" name="state"/> + <field eval="'Tina Pinero'" name="contact_name"/> + <field eval="'Consultant'" name="function"/> + <field eval="'Roma'" name="city"/> + <field name="country_id" ref="base.it"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="'(468) 017-2684'" name="mobile"/> <field name="categ_id" ref="crm.categ_oppor8"/> - <field name="stage_id" ref="crm.stage_lead6"/> + <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Need Info about your Services'" name="name"/> <field eval="'(373) 907-1009'" name="phone"/> <field eval="'info@opensides.be'" name="email_from"/> @@ -130,15 +124,14 @@ <field name="type">lead</field> <field name="user_id" ref="base.user_demo"/> <field eval="'Gardner Group'" name="partner_name"/> - <field eval="'Wendi Baltz'" name="contact_name"/> - <field eval="'Journalist'" name="function"/> - <field eval="'Kiev'" name="city"/> - <field name="country_id" ref="base.ua"/> - <field eval="'draft'" name="state"/> + <field eval="'Wendi Baltz'" name="contact_name"/> + <field eval="'Journalist'" name="function"/> + <field eval="'Kiev'" name="city"/> + <field name="country_id" ref="base.ua"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="'(463) 014-1208'" name="mobile"/> <field name="categ_id" ref="crm.categ_oppor4"/> - <field name="stage_id" ref="crm.stage_lead2"/> + <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Info about Your Company ?'" name="name"/> <field eval="'(282) 603-7489'" name="phone"/> </record> @@ -149,17 +142,16 @@ <field name="type">lead</field> <field name="user_id" ref="base.user_demo"/> <field eval="'Survey'" name="name"/> - <field eval="'open'" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor6"/> <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Survey Expert'" name="partner_name"/> - <field eval="'John Smith'" name="contact_name"/> - <field eval="'Sales'" name="function"/> - <field eval="'Cambridge'" name="city"/> - <field name="country_id" ref="base.uk"/> + <field eval="'John Smith'" name="contact_name"/> + <field eval="'Sales'" name="function"/> + <field eval="'Cambridge'" name="city"/> + <field name="country_id" ref="base.uk"/> <field eval="'smith_john@gmail.com'" name="email_from"/> - <field eval="'(282) 596-8584'" name="phone"/> + <field eval="'(282) 596-8584'" name="phone"/> </record> <record id="crm_case_business_card0" model="crm.lead"> <field eval="1" name="active"/> @@ -168,17 +160,16 @@ <field name="type">lead</field> <field name="user_id" ref="base.user_root"/> <field eval="'Partnership'" name="name"/> - <field eval="'open'" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor5"/> <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Marketing Business'" name="partner_name"/> - <field eval="'Laure Smith'" name="contact_name"/> - <field eval="'Sales'" name="function"/> - <field eval="'Oxford'" name="city"/> - <field name="country_id" ref="base.uk"/> + <field eval="'Laure Smith'" name="contact_name"/> + <field eval="'Sales'" name="function"/> + <field eval="'Oxford'" name="city"/> + <field name="country_id" ref="base.uk"/> <field eval="'l.smith@marketing-business.com'" name="email_from"/> - <field eval="'(252) 578-7894'" name="phone"/> + <field eval="'(252) 578-7894'" name="phone"/> </record> <record id="crm_case_imported_contact0" model="crm.lead"> <field eval="1" name="active"/> @@ -186,9 +177,8 @@ <field eval="'2'" name="priority"/> <field name="type">lead</field> <field eval="'Info'" name="name"/> - <field eval="'cancel'" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> - <field name="stage_id" ref="crm.stage_lead2"/> + <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Business Group'" name="partner_name"/> </record> <record id="crm_case_employee0" model="crm.lead"> @@ -198,12 +188,11 @@ <field name="type">lead</field> <field name="user_id" ref="base.user_demo"/> <field eval="'Need Info about Onsite Intervention'" name="name"/> - <field eval="'draft'" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor3"/> - <field name="stage_id" ref="crm.stage_lead2"/> + <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Agrolait'" name="partner_name"/> - <field eval="'Sylvie Lelitre'" name="contact_name"/> + <field eval="'Sylvie Lelitre'" name="contact_name"/> </record> <record id="crm_case_company_partnership0" model="crm.lead"> <field eval="1" name="active"/> @@ -212,28 +201,15 @@ <field name="type">lead</field> <field name="user_id" ref="base.user_demo"/> <field eval="'Need Quotation for 100 PC and 100 Keyboards'" name="name"/> - <field eval="'done'" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor1"/> <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Centrale d\'achats 1'" name="partner_name"/> </record> - <!-- Call Function to Open the leads--> - <function model="crm.lead" name="case_open" - eval="[ref('crm_case_electonicgoodsdealer0'), ref('crm_case_company_partnership0'), ref('crm_case_webvisitor0'), ref('crm_case_business_card0'), ref('crm.crm_case_employee0')], {'install_mode': True}" - /> - <!-- Call Function to mark the lead as Pending--> - <function model="crm.lead" name="case_pending" - eval="[ref('crm_case_itdeveloper0')], {'install_mode': True}" - /> - <!-- Call Function to Close the leads--> - <function model="crm.lead" name="case_close" - eval="[ref('crm_case_vpoperations0'), ref('crm_case_developingwebapplications0'), ref('crm_case_webvisitor0')], {'install_mode': True}" - /> - <!-- Call Function to Cancel the leads--> + <!-- Call Function to Cancel the leads (set as Dead) --> <function model="crm.lead" name="case_cancel" - eval="[ref('crm_case_mgroperations0'), ref('crm_case_imported_contact0')], {'install_mode': True}" + eval="[ref('crm_case_company_partnership0'), ref('crm_case_vpoperations0'), ref('crm_case_developingwebapplications0'), ref('crm_case_webvisitor0')], {'install_mode': True}" /> <!-- Demo Opportunities --> @@ -245,11 +221,10 @@ <field name="partner_id" ref="base.res_partner_3"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval="'open'" name="state"/> <field eval="'150000'" name="planned_revenue"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor1"/> - <field name="stage_id" ref="crm.stage_lead3"/> + <field name="stage_id" ref="crm.stage_lead4"/> <field eval="'Plan to buy 200 PC2'" name="name"/> <field eval="'Conf call with purchase manager'" name="title_action"/> </record> @@ -260,12 +235,11 @@ <field name="partner_id" ref="base.res_partner_9"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_demo"/> - <field eval="'draft'" name="state"/> <field eval="45000.0" name="planned_revenue"/> <field eval="35" name="probability"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor3"/> - <field name="stage_id" ref="crm.stage_lead2"/> + <field name="stage_id" ref="crm.stage_lead3"/> <field eval="'Pricing Information of Onsite Intervention'" name="name"/> <field eval="'Send price list regarding our interventions'" name="title_action"/> <field eval="time.strftime('%Y-%m-03')" name="date_action"/> @@ -283,12 +257,11 @@ <field name="partner_id" ref="base.res_partner_lucievonck0"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_demo"/> - <field eval="'draft'" name="state"/> <field eval="30000.0" name="planned_revenue"/> <field eval="30" name="probability"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor3"/> - <field name="stage_id" ref="crm.stage_lead2"/> + <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="time.strftime('%Y-01-10')" name="date_action"/> @@ -299,19 +272,18 @@ <field eval="1367" name="zip"/> <field name="country_id" ref="base.be"/> </record> - <record id="crm_case_unifliege" model="crm.lead"> + <record id="crm_case_unifliege" model="crm.lead"> <field eval="1" name="active"/> <field name="type">opportunity</field> <field name="type_id" ref="crm.type_lead2"/> <field name="partner_id" ref="base.res_partner_accent"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval="'open'" name="state"/> <field eval="2500.0" name="planned_revenue"/> <field eval="25" name="probability"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor6"/> - <field name="stage_id" ref="crm.stage_lead2"/> + <field name="stage_id" ref="crm.stage_lead3"/> <field eval="'Plan train our students on your product'" name="name"/> <field eval="'Call to define real needs about training'" name="title_action"/> <field eval="time.strftime('%Y-%m-04')" name="date_action"/> @@ -323,19 +295,18 @@ <field eval="75016" name="zip"/> <field name="country_id" ref="base.be"/> </record> - <record id="crm_case_bankwealthy2" model="crm.lead"> + <record id="crm_case_bankwealthy2" model="crm.lead"> <field eval="1" name="active"/> <field name="type">opportunity</field> <field name="type_id" ref="crm.type_lead2"/> <field name="partner_id" ref="base.res_partner_2"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval="'open'" name="state"/> <field eval="462.0" name="planned_revenue"/> <field eval="40" name="probability"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor2"/> - <field name="stage_id" ref="crm.stage_lead2"/> + <field name="stage_id" ref="crm.stage_lead3"/> <field eval="'Plan to buy 66 keyboards and 66 mouses'" name="name"/> <field eval="'Propose the kit keyboard+mouse'" name="title_action"/> <field eval="time.strftime('%Y-04-12')" name="date_action"/> @@ -354,12 +325,11 @@ <field name="partner_id" ref="base.res_partner_8"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval="'done'" name="state"/> <field eval="55000.0" name="planned_revenue"/> <field eval="90" name="probability"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor7"/> - <field name="stage_id" ref="crm.stage_lead5"/> + <field name="stage_id" ref="crm.stage_lead6"/> <field eval="'Need 20 Days of Consultancy'" name="name"/> <field eval="time.strftime('%Y-%m-%d')" name="date_deadline"/> <field eval="'info@mycompany.net'" name="email_from"/> @@ -372,11 +342,10 @@ <field name="partner_id" ref="base.res_partner_duboissprl0"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_demo"/> - <field eval="'open'" name="state"/> <field eval="45000.0" name="planned_revenue"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor5"/> - <field name="stage_id" ref="crm.stage_lead4"/> + <field name="stage_id" ref="crm.stage_lead5"/> <field eval="'Need new design for my website'" name="name"/> <field eval="time.strftime('%Y-05-01')" name="date_action"/> <field eval="time.strftime('%Y-06-30')" name="date_deadline"/> @@ -395,40 +364,37 @@ <field name="partner_id" ref="base.res_partner_maxtor"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_demo"/> - <field eval="'done'" name="state"/> <field eval="42000.0" name="planned_revenue"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor2"/> - <field name="stage_id" ref="crm.stage_lead6"/> + <field name="stage_id" ref="crm.stage_lead8"/> <field eval="'Want to subscribe to your online solution'" name="name"/> </record> - <record id="crm_case_dirtminingltdunits0" model="crm.lead"> + <record id="crm_case_dirtminingltdunits0" model="crm.lead"> <field eval="30" name="probability"/> <field eval="1" name="active"/> <field name="type">opportunity</field> <field name="partner_id" ref="base.res_partner_tinyatwork"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval="'done'" name="state"/> <field eval="25000.0" name="planned_revenue"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor6"/> - <field name="stage_id" ref="crm.stage_lead6"/> + <field name="stage_id" ref="crm.stage_lead8"/> <field eval="'Interest in your Partnership Contract'" name="name"/> </record> - <record id="crm_case_dirtminingltdunits10" model="crm.lead"> + <record id="crm_case_dirtminingltdunits10" model="crm.lead"> <field eval="30" name="probability"/> <field eval="1" name="active"/> <field name="type">opportunity</field> <field name="partner_id" ref="base.res_partner_desertic_hispafuentes"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval="'open'" name="state"/> <field eval="5000" name="planned_revenue"/> <field eval="30" name="probability"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor2"/> - <field name="stage_id" ref="crm.stage_lead2"/> + <field name="stage_id" ref="crm.stage_lead3"/> <field eval="'Plan to attend a training'" name="name"/> <field eval="time.strftime('%Y-04-10')" name="date_action"/> <field eval="time.strftime('%Y-06-12')" name="date_deadline"/> @@ -439,7 +405,7 @@ <field eval="77420" name="zip"/> <field name="country_id" ref="base.fr"/> </record> - <record id="crm_case_construstazunits0" model="crm.lead"> + <record id="crm_case_construstazunits0" model="crm.lead"> <field eval="60" name="probability"/> <field eval="1" name="active"/> <field name="type">opportunity</field> @@ -447,11 +413,10 @@ <field name="partner_id" ref="base.res_partner_thymbra"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval="'open'" name="state"/> <field eval="'150000'" name="planned_revenue"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor1"/> - <field name="stage_id" ref="crm.stage_lead3"/> + <field name="stage_id" ref="crm.stage_lead4"/> <field eval="'Need customize the solution'" name="name"/> <field eval="'Conf call with technical service'" name="title_action"/> <field name="partner_name">Thymbra</field> @@ -461,7 +426,7 @@ <field eval="1659" name="zip"/> <field name="country_id" ref="base.ar"/> </record> - <record id="crm_case_ericdubois4" model="crm.lead"> + <record id="crm_case_ericdubois4" model="crm.lead"> <field eval="65" name="probability"/> <field eval="1" name="active"/> <field name="type">opportunity</field> @@ -469,11 +434,10 @@ <field name="partner_id" ref="base.res_partner_ericdubois0"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval="'open'" name="state"/> <field eval="'1200'" name="planned_revenue"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm.categ_oppor1"/> - <field name="stage_id" ref="crm.stage_lead3"/> + <field name="stage_id" ref="crm.stage_lead4"/> <field eval="'Interest in your customizable PC'" name="name"/> <field eval="time.strftime('%Y-08-05')" name="date_action"/> <field eval="time.strftime('%Y-10-10')" name="date_deadline"/> @@ -484,26 +448,24 @@ <field eval="7000" name="zip"/> <field name="country_id" ref="base.be"/> </record> - <record id="crm_case_fabiendupont" model="crm.lead"> + <record id="crm_case_fabiendupont" model="crm.lead"> <field eval="1" name="active"/> <field name="type">opportunity</field> <field name="type_id" ref="crm.type_lead1"/> <field name="partner_id" ref="base.res_partner_fabiendupont0"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval="'draft'" name="state"/> <field name="categ_id" ref="crm.categ_oppor4"/> <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Need more info about the onsite intervention'" name="name"/> </record> - <record id="crm_case_shelvehouse" model="crm.lead"> + <record id="crm_case_shelvehouse" model="crm.lead"> <field eval="1" name="active"/> <field name="type">opportunity</field> <field name="type_id" ref="crm.type_lead1"/> <field name="partner_id" ref="base.res_partner_theshelvehouse0"/> <field eval="'3'" name="priority"/> <field name="user_id" ref="base.user_demo"/> - <field eval="'draft'" name="state"/> <field name="categ_id" ref="crm.categ_oppor4"/> <field name="stage_id" ref="crm.stage_lead1"/> <field eval="'Need more info about your pc2'" name="name"/> diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 3c2b8f48eb6..c60a30d6d69 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -1,35 +1,41 @@ <?xml version="1.0"?> <openerp> -<data> - - <!-- Stage Search view --> - <record id="crm_lead_stage_search" model="ir.ui.view"> - <field name="name">Stage - Search</field> - <field name="model">crm.case.stage</field> - <field name="type">search</field> - <field name="arch" type="xml"> - <search string="Stage Search"> - <field name="name"/> - </search> - </field> - </record> - - <!--Lead Stage Form view --> - <record id="crm_lead_stage_act" model="ir.actions.act_window"> - <field name="name">Stages</field> - <field name="res_model">crm.case.stage</field> - <field name="view_type">form</field> - <field name="view_id" ref="crm.crm_case_stage_tree"/> - <field name="help">Add specific stages to leads and opportunities allowing your sales to better organise their sales pipeline. Stages will allow them to easily track how a specific lead or opportunity is positioned in the sales cycle.</field> - </record> + <data> + + <!-- + CRM CASE STAGE + --> + + <!-- Stage Search view --> + <record id="crm_lead_stage_search" model="ir.ui.view"> + <field name="name">Stage - Search</field> + <field name="model">crm.case.stage</field> + <field name="type">search</field> + <field name="arch" type="xml"> + <search string="Stage Search"> + <field name="name"/> + <field name="state"/> + <field name="type"/> + </search> + </field> + </record> - <menuitem action="crm_lead_stage_act" id="menu_crm_lead_stage_act" name="Stages" - groups="base.group_no_one" sequence="0" - parent="base.menu_crm_config_lead" /> + <!-- Stage Form view --> + <record id="crm_lead_stage_act" model="ir.actions.act_window"> + <field name="name">Stages</field> + <field name="res_model">crm.case.stage</field> + <field name="view_type">form</field> + <field name="view_id" ref="crm.crm_case_stage_tree"/> + <field name="help">Add specific stages to leads and opportunities allowing your sales to better organise their sales pipeline. Stages will allow them to easily track how a specific lead or opportunity is positioned in the sales cycle.</field> + </record> + <menuitem action="crm_lead_stage_act" id="menu_crm_lead_stage_act" name="Stages" sequence="0" parent="base.menu_crm_config_lead" /> - <!-- Lead/Opportunity Categories Action --> + <!-- + LEADS/OPPORTUNITIES CATEGORIES + --> + <!-- Categories Form View --> <record id="crm_lead_categ_action" model="ir.actions.act_window"> <field name="name">Categories</field> <field name="res_model">crm.case.categ</field> @@ -44,6 +50,9 @@ id="menu_crm_lead_categ" name="Categories" parent="base.menu_crm_config_lead" sequence="1" groups="base.group_no_one"/> + <!-- + LEADS + --> <!-- CRM Lead Form View --> <record model="ir.ui.view" id="crm_case_form_view_leads"> @@ -52,43 +61,28 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Leads Form" layout="manual"> - <div class="oe_form_topbar"> - <button name="case_open" string="Open" states="draft,pending" type="object" /> - <button name="case_mark_lost" string="Close" states="open,pending" type="object" /> - <button name="case_pending" string="Pending" states="open" type="object" /> - <button name="case_escalate" string="Escalate" states="open,pending" type="object" /> - <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" /> - <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" /> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <header> + <button name="%(crm.action_crm_lead2opportunity_partner)d" string="Convert to Opportunity" type="action" + states="draft,open,pending" help="Convert to Opportunity"/> + <button name="case_escalate" string="Escalate" type="object" + states="draft,open,pending"/> + <button name="case_reset" string="Reset" type="object" + states="cancel"/> + <button name="case_cancel" string="Cancel" type="object" + states="draft,open,pending"/> + <field name="stage_id" widget="statusbar" + on_change="onchange_stage_id(stage_id)"/> + </header> <sheet layout="auto"> <group colspan="4" col="7"> - <field name="name" required="1" string="Subject"/> + <field name="name"/> <field name="priority"/> <field name="categ_id" widget="selection" domain="[('object_id.model','=','crm.lead')]"/> - <button - name="%(crm.action_crm_lead2opportunity_partner)d" - string="Convert to Opportunity" - help="Convert to Opportunity" icon="gtk-go-forward" - type="action" - /> <newline /> <field name="user_id" /> <field name="section_id" widget="selection" /> - <field name="stage_id" domain="section_id and [('section_ids', '=', section_id)] or []" /> - <group col="2" colspan="1"> - <button name="stage_previous" string="" - states="open,pending,draft" type="object" - icon="gtk-go-back" context="{'stage_type': 'lead'}" /> - <button name="stage_next" string="" - states="open,pending,draft" type="object" - icon="gtk-go-forward" context="{'stage_type': 'lead'}" /> - </group> <field name="type" invisible="1"/> </group> <notebook colspan="4"> @@ -142,6 +136,7 @@ <field name="type_id" select="1" widget="selection"/> <field name="channel_id" select="1" widget="selection"/> <field name="referred"/> + <field name="state" groups="base.group_no_one"/> </group> <group colspan="2" col="2"> <separator string="Mailings" colspan="2" col="2"/> @@ -157,76 +152,53 @@ </notebook> </sheet> <div class="oe_form_bottom"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> - </record> - - <!-- CRM Lead Tree View --> - - <record model="ir.ui.view" id="crm_case_tree_view_leads"> - <field name="name">Leads</field> - <field name="model">crm.lead</field> - <field name="type">tree</field> - <field name="arch" type="xml"> - <tree string="Leads" fonts="bold:needaction_pending==True" colors="blue:state=='pending';grey:state in ('cancel', 'done')"> - <field name="needaction_pending" invisible="1"/> - <field name="date_deadline" invisible="1"/> - <field name="create_date" groups="base.group_no_one"/> - <field name="name" string="Subject"/> - <field name="contact_name"/> - <field name="country_id" invisible="context.get('invisible_country', True)" /> - <field name="email_from"/> - <field name="phone"/> - - <field name="categ_id" invisible="1"/> - <field name="type_id" invisible="1"/> - <field name="referred" invisible="1"/> - <field name="channel_id" invisible="1"/> - <field name="subjects" invisible="1"/> - - <field name="stage_id"/> - <button name="stage_previous" string="Previous Stage" - states="open,pending" type="object" icon="gtk-go-back" /> - <button name="stage_next" string="Next Stage" - states="open,pending" type="object" - icon="gtk-go-forward" /> - <field name="section_id" invisible="context.get('invisible_section', True)" /> - <field name="user_id" /> - <field name="state" /> - <button name="case_open" string="Open" - states="draft,pending" type="object" - icon="gtk-go-forward" /> - <button name="case_close" string="Close" - states="open,draft,pending" type="object" - icon="gtk-close" /> - <button name="%(crm.action_crm_lead2opportunity_partner)d" - string="Convert to Opportunity" - states="draft,open,pending" icon="gtk-index" - type="action" /> - <button name="case_escalate" string="Escalate" - states="open,draft,pending" type="object" - icon="gtk-go-up" /> - </tree> - </field> - </record> + </record> - <!-- CRM Lead Calendar View --> + <!-- CRM Lead Tree View --> + <record model="ir.ui.view" id="crm_case_tree_view_leads"> + <field name="name">Leads</field> + <field name="model">crm.lead</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Leads" fonts="bold:needaction_pending==True" colors="blue:state=='pending';grey:state in ('cancel', 'done')"> + <field name="needaction_pending" invisible="1"/> + <field name="date_deadline" invisible="1"/> + <field name="create_date" groups="base.group_no_one"/> + <field name="name"/> + <field name="contact_name"/> + <field name="country_id" invisible="context.get('invisible_country', True)" /> + <field name="email_from"/> + <field name="phone"/> + <field name="stage_id"/> + <field name="categ_id" invisible="1"/> + <field name="section_id" invisible="context.get('invisible_section', True)" /> + <field name="state" groups="base.group_no_one"/> + <field name="type_id" invisible="1"/> + <field name="referred" invisible="1"/> + <field name="channel_id" invisible="1"/> + <field name="subjects" invisible="1"/> + </tree> + </field> + </record> - <record model="ir.ui.view" id="crm_case_calendar_view_leads"> - <field name="name">CRM - Leads Calendar</field> - <field name="model">crm.lead</field> - <field name="type">calendar</field> - <field name="priority" eval="2"/> - <field name="arch" type="xml"> - <calendar string="Leads Generation" - date_start="date_action" color="user_id"> - <field name="name" /> - <field name="partner_name" /> - </calendar> - </field> - </record> + <!-- CRM Lead Calendar View --> + <record model="ir.ui.view" id="crm_case_calendar_view_leads"> + <field name="name">CRM - Leads Calendar</field> + <field name="model">crm.lead</field> + <field name="type">calendar</field> + <field name="priority" eval="2"/> + <field name="arch" type="xml"> + <calendar string="Leads Generation" + date_start="date_action" color="user_id"> + <field name="name" /> + <field name="partner_name" /> + </calendar> + </field> + </record> <!-- CRM Lead Kanban View --> <record model="ir.ui.view" id="crm_case_kanban_view_leads"> @@ -235,7 +207,7 @@ <field name="type">kanban</field> <field name="arch" type="xml"> <kanban default_group_by="stage_id"> - <field name="state"/> + <field name="state" groups="base.group_no_one"/> <field name="color"/> <field name="priority"/> <field name="planned_revenue" sum="Expected Revenues"/> @@ -264,18 +236,15 @@ <li><ul class="oe_kanban_colorpicker" data-field="color"/></li> </ul> <div class="oe_kanban_content"> - <h3> - <field name="partner_id"/> + <div> + <b><field name="name"/></b> <t t-if="record.planned_revenue.raw_value"> - - <t t-esc="Math.round(record.planned_revenue.value)"/> - <field name="company_currency"/> + - <b><t t-esc="Math.round(record.planned_revenue.value)"/> + <field name="company_currency"/></b> </t> - </h3> - <div> - <b> <field name="partner_address_name"/> </b> </div> <div> - <field name="name"/> + <field name="partner_id"/> </div> <div style="padding-left: 0.5em"> <i> @@ -316,7 +285,6 @@ </record> <!-- CRM Lead Search View --> - <record id="view_crm_case_leads_filter" model="ir.ui.view"> <field name="name">CRM - Leads Search</field> <field name="model">crm.lead</field> @@ -391,6 +359,10 @@ </record> + <!-- + OPPORTUNITY + --> + <!-- Opportunities Form View --> <record model="ir.ui.view" id="crm_case_form_view_oppor"> <field name="name">Opportunities</field> @@ -398,177 +370,173 @@ <field name="type">form</field> <field name="priority">20</field> <field name="arch" type="xml"> - <form string="Opportunities" layout="manual"> - <div class="oe_form_topbar oe_form_topbar_hifirst"> - <button name="case_mark_won" string="Mark Won" states="open,pending" type="object" /> - <button name="case_open" string="Open" states="draft,pending" type="object" /> - <button name="case_pending" string="Pending" states="draft,open" type="object" /> - <button name="case_escalate" string="Escalate" states="open,pending" type="object" /> - <button name="case_mark_lost" string="Mark Lost" states="open,pending" type="object" /> - <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" /> - <button name="case_cancel" string="Cancel" states="draft" type="object" /> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> - <sheet layout="auto"> - <group colspan="4" col="2" width="auto"> - <field name="name" required="1" nolabel="1" class="oe_form_title"/> - <div class="oe_text_right"> + <form string="Opportunities" validate="0"> + <header> + <button name="case_mark_won" string="Mark Won" type="object" + states="draft,open,pending"/> + <button name="case_open" string="Open" type="object" + states="draft,pending"/> + <button name="case_escalate" string="Escalate" type="object" + states="open"/> + <button name="case_mark_lost" string="Mark Lost" type="object" + states="draft,open"/> + <button name="case_reset" string="Reset to Draft" type="object" + states="done,cancel"/> + <button name="case_cancel" string="Cancel" type="object" + states="draft"/> + <button name="stage_previous" string="Previous" type="object" + states="open" icon="gtk-go-back" context="{'stage_type': 'opportunity'}"/> + <button name="stage_next" string="Next" type="object" + states="open" icon="gtk-go-forward" context="{'stage_type': 'opportunity'}"/> + <field name="stage_id" nolabel="1" widget="statusbar" + on_change="onchange_stage_id(stage_id)"/> + </header> + <sheet> + <div class="oe_right oe_form_button_box"> <button string="Schedule/Log Call" - name="%(opportunity2phonecall_act)d" icon="terp-call-start" + name="%(opportunity2phonecall_act)d" type="action"/> - <button string="Schedule Meeting" icon="gtk-redo" + <button string="Schedule Meeting" name="action_makeMeeting" type="object"/> </div> - </group> - <group colspan="4" col="4" class="oe_form_group_label_border" style="margin-top: 20px;"> - <field name="user_id"/> - <field name="planned_revenue"/> - - <field name="date_action"/> - <field name="date_deadline"/> - - <field name="title_action"/> - <field name="probability"/> - - <field name="type" invisible="1"/> - </group> - <notebook colspan="4"> - <page string="Opportunity"> - <group col="4" colspan="2"> - <separator colspan="4" string="Contacts"/> - <group colspan="2" col="3" class="oe_form_group_label_border"> - <field width="80%%" name="partner_id" select="1" - on_change="onchange_partner_id(partner_id, email_from)" string="Customer"/> - <button name="%(action_crm_lead2partner)d" - icon="terp-partner" type="action" - string="Create" - attrs="{'invisible':[('partner_id','!=',False)]}"/> - <field name="phone" colspan="3"/> - <field width="80%%" name="email_from" string="Email"/> - <button string="Mail" - name="%(mail.action_email_compose_message_wizard)d" - context="{'mail':'new', 'model': 'crm.lead'}" - icon="terp-mail-message-new" type="action" /> + <div class="oe_form_title"> + <label for="name" class="oe_form_readonly_hidden"/> + <h1><field name="name"/></h1> + + <label for="planned_revenue" class="oe_form_readonly_hidden"/> + <h2> + <field name="planned_revenue" class="oe_form_inline"/> + <field name="company_currency" class="oe_form_readonly_hidden oe_form_inline"/> at + <field name="probability" class="oe_form_inline"/> %% success rate + </h2> + </div> + <group> + <group> + <field name="partner_id" + on_change="onchange_partner_id(partner_id, email_from)" + string="Customer" + context="{'default_name': partner_name, 'default_email': email_from, 'default_phone': phone}"/> + <field name="email_from" string="Email"/> + <field name="phone"/> </group> - </group> - <group col="2" colspan="2" class="oe_form_group_label_border"> - <separator colspan="2" string="Category"/> - <field name="section_id" colspan="1" widget="selection"/> - <field name="categ_id" select="1" - string="Category" widget="selection" - domain="[('object_id.model', '=', 'crm.lead')]" /> - <label string="Stage" for="stage_id" align="1.0"/> - <group colspan="1" col="3"> - <field name="stage_id" nolabel="1" - on_change="onchange_stage_id(stage_id)" - domain="section_id and [('section_ids', '=', section_id)] or []" width="60%%"/> - <button name="stage_previous" - states="draft,open,pending" type="object" - icon="gtk-go-back" string="" context="{'stage_type': 'opportunity'}"/> - <button name="stage_next" states="draft,open,pending" - type="object" icon="gtk-go-forward" string="" context="{'stage_type': 'opportunity'}"/> + <group> + <label for="title_action"/> + <div> + <field name="date_action" nolabel="1"/> - + <field name="title_action" class="oe_form_inline" nolabel="1" placeholder="Call for proposal"/> + </div> + <field name="date_deadline"/> + <field name="priority"/> </group> - <field name="priority" string="Priority"/> - </group> + <group> + <field name="user_id"/> + <field name="section_id" colspan="1" widget="selection"/> + </group> + <group> + <field name="categ_id" select="1" + string="Category" widget="selection" + domain="[('object_id.model', '=', 'crm.lead')]" /> - <separator colspan="4" string="Details"/> - <field name="description" nolabel="1" colspan="4"/> - </page> - <page string="Lead"> - <separator string="Contact" colspan="4"/> - <group colspan="4" col="4" class="oe_form_group_label_border"> - <field name="partner_name" string="Customer Name" colspan="4"/> - </group> - <group colspan="2" col="2" class="oe_form_group_label_border"> - <field domain="[('domain', '=', 'contact')]" name="title" widget="selection"/> - <field name="fax"/> - <field name="street"/> - <field name="zip"/> - <field name="country_id"/> - </group> - <group colspan="2" col="2" class="oe_form_group_label_border"> - <field name="function" /> - <field name="mobile"/> - <field name="street2"/> - <field name="city"/> - <field name="state_id"/> + </group> </group> - <group colspan="2" col="2" class="oe_form_group_label_border"> - <separator string="Categorization" colspan="2"/> - <field name="type_id" widget="selection"/> - <field name="channel_id" widget="selection"/> - </group> - <group colspan="2" col="2" class="oe_form_group_label_border"> - <separator string="Mailings" colspan="2"/> - <field name="opt_in" on_change="on_change_opt_in(opt_in)"/> - <field name="opt_out" on_change="on_change_opt_out(opt_out)"/> - </group> - </page> - <page string="Extra Info"> - <group col="2" colspan="2" class="oe_form_group_label_border"> - <separator string="Misc" colspan="2"/> - <field name="active"/> - <field name="day_open" groups="base.group_no_one"/> - <field name="day_close" groups="base.group_no_one"/> - <field name="referred"/> - </group> - <group col="2" colspan="2" class="oe_form_group_label_border"> - <separator colspan="4" string="References"/> - <field name="ref"/> - <field name="ref2"/> - </group> - </page> - </notebook> + <!--<button string="Mail" + name="%(mail.action_email_compose_message_wizard)d" + context="{'mail':'new', 'model': 'crm.lead'}" + icon="terp-mail-message-new" type="action" />--> + + <notebook colspan="4"> + <page string="Internal Notes"> + <field name="description"/> + </page> + <page string="Lead"> + <group> + <group> + <field name="partner_name"/> + <label for="street" string="Address"/> + <div> + <field name="street" placeholder="Street..."/> + <field name="street2"/> + <div> + <field name="zip" class="oe_form_inline" placeholder="ZIP"/> + <field name="city" class="oe_form_inline" placeholder="City"/> + </div> + <field name="state_id" placeholder="State"/> + <field name="country_id" placeholder="Country"/> + </div> + </group> + + <group> + <field name="contact_name" /> + <field name="function" /> + <field domain="[('domain', '=', 'contact')]" name="title"/> + <field name="mobile"/> + <field name="fax"/> + </group> + + <group string="Categorization"> + <field name="type_id" widget="selection"/> + <field name="channel_id" widget="selection"/> + </group> + <group string="Mailings"> + <field name="opt_in" on_change="on_change_opt_in(opt_in)"/> + <field name="opt_out" on_change="on_change_opt_out(opt_out)"/> + </group> + <group string="Misc"> + <field name="active"/> + <field name="day_open" groups="base.group_no_one"/> + <field name="day_close" groups="base.group_no_one"/> + <field name="referred"/> + <field name="state" groups="base.group_no_one"/> + <field name="type" invisible="1"/> + </group> + <group string="References"> + <field name="ref"/> + <field name="ref2"/> + </group> + </group> + </page> + </notebook> </sheet> - <div class="oe_form_bottom"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> - </div> + <footer> + <field name="message_ids" widget="ThreadView"/> + </footer> </form> </field> </record> - <!-- Opportunities Tree View --> - <record model="ir.ui.view" id="crm_case_tree_view_oppor"> - <field name="name">Opportunities Tree</field> - <field name="model">crm.lead</field> - <field name="type">tree</field> - <field name="arch" type="xml"> - <tree string="Opportunities" fonts="bold:needaction_pending==True" colors="blue:state=='pending' and not(date_deadline and (date_deadline < current_date));gray:state in ('cancel', 'done');red:date_deadline and (date_deadline < current_date)"> - <field name="needaction_pending" invisible="1"/> - <field name="date_deadline" invisible="1"/> - <field name="create_date" groups="base.group_no_one"/> - <field name="name" string="Opportunity"/> - <field name="partner_id" string="Customer"/> - <field name="country_id" invisible="context.get('invisible_country', True)" /> - <field name="date_action"/> - <field name="title_action" /> - <field name="channel_id" invisible="1"/> - <field name="type_id" invisible="1"/> - <field name="subjects" invisible="1"/> - <field name="stage_id"/> - <button name="stage_previous" string="Previous Stage" states="open,pending" type="object" icon="gtk-go-back" /> - <button name="stage_next" string="Next Stage" states="open,pending" type="object" icon="gtk-go-forward" /> - <field name="planned_revenue" sum="Expected Revenues"/> - <field name="probability" widget="progressbar" avg="Avg. of Probability"/> - <field name="section_id" invisible="context.get('invisible_section', True)" /> - <field name="user_id"/> - <field name="priority" invisible="1"/> - <field name="categ_id" invisible="1"/> - <field name="state"/> - <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward" /> - <button name="case_pending" string="Pending" states="open,draft" type="object" icon="gtk-media-pause" /> - <button name="case_mark_lost" string="Lost" states="open,pending" type="object" icon="gtk-cancel" /> - <button name="case_mark_won" string="Won" states="open,pending" type="object" icon="gtk-apply" /> - </tree> - </field> - </record> + <!-- Opportunities Tree View --> + <record model="ir.ui.view" id="crm_case_tree_view_oppor"> + <field name="name">Opportunities Tree</field> + <field name="model">crm.lead</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Opportunities" fonts="bold:needaction_pending==True" colors="blue:state=='pending' and not(date_deadline and (date_deadline < current_date));gray:state in ('cancel', 'done');red:date_deadline and (date_deadline < current_date)"> + <field name="needaction_pending" invisible="1"/> + <field name="date_deadline" invisible="1"/> + <field name="create_date" groups="base.group_no_one"/> + <field name="name" string="Opportunity"/> + <field name="partner_id" string="Customer"/> + <field name="country_id" invisible="context.get('invisible_country', True)" /> + <field name="date_action"/> + <field name="title_action" /> + <field name="channel_id" invisible="1"/> + <field name="type_id" invisible="1"/> + <field name="subjects" invisible="1"/> + <field name="stage_id"/> + <field name="planned_revenue" sum="Expected Revenues"/> + <field name="probability" widget="progressbar" avg="Avg. of Probability"/> + <field name="section_id" invisible="context.get('invisible_section', True)" /> + <field name="user_id"/> + <field name="priority" invisible="1"/> + <field name="categ_id" invisible="1"/> + <field name="state" groups="base.group_no_one"/> + </tree> + </field> + </record> <!-- Opportunities Search View --> @@ -599,8 +567,7 @@ help="Unassigned Opportunities" /> </field> <field name="section_id" - context="{'invisible_section': False}" - widget="selection"> + context="{'invisible_section': False, 'default_section_id': self}"> <filter icon="terp-personal+" domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]" context="{'invisible_section': False}" @@ -630,19 +597,19 @@ </field> </record> - <!-- crm.lead Opportunities Graph View --> - <record model="ir.ui.view" id="crm_case_graph_view_opportunity"> - <field name="name">CRM - Opportunity Graph</field> - <field name="model">crm.lead</field> - <field name="type">graph</field> - <field name="arch" type="xml"> - <graph string="Opportunity by Categories" type="bar" orientation="horizontal"> - <field name="categ_id"/> - <field name="planned_revenue" operator="+"/> - <field name="state" group="True"/> - </graph> - </field> - </record> + <!-- crm.lead Opportunities Graph View --> + <record model="ir.ui.view" id="crm_case_graph_view_opportunity"> + <field name="name">CRM - Opportunity Graph</field> + <field name="model">crm.lead</field> + <field name="type">graph</field> + <field name="arch" type="xml"> + <graph string="Opportunity by Categories" type="bar" orientation="horizontal"> + <field name="categ_id"/> + <field name="planned_revenue" operator="+"/> + <field name="state" group="True"/> + </graph> + </field> + </record> -</data> + </data> </openerp> diff --git a/addons/crm/crm_meeting.py b/addons/crm/crm_meeting.py index a0e4803cde7..bc1ab42b3df 100644 --- a/addons/crm/crm_meeting.py +++ b/addons/crm/crm_meeting.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -20,43 +20,35 @@ ############################################################################## from base_calendar import base_calendar -from crm import crm_base, crm_case +from base_status.base_state import base_state +from base_status.base_stage import base_stage +import logging from osv import fields, osv import tools from tools.translate import _ -import logging - -class crm_lead(crm_case, osv.osv): - """ CRM Leads """ - _name = 'crm.lead' -crm_lead() - -class crm_phonecall(crm_case, osv.osv): - """ CRM Phonecall """ - _name = 'crm.phonecall' -crm_phonecall() +class crm_lead(base_stage, osv.osv): + """ CRM Leads """ + _name = 'crm.lead' -class crm_meeting(crm_base, osv.osv): - """ CRM Meeting Cases """ - +class crm_meeting(base_state, osv.Model): + """ Model for CRM meetings """ _name = 'crm.meeting' _description = "Meeting" _order = "id desc" _inherit = ["calendar.event", 'ir.needaction_mixin', "mail.thread"] _columns = { - # From crm.case - 'name': fields.char('Summary', size=124, required=True, states={'done': [('readonly', True)]}), + # base_state required fields 'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}), 'section_id': fields.many2one('crm.case.section', 'Sales Team', states={'done': [('readonly', True)]}, \ select=True, help='Sales team to which Case belongs to.'), 'email_from': fields.char('Email', size=128, states={'done': [('readonly', True)]}, help="These people will receive email."), - 'id': fields.integer('ID', readonly=True), 'create_date': fields.datetime('Creation Date' , readonly=True), 'write_date': fields.datetime('Write Date' , readonly=True), 'date_action_last': fields.datetime('Last Action', readonly=1), 'date_action_next': fields.datetime('Next Action', readonly=1), # Meeting fields + 'name': fields.char('Summary', size=124, required=True, states={'done': [('readonly', True)]}), 'categ_id': fields.many2one('crm.case.categ', 'Meeting Type', \ domain="[('object_id.model', '=', 'crm.meeting')]", \ ), @@ -66,12 +58,11 @@ class crm_meeting(crm_base, osv.osv): 'event_id', 'attendee_id', 'Attendees', states={'done': [('readonly', True)]}), 'date_closed': fields.datetime('Closed', readonly=True), 'date_deadline': fields.datetime('Deadline', states={'done': [('readonly', True)]}), - 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), - 'state': fields.selection([('open', 'Confirmed'), - ('draft', 'Unconfirmed'), + 'state': fields.selection([ ('draft', 'Unconfirmed'), + ('open', 'Confirmed'), ('cancel', 'Cancelled'), - ('done', 'Done')], 'Status', \ - size=16, readonly=True), + ('done', 'Done')], + string='Status', size=16, readonly=True), } _defaults = { 'state': 'draft', @@ -91,6 +82,17 @@ class crm_meeting(crm_base, osv.osv): result[obj.id] = [obj.user_id.id] return result + def case_open(self, cr, uid, ids, context=None): + """ Confirms meeting """ + res = super(crm_meeting, self).case_open(cr, uid, ids, context) + for (id, name) in self.name_get(cr, uid, ids): + id=base_calendar.base_calendar_id2real_id(id) + return res + + # ---------------------------------------- + # OpenChatter + # ---------------------------------------- + def case_get_note_msg_prefix(self, cr, uid, id, context=None): return 'Meeting' @@ -119,32 +121,12 @@ class crm_meeting(crm_base, osv.osv): meeting.message_append_note(body=parent_message) return True - def case_close_send_note(self, cr, uid, ids, context=None): - message = _("Meeting has been <b>done</b>.") - return self.message_append_note(cr, uid, ids, body=message, context=context) - def case_open_send_note(self, cr, uid, ids, context=None): - for meeting in self.browse(cr, uid, ids, context=context): - if meeting.state != 'draft': - return False - message = _("Meeting has been <b>confirmed</b>.") - meeting.message_append_note(body=message) - return True + return self.message_append_note(cr, uid, ids, body=_("Meeting has been <b>confirmed</b>."), context=context) - def case_open(self, cr, uid, ids, context=None): - """Confirms meeting - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param ids: List of Meeting Ids - @param *args: Tuple Value for additional Params - """ - res = super(crm_meeting, self).case_open(cr, uid, ids, context) - for (id, name) in self.name_get(cr, uid, ids): - id=base_calendar.base_calendar_id2real_id(id) - return res + def case_close_send_note(self, cr, uid, ids, context=None): + return self.message_append_note(cr, uid, ids, body=_("Meeting has been <b>done</b>."), context=context) -crm_meeting() class calendar_attendee(osv.osv): """ Calendar Attendee """ diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml index 5b0a35a185e..ea6f0bf7e43 100644 --- a/addons/crm/crm_meeting_view.xml +++ b/addons/crm/crm_meeting_view.xml @@ -25,7 +25,19 @@ <field name="model">crm.meeting</field> <field name="type">form</field> <field name="arch" type="xml"> - <form string="Meetings"> + <form string="Meetings" layout="manual"> + <header> + <button name="case_open" string="Confirm" type="object" + states="draft"/> + <button name="case_close" string="Done" type="object" + states="open"/> + <button name="case_reset" string="Reset to Unconfirmed" type="object" + states="cancel,done"/> + <button name="case_cancel" string="Cancel" type="object" + states="draft,open"/> + <field name="state" widget="statusbar" statusbar_visible="draft,open,done"/> + </header> + <sheet layout="auto"> <group col="6" colspan="4"> <field name="name" select="1" string="Title" required="1" /> @@ -71,19 +83,6 @@ </group> <separator string="Description" colspan="4" /> <field name="description" nolabel="1" colspan="4" /> - <separator colspan="4"/> - <group col="8" colspan="4" groups="base.group_no_one"> - <field name="state" /> - <button name="case_close" string="Done" - states="open" type="object" - icon="gtk-jump-to" /> - <button name="case_reset" string="Reset to Unconfirmed" - states="open,done" type="object" - icon="gtk-convert" /> - <button name="case_open" string="Confirm" - states="draft" type="object" - icon="gtk-go-forward" /> - </group> </page> <page string="Invitation Detail"> <button string="Invite People" @@ -209,7 +208,10 @@ </page> </notebook> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + </sheet> + <div class="oe_form_bottom"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </div> </form> </field> </record> diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py index 309102ec366..9418b05b9ea 100644 --- a/addons/crm/crm_phonecall.py +++ b/addons/crm/crm_phonecall.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,26 +19,22 @@ # ############################################################################## -from crm import crm_base -from osv import fields, osv -from tools.translate import _ +from base_status.base_state import base_state import crm +from datetime import datetime +from osv import fields, osv import time from tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP -from datetime import datetime - -class crm_phonecall(crm_base, osv.osv): - """ Phonecall Cases """ +from tools.translate import _ +class crm_phonecall(base_state, osv.osv): + """ Model for CRM phonecalls """ _name = "crm.phonecall" _description = "Phonecall" _order = "id desc" _inherit = ['ir.needaction_mixin', 'mail.thread'] _columns = { - # From crm.case - 'id': fields.integer('ID', readonly=True), - 'name': fields.char('Call Summary', size=64, required=True), - 'active': fields.boolean('Active', required=False), + # base_state required fields 'date_action_last': fields.datetime('Last Action', readonly=1), 'date_action_next': fields.datetime('Next Action', readonly=1), 'create_date': fields.datetime('Creation Date' , readonly=True), @@ -48,20 +44,21 @@ class crm_phonecall(crm_base, osv.osv): 'partner_id': fields.many2one('res.partner', 'Partner'), 'company_id': fields.many2one('res.company', 'Company'), 'description': fields.text('Description'), - 'state': fields.selection([ - ('draft', 'Draft'), - ('open', 'Todo'), + 'state': fields.selection([ ('draft', 'Draft'), + ('open', 'Confirmed'), ('pending', 'Not Held'), ('cancel', 'Cancelled'), - ('done', 'Held'), - ], 'Status', size=16, readonly=True, - help='The state is set to \'Todo\', when a case is created.\ - \nIf the case is in progress the state is set to \'Open\'.\ - \nWhen the call is over, the state is set to \'Held\'.\ - \nIf the call needs to be done then the state is set to \'Not Held\'.'), + ('done', 'Held'),], + string='Status', size=16, readonly=True, + help='The state is set to \'Todo\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the call is over, the state is set to \'Held\'.\ + If the call needs to be done then the state is set to \'Not Held\'.'), 'email_from': fields.char('Email', size=128, help="These people will receive email."), 'date_open': fields.datetime('Opened', readonly=True), # phonecall fields + 'name': fields.char('Call Summary', size=64, required=True), + 'active': fields.boolean('Active', required=False), 'duration': fields.float('Duration', help="Duration in Minutes"), 'categ_id': fields.many2one('crm.case.categ', 'Category', \ domain="['|',('section_id','=',section_id),('section_id','=',False),\ @@ -72,7 +69,6 @@ class crm_phonecall(crm_base, osv.osv): 'date_closed': fields.datetime('Closed', readonly=True), 'date': fields.datetime('Date'), 'opportunity_id': fields.many2one ('crm.lead', 'Lead/Opportunity'), - 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), } def _get_default_state(self, cr, uid, context=None): @@ -81,11 +77,10 @@ class crm_phonecall(crm_base, osv.osv): return 'open' _defaults = { - 'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), + 'date': fields.datetime.now, 'priority': crm.AVAILABLE_PRIORITIES[2][0], 'state': _get_default_state, 'user_id': lambda self,cr,uid,ctx: uid, - 'active': 1, } def create(self, cr, uid, vals, context=None): @@ -96,32 +91,23 @@ class crm_phonecall(crm_base, osv.osv): return obj_id def case_close(self, cr, uid, ids, context=None): - """Overrides close for crm_case for setting close date - """ + """ Overrides close for crm_case for setting duration """ res = True - for phone in self.browse(cr, uid, ids): + for phone in self.browse(cr, uid, ids, context=context): phone_id = phone.id - data = {'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')} + data = {} if phone.duration <=0: - duration = datetime.now() - datetime.strptime(phone.date, '%Y-%m-%d %H:%M:%S') - data.update({'duration': duration.seconds/float(60)}) - res = super(crm_phonecall, self).case_close(cr, uid, [phone_id], context) - self.write(cr, uid, [phone_id], data) + duration = datetime.now() - datetime.strptime(phone.date, DEFAULT_SERVER_DATETIME_FORMAT) + data['duration'] = duration.seconds/float(60) + res = super(crm_phonecall, self).case_close(cr, uid, [phone_id], context=context) + self.write(cr, uid, [phone_id], data, context=context) return res def case_reset(self, cr, uid, ids, context=None): """Resets case as Todo """ res = super(crm_phonecall, self).case_reset(cr, uid, ids, context) - self.write(cr, uid, ids, {'duration': 0.0, 'state':'open'}) - return res - - - def case_open(self, cr, uid, ids, context=None): - """Overrides cancel for crm_case for setting Open Date - """ - res = super(crm_phonecall, self).case_open(cr, uid, ids, context) - self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')}) + self.write(cr, uid, ids, {'duration': 0.0, 'state':'open'}, context=context) return res def schedule_another_phonecall(self, cr, uid, ids, schedule_time, call_summary, \ @@ -300,7 +286,7 @@ class crm_phonecall(crm_base, osv.osv): return value # ---------------------------------------- - # OpenChatter methods and notifications + # OpenChatter # ---------------------------------------- def get_needaction_user_ids(self, cr, uid, ids, context=None): @@ -336,9 +322,6 @@ class crm_phonecall(crm_base, osv.osv): def _call_set_partner_send_note(self, cr, uid, ids, context=None): return self.message_append_note(cr, uid, ids, body=_("Partner has been <b>created</b>"), context=context) - - -crm_phonecall() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml index 55d8d8c9a64..2e1c35e683a 100644 --- a/addons/crm/crm_phonecall_view.xml +++ b/addons/crm/crm_phonecall_view.xml @@ -43,10 +43,14 @@ states="open,pending" icon="gtk-redo" name="action_make_meeting" type="object" /> <field name="state"/> - <button name="case_cancel" string="Cancel" states="open,pending" type="object" icon="gtk-cancel"/> - <button name="case_open" string="Todo" states="pending" type="object" icon="gtk-go-forward"/> - <button name="case_close" string="Held" states="open,pending" type="object" icon="gtk-jump-to"/> - <button name="case_pending" string="Not Held" states="open" type="object" icon="gtk-media-pause"/> + <button name="case_open" string="Confirm" type="object" + states="draft,pending" icon="gtk-go-forward"/> + <button name="case_close" string="Held" type="object" + states="open,pending" icon="gtk-jump-to"/> + <button name="case_cancel" string="Cancel" type="object" + states="draft,open,pending" icon="gtk-cancel"/> + <button name="case_reset" string="Reset to Todo" type="object" + states="cancel" icon="gtk-convert"/> </tree> </field> </record> @@ -59,17 +63,17 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> - <button name="case_close" string="Held" states="open,pending" type="object" /> - <button name="case_open" string="Todo" states="pending" type="object" /> - <button name="case_pending" string="Not Held" states="open" type="object" /> - <button name="case_reset" string="Reset to Todo" states="cancel" type="object" /> - <button name="case_cancel" string="Cancel" states="open,pending" type="object" /> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="open,done" statusbar_colors='{"pending":"red"}' select="1"/> - </div> - <div class="oe_clear"/> - </div> + <header> + <button name="case_open" string="Confirm" type="object" + states="draft,pending" icon="gtk-go-forward"/> + <button name="case_close" string="Held" type="object" + states="open,pending" icon="gtk-jump-to"/> + <button name="case_reset" string="Reset to Todo" type="object" + states="cancel" icon="gtk-convert"/> + <button name="case_cancel" string="Cancel" type="object" + states="draft,open,pending" icon="gtk-cancel"/> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,done"/> + </header> <sheet string="Phone Call" layout="auto"> <group colspan="6" col="7"> <field name="name" required="1"/> @@ -117,7 +121,7 @@ <field name="description" nolabel="1" colspan="4" /> </sheet> <div class="oe_form_sheet_width"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml index dd24ef38911..c8f019e685b 100644 --- a/addons/crm/crm_view.xml +++ b/addons/crm/crm_view.xml @@ -143,6 +143,8 @@ <field name="sequence"/> <field name="name"/> <field name="probability"/> + <field name="state"/> + <field name="type"/> </tree> </field> </record> @@ -162,6 +164,9 @@ <field name="on_change"/> <field name="case_default"/> <field name="sequence"/> + <field name="state"/> + <field name="fold"/> + <field name="type"/> </group> <separator string="Requirements" colspan="4"/> <field name="requirements" nolabel="1" colspan="4"/> diff --git a/addons/crm/i18n/nl.po b/addons/crm/i18n/nl.po index 1baa8e962a6..a176db67234 100644 --- a/addons/crm/i18n/nl.po +++ b/addons/crm/i18n/nl.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-16 14:00+0000\n" +"PO-Revision-Date: 2012-06-01 08:42+0000\n" "Last-Translator: Erwin <Unknown>\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:44+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: crm #: view:crm.lead.report:0 @@ -172,7 +172,7 @@ msgstr "Verwachte besluit maand" #. module: crm #: view:crm.lead2opportunity.partner.mass:0 msgid "Assigned Opportunities to" -msgstr "" +msgstr "Toegewezen porspects aan" #. module: crm #: view:crm.lead:0 field:crm.lead,partner_id:0 view:crm.lead.report:0 @@ -599,7 +599,7 @@ msgstr "Einddatum" #. module: crm #: view:crm.opportunity2phonecall:0 view:crm.phonecall2phonecall:0 msgid "Schedule/Log a Call" -msgstr "" +msgstr "Plan/Log een gesprek" #. module: crm #: constraint:base.action.rule:0 @@ -792,7 +792,7 @@ msgstr "Doorgaan" #. module: crm #: field:crm.segmentation,som_interval:0 msgid "Days per Period" -msgstr "" +msgstr "Dagen per periode" #. module: crm #: field:crm.meeting,byday:0 @@ -960,7 +960,7 @@ msgstr "Dagen voor openen" #. module: crm #: view:crm.meeting:0 msgid "Show Time as" -msgstr "" +msgstr "Tijd weergeven als" #. module: crm #: view:crm.phonecall2partner:0 @@ -1344,7 +1344,7 @@ msgstr "Schrijfdatum" #. module: crm #: view:crm.meeting:0 msgid "End of Recurrency" -msgstr "" +msgstr "Einde herhaling" #. module: crm #: view:crm.meeting:0 @@ -1907,7 +1907,7 @@ msgstr "Antwoord aan" #. module: crm #: view:crm.case.section:0 msgid "Select Stages for this Sales Team" -msgstr "" +msgstr "Selecteer de fases voor dit verkoopteam" #. module: crm #: view:board.board:0 @@ -2779,7 +2779,7 @@ msgstr "E-mail adres van de contactpersoon" #. module: crm #: field:crm.lead,referred:0 msgid "Referred by" -msgstr "" +msgstr "Gerefereerd door" #. module: crm #: view:crm.lead:0 model:ir.model,name:crm.model_crm_add_note diff --git a/addons/crm/i18n/pt.po b/addons/crm/i18n/pt.po index 10a2ca3571f..89f79d998b4 100644 --- a/addons/crm/i18n/pt.po +++ b/addons/crm/i18n/pt.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-01-19 00:40+0000\n" -"Last-Translator: Tiago Baptista <Unknown>\n" +"PO-Revision-Date: 2012-05-31 15:17+0000\n" +"Last-Translator: ThinkOpen Solutions <Unknown>\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:45+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-01 05:32+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: crm #: view:crm.lead.report:0 @@ -792,7 +792,7 @@ msgstr "Continuar" #. module: crm #: field:crm.segmentation,som_interval:0 msgid "Days per Period" -msgstr "" +msgstr "Dias por Periodo" #. module: crm #: field:crm.meeting,byday:0 @@ -959,7 +959,7 @@ msgstr "Dias para abrir" #. module: crm #: view:crm.meeting:0 msgid "Show Time as" -msgstr "" +msgstr "Mostrar horas como" #. module: crm #: view:crm.phonecall2partner:0 diff --git a/addons/crm/test/process/cancel_lead.yml b/addons/crm/test/process/cancel_lead.yml index ca5f7d0174a..34dd8310022 100644 --- a/addons/crm/test/process/cancel_lead.yml +++ b/addons/crm/test/process/cancel_lead.yml @@ -6,8 +6,11 @@ - I check cancelled lead. - - !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in cancel state}: - - state == "cancel" + !python {model: crm.lead}: | + lead = self.browse(cr, uid, ref('crm_case_itisatelesalescampaign0')) + assert lead.stage_id.id == ref('crm.stage_lead7'), "Stage should be 'Dead' and is %s." % (lead.stage_id.name) + assert lead.state == 'cancel', "Opportunity is not in 'cancel' state." + assert lead.probability == 0.0, 'Opportunity probability is wrong and should be 0.0.' - I reset cancelled lead into unqualified lead. - @@ -19,35 +22,24 @@ !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in draft state}: - state == "draft" - - I put unqualified lead into pending. + I re-open the lead - !python {model: crm.lead}: | - self.case_pending(cr, uid, [ref("crm_case_itisatelesalescampaign0")]) + self.case_open(cr, uid, [ref("crm_case_itisatelesalescampaign0")]) - - I check status of pending lead. + I check stage and state of the re-opened lead - - !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in pending state}: - - state == "pending" + !python {model: crm.lead}: | + lead = self.browse(cr, uid, ref('crm.crm_case_itisatelesalescampaign0')) + assert lead.stage_id.id == ref('crm.stage_lead2'), "Opportunity stage should be 'Qualification'." + assert lead.state == 'open', "Opportunity should be in 'open' state." - I escalate the lead to parent team. - !python {model: crm.lead}: | self.case_escalate(cr, uid, [ref("crm_case_itisatelesalescampaign0")]) - - I check lead escalate to parent team. + I check the lead is correctly escalated to the parent team. - !assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Escalate lead to parent team}: - section_id.name == "Sales Department" -- - I mark as lost the opportunity. -- - !python {model: crm.lead}: | - self.case_mark_lost(cr, uid, [ref("crm_case_itisatelesalescampaign0")]) -- - I check opportunity after lost. -- - !python {model: crm.lead}: | - lead = self.browse(cr, uid, ref('crm_case_itisatelesalescampaign0')) - assert lead.state == 'done', "lead is not done state" - assert lead.stage_id.id == ref('crm.stage_lead6'), 'Stage is not changed!' - assert lead.probability == 0.0, 'Probability is wrong!' diff --git a/addons/crm/test/process/lead2opportunity2win.yml b/addons/crm/test/process/lead2opportunity2win.yml index a5b6c421dbb..c1caf394c2e 100644 --- a/addons/crm/test/process/lead2opportunity2win.yml +++ b/addons/crm/test/process/lead2opportunity2win.yml @@ -51,7 +51,6 @@ - !python {model: crm.lead}: | self.action_makeMeeting(cr, uid, [ref('crm_case_qrecorp0')]) - - After communicated with customer, I put some notes with contract details. - @@ -60,18 +59,18 @@ note_id = self.create(cr, uid, {'body': "ces détails envoyés par le client sur le FAX pour la qualité"}) self.action_add(cr, uid, [note_id], context=context) - - Finally, I won this opportunity, so I close this opportunity. + I win this opportunity - !python {model: crm.lead}: | self.case_mark_won(cr, uid, [ref("crm_case_qrecorp0")]) - - I check details of the opportunity after won the opportunity. + I check details of the opportunity after having won the opportunity. - !python {model: crm.lead}: | lead = self.browse(cr, uid, ref('crm_case_qrecorp0')) - assert lead.state == 'done', 'Opportunity is not in done state!' - assert lead.stage_id.name == 'Won', ' Stage of Opportunity is not win!' - assert lead.probability == 100.0, 'probability revenue should not be 100.0!' + assert lead.stage_id.id == ref('crm.stage_lead6'), "Opportunity stage should be 'Won'." + assert lead.state == 'done', "Opportunity is not in 'done' state!" + assert lead.probability == 100.0, "Revenue probability should be 100.0!" - I convert mass lead into opportunity customer. - @@ -97,6 +96,19 @@ assert opp.type == 'opportunity', 'Lead is not converted to opportunity!' assert opp.stage_id.id == ref("stage_lead1"), 'Stage of probability is incorrect!' - + I loose the second opportunity +- + !python {model: crm.lead}: | + self.case_mark_lost(cr, uid, [ref("crm_case_electonicgoodsdealer0")]) +- + I check details of the opportunity after the loose +- + !python {model: crm.lead}: | + lead = self.browse(cr, uid, ref('crm_case_electonicgoodsdealer0')) + assert lead.stage_id.id == ref('crm.stage_lead8'), "Opportunity stage should be 'Lost'." + assert lead.state == 'cancel', "Lost opportunity is not in 'cancel' state!" + assert lead.probability == 0.0, "Revenue probability should be 0.0!" +- I confirm review needs meeting. - !python {model: crm.meeting}: | diff --git a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml index 9c4f1361e7c..d0499bbdf6c 100644 --- a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml +++ b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml @@ -2,40 +2,44 @@ <openerp> <data> - <!-- Opportunity to Phonecall view --> + <!-- Opportunity to Phonecall view --> <record model="ir.ui.view" id="opportunity2phonecall_view"> <field name="name">crm.opportunity2phonecall.form</field> <field name="model">crm.opportunity2phonecall</field> <field name="type">form</field> <field name="arch" type="xml"> - <form string="Schedule/Log a Call"> - <separator string="Schedule/Log a Call" colspan="4"/> - <field name="action"/> - <separator string="Call Details" colspan="4"/> - <field name="name"/> - <field name="date" string="Planned Date" attrs="{'invisible': [('action','=','log')]}"/> - <newline/> - <field name="partner_id" readonly="True"/> - <field name="categ_id" string="Type" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/> - <field name="phone"/> - <field name="user_id" attrs="{'invisible': [('action','=','log')]}"/> - <field name="section_id" widget="selection" attrs="{'invisible': [('action','=','log')]}"/> - <separator string="Notes" colspan="4"/> - <field name="note" colspan="4" nolabel="1"/> - <separator string="" colspan="4"/> - <group colspan="4" col="3"> - <button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" /> - <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')]}" /> - </group> + <form string="Schedule/Log a Call" layout="manual"> + <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" /> + </header> + <group> + <group> + <field name="action"/> + <field name="name"/> + <field name="date" string="Planned Date" attrs="{'invisible': [('action','=','log')]}"/> + </group> + <group> + <field name="partner_id" readonly="True"/> + <field name="categ_id" string="Type" + widget="selection" + domain="[('object_id.model', '=', 'crm.phonecall')]" + groups="base.group_no_one"/> + <field name="phone"/> + <field name="user_id" attrs="{'invisible': [('action','=','log')]}"/> + <field name="section_id" widget="selection" attrs="{'invisible': [('action','=','log')]}"/> + </group> + </group> + <field name="note"/> </form> </field> </record> - <!-- Opportunity to Phonecall action --> + <!-- Opportunity to Phonecall action --> - <record model="ir.actions.act_window" id="opportunity2phonecall_act"> + <record model="ir.actions.act_window" id="opportunity2phonecall_act"> <field name="name">Schedule/Log Call</field> <field name="res_model">crm.opportunity2phonecall</field> <field name="view_type">form</field> diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py index 1b6d386b0cc..808ad2e2055 100644 --- a/addons/crm_claim/crm_claim.py +++ b/addons/crm_claim/crm_claim.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,25 +19,57 @@ # ############################################################################## -from osv import fields, osv +from base_status.base_stage import base_stage +import binascii from crm import crm -import time from crm import wizard -import binascii +from osv import fields, osv +import time import tools from tools.translate import _ wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.claim') + CRM_CLAIM_PENDING_STATES = ( crm.AVAILABLE_STATES[2][0], # Cancelled crm.AVAILABLE_STATES[3][0], # Done crm.AVAILABLE_STATES[4][0], # Pending ) - -class crm_claim(crm.crm_case, osv.osv): +class crm_claim_stage(osv.osv): + """ Model for claim stages. This models the main stages of a claim + management flow. Main CRM objects (leads, opportunities, project + issues, ...) will now use only stages, instead of state and stages. + Stages are for example used to display the kanban view of records. """ - Crm claim + _name = "crm.claim.stage" + _description = "Claim stages" + _rec_name = 'name' + _order = "sequence" + + _columns = { + 'name': fields.char('Stage Name', size=64, required=True, translate=True), + 'sequence': fields.integer('Sequence', help="Used to order stages. Lower is better."), + 'section_ids':fields.many2many('crm.case.section', 'section_claim_stage_rel', 'stage_id', 'section_id', string='Sections', + help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."), + 'state': fields.selection(crm.AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change regarding the selected stage. For example, if a stage is related to the state 'Close', when your document reaches this stage, it will be automatically have the 'closed' state."), + 'case_refused': fields.boolean('Refused stage', + help='Refused stages are specific stages for done.'), + 'case_default': fields.boolean('Common to All Teams', + help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."), + 'fold': fields.boolean('Hide in Views when Empty', + help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."), + } + + _defaults = { + 'sequence': lambda *args: 1, + 'state': 'draft', + 'fold': False, + 'case_refused': False, + } + +class crm_claim(base_stage, osv.osv): + """ Crm claim """ _name = "crm.claim" _description = "Claim" @@ -73,30 +105,71 @@ class crm_claim(crm.crm_case, osv.osv): 'email_cc': fields.text('Watchers Emails', size=252, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"), 'email_from': fields.char('Email', size=128, help="These people will receive email."), 'partner_phone': fields.char('Phone', size=32), - 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_ids','=',section_id)]"), + 'stage_id': fields.many2one ('crm.claim.stage', 'Stage', + domain="['|', ('section_ids', '=', section_id), ('case_default', '=', True)]"), 'cause': fields.text('Root Cause'), - 'state': fields.selection(crm.AVAILABLE_STATES, 'Status', size=16, readonly=True, - help='The state is set to \'Draft\', when a case is created.\ - \nIf the case is in progress the state is set to \'Open\'.\ - \nWhen the case is over, the state is set to \'Done\'.\ - \nIf the case needs to be reviewed then the state is set to \'Pending\'.'), - 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=crm.AVAILABLE_STATES, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If the case needs to be reviewed then the state is \ + set to \'Pending\'.'), } _defaults = { - 'user_id': crm.crm_case._get_default_user, - 'partner_id': crm.crm_case._get_default_partner, - 'email_from':crm.crm_case. _get_default_email, - 'state': lambda *a: 'draft', - 'section_id':crm.crm_case. _get_section, - 'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), + 'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c), + 'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c), + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), + 'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c), + 'date': fields.datetime.now, 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c), 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], 'active': lambda *a: 1 } - def case_get_note_msg_prefix(self, cr, uid, id, context=None): - return 'Claim' + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the lead: + - section_id: if set, stages must belong to this section or + be a default case + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + section_ids = [] + if section_id: + section_ids.append(section_id) + for claim in cases: + if claim.section_id: + section_ids.append(claim.section_id.id) + # OR all section_ids and OR with case_default + search_domain = [] + if section_ids: + search_domain += [('|')] * len(section_ids) + for section_id in section_ids: + search_domain.append(('section_ids', '=', section_id)) + search_domain.append(('case_default', '=', True)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('crm.claim.stage').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] + return False + + def create(self, cr, uid, vals, context=None): + obj_id = super(crm_claim, self).create(cr, uid, vals, context) + self.create_send_note(cr, uid, [obj_id], context=context) + return obj_id + + def case_refuse(self, cr, uid, ids, context=None): + """ Mark the case as refused: state=done and case_refused=True """ + for lead in self.browse(cr, uid, ids): + stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, ['&', ('state', '=', 'done'), ('case_refused', '=', True)], context=context) + if stage_id: + self.case_set(cr, uid, [lead.id], values_to_update={}, new_stage_id=stage_id, context=context) + return self.case_refuse_send_note(cr, uid, ids, context=context) def onchange_partner_id(self, cr, uid, ids, part, email=False): """This function returns value of partner address based on partner @@ -110,19 +183,6 @@ class crm_claim(crm.crm_case, osv.osv): } address = self.pool.get('res.partner').browse(cr, uid, part) return {'value': {'email_from': address.email, 'partner_phone': address.phone}} - - def case_open(self, cr, uid, ids, *args): - """Opens Claim""" - for l in self.browse(cr, uid, ids): - # When coming from draft override date and stage otherwise just set state - if l.state == 'draft': - message = _("The claim '%s' has been opened.") % l.name - self.log(cr, uid, l.id, message) - stage_id = self.stage_find(cr, uid, l.section_id.id or False, [('sequence','>',0)]) - if stage_id: - self.stage_set(cr, uid, [l.id], stage_id) - res = super(crm_claim, self).case_open(cr, uid, ids, *args) - return res def message_new(self, cr, uid, msg, custom_values=None, context=None): """Automatically called when new email message arrives""" @@ -177,6 +237,28 @@ class crm_claim(crm.crm_case, osv.osv): res = self.write(cr, uid, [case.id], values, context=context) return res + # --------------------------------------------------- + # OpenChatter methods and notifications + # --------------------------------------------------- + + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + """ Override of default prefix for notifications. """ + return 'Claim' + + def create_send_note(self, cr, uid, ids, context=None): + msg = _('Claim has been <b>created</b>.') + return self.message_append_note(cr, uid, ids, body=msg, context=context) + + def case_refuse_send_note(self, cr, uid, ids, context=None): + msg = _('Claim has been <b>refused</b>.') + return self.message_append_note(cr, uid, ids, body=msg, context=context) + + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + stage_name = self.pool.get('crm.claim.stage').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to <b>%s</b>.") % (stage_name), context=context) + + class res_partner(osv.osv): _inherit = 'res.partner' _columns = { diff --git a/addons/crm_claim/crm_claim_data.xml b/addons/crm_claim/crm_claim_data.xml index 5b3a2b0ed2a..33bd280c364 100644 --- a/addons/crm_claim/crm_claim_data.xml +++ b/addons/crm_claim/crm_claim_data.xml @@ -42,27 +42,39 @@ Case Stage --> - <record model="crm.case.stage" id="stage_claim1"> - <field name="name">Accepted as Claim</field> + <record model="crm.claim.stage" id="stage_claim1"> + <field name="name">Draft claim</field> + <field name="state">draft</field> <field name="sequence">26</field> + <field name="case_default" eval="True"/> </record> - <record model="crm.case.stage" id="stage_claim5"> + <record model="crm.claim.stage" id="stage_claim5"> <field name="name">Actions Defined</field> + <field name="state">open</field> <field name="sequence">27</field> + <field name="case_default" eval="True"/> </record> - <record model="crm.case.stage" id="stage_claim2"> + <record model="crm.claim.stage" id="stage_claim2"> <field name="name">Actions Done</field> + <field name="state">done</field> <field name="sequence">28</field> + <field name="case_default" eval="True"/> </record> - <record model="crm.case.stage" id="stage_claim3"> - <field name="name">Won't fix</field> + <record model="crm.claim.stage" id="stage_claim3"> + <field name="name">Refused</field> + <field name="state">done</field> <field name="sequence">29</field> + <field name="case_default" eval="True"/> + <field name="case_refused" eval="True"/> + <field name="fold" eval="True"/> </record> - - <record model="crm.case.section" id="crm.section_sales_department"> - <field name="name">Sales Department</field> - <field name="code">Sales</field> - <field name="stage_ids" eval="[(4, ref('stage_claim1')), (4, ref('stage_claim2')), (4, ref('stage_claim3')), (4, ref('stage_claim5'))]"/> + <record model="crm.claim.stage" id="stage_claim3"> + <field name="name">Cancelled</field> + <field name="state">cancel</field> + <field name="sequence">30</field> + <field name="case_default" eval="True"/> + <field name="fold" eval="True"/> </record> + </data> </openerp> diff --git a/addons/crm_claim/crm_claim_demo.xml b/addons/crm_claim/crm_claim_demo.xml index 592e655b489..0e368bcdffa 100644 --- a/addons/crm_claim/crm_claim_demo.xml +++ b/addons/crm_claim/crm_claim_demo.xml @@ -12,7 +12,6 @@ <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field eval=""Problem with the delivery of goods"" name="name"/> - <field eval=""open"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm_claim.categ_claim1"/> <field name="stage_id" ref="crm_claim.stage_claim1"/> @@ -25,7 +24,6 @@ <field eval=""4"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field eval=""Damaged Products"" name="name"/> - <field eval=""open"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm_claim.categ_claim2"/> <field name="stage_id" ref="crm_claim.stage_claim5"/> @@ -38,7 +36,6 @@ <field eval=""2"" name="priority"/> <field name="user_id" ref="base.user_demo"/> <field eval=""Document related problems"" name="name"/> - <field eval=""done"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm_claim.categ_claim3"/> <field name="stage_id" ref="crm_claim.stage_claim2"/> @@ -52,7 +49,6 @@ <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field eval=""Product quality not maintained"" name="name"/> - <field eval=""draft"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm_claim.categ_claim1"/> <field name="stage_id" ref="crm_claim.stage_claim5"/> @@ -65,7 +61,6 @@ <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field eval=""Some products missing"" name="name"/> - <field eval=""pending"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field name="categ_id" ref="crm_claim.categ_claim3"/> <field name="stage_id" ref="crm_claim.stage_claim3"/> @@ -77,7 +72,6 @@ <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field eval=""Problem with the delivery of assignments"" name="name"/> - <field eval=""cancel"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="time.strftime('%Y-%m-28 14:15:30')" name="date"/> <field name="categ_id" ref="crm_claim.categ_claim1"/> @@ -91,7 +85,6 @@ <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field eval=""Documents unclear"" name="name"/> - <field eval=""done"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="time.strftime('%Y-%m-19 13:01:05')" name="date"/> <field name="categ_id" ref="crm_claim.categ_claim3"/> diff --git a/addons/crm_claim/crm_claim_menu.xml b/addons/crm_claim/crm_claim_menu.xml index 734302fa7f9..75bfd9ce211 100644 --- a/addons/crm_claim/crm_claim_menu.xml +++ b/addons/crm_claim/crm_claim_menu.xml @@ -50,5 +50,10 @@ <menuitem name="Claims" id="menu_crm_case_claims" parent="base.menu_aftersale" action="crm_case_categ_claim0" sequence="1"/> + <!-- Claim Stages --> + <menuitem id="menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/> + <menuitem id="menu_project_config_project" name="Stages" parent="menu_definitions" sequence="1"/> + <menuitem id="menu_claim_stage_view" name="Claim Stages" action="crm_claim_stage_act" parent="menu_project_config_project" sequence="20"/> + </data> </openerp> diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml index 57a8827d528..4e49a0d9db8 100644 --- a/addons/crm_claim/crm_claim_view.xml +++ b/addons/crm_claim/crm_claim_view.xml @@ -23,12 +23,40 @@ <!-- Claim Stages --> + <record id="crm_claim_stage_tree" model="ir.ui.view"> + <field name="name">crm.claim.stage.tree</field> + <field name="model">crm.claim.stage</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Claim Stages"> + <field name="sequence"/> + <field name="name"/> + <field name="state"/> + </tree> + </field> + </record> + + <record id="crm_claim_stage_form" model="ir.ui.view"> + <field name="name">crm.claim.stage.form</field> + <field name="model">crm.claim.stage</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Claim Stage"> + <field name="name"/> + <field name="case_default"/> + <field name="sequence"/> + <field name="state"/> + <field name="case_refused"/> + <field name="fold"/> + </form> + </field> + </record> + <record id="crm_claim_stage_act" model="ir.actions.act_window"> <field name="name">Claim Stages</field> - <field name="res_model">crm.case.stage</field> + <field name="res_model">crm.claim.stage</field> <field name="view_type">form</field> - <field name="view_id" ref="crm.crm_case_stage_tree"/> - <field name="context">{'search_default_claim':1}</field> + <field name="view_id" ref="crm_claim_stage_tree"/> <field name="help">You can create claim stages to categorize the status of every claim entered in the system. The stages define all the steps required for the resolution of a claim.</field> </record> @@ -44,19 +72,13 @@ <field name="partner_id"/> <field name="user_id" /> <field name="date"/> + <field name="stage_id"/> <field name="date_action_next"/> <field name="action_next"/> <field name="categ_id" string="Type" select="1"/> - <field name="stage_id" invisible="1"/> <field name="date_deadline" invisible="1"/> <field name="date_closed" invisible="1"/> - <field name="state"/> - <button name="case_open" string="Open" - states="draft,pending" type="object" - icon="gtk-go-forward" /> - <button name="case_close" string="Close" - states="open,draft,pending" type="object" - icon="gtk-close" /> + <field name="state" groups="base.group_no_one"/> </tree> </field> </record> @@ -67,17 +89,24 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> - <button name="case_close" string="Done" states="open,pending" type="object" /> - <button name="case_open" string="Open" states="draft,pending" type="object" /> - <button name="case_pending" string="Pending" states="draft,open" type="object" /> - <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" /> - <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" /> - <div class="oe_right"> - <field name="state" select="1" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <header> + <button name="case_open" string="Open" type="object" + states="draft,pending"/> + <button name="case_close" string="Done" type="object" + states="open,pending"/> + <button name="case_refuse" string="Refuse" type="object" + states="draft,open,pending"/> + <button name="stage_previous" string="Previous Stage" type="object" + states="open,pending" icon="gtk-go-back" attrs="{'invisible': [('stage_id','=', False)]}"/> + <button name="stage_next" string="Next Stage" type="object" + states="open,pending" icon="gtk-go-forward" attrs="{'invisible': [('stage_id','=', False)]}"/> + <button name="case_reset" string="Reset to Draft" type="object" + states="cancel,done"/> + <button name="case_cancel" string="Cancel" type="object" + states="draft,open,pending"/> + <field name="stage_id" widget="statusbar" + on_change="onchange_stage_id(stage_id)"/> + </header> <sheet string="Claims" layout="auto"> <group> <field name="name" /> @@ -86,11 +115,7 @@ <group colspan="4" col="6"> <field name="user_id"/> <field name="section_id" widget="selection" /> - <group colspan="2" col="4"> - <field name="stage_id" domain="[('section_ids','=',section_id)]"/> - <button name="stage_previous" string="" type="object" icon="gtk-go-back" /> - <button name="stage_next" string="" type="object" icon="gtk-go-forward" /> - </group> + <field name="state" groups="base.group_no_one"/> <newline /> <field name="priority"/> <field name="date_deadline"/> @@ -138,32 +163,12 @@ <field name="resolution" colspan="2" nolabel="1"/> </group> </page> - <page string="Communication & History"> - <group colspan="4"> - <field colspan="4" name="email_cc" string="Global CC" widget="char"/> - </group> - <field name="message_ids" colspan="4" nolabel="1" mode="tree" readonly="1"> - <tree string="History"> - <field name="display_text" string="History Information"/> - <field name="email_from" invisible="1"/> - <button - string="Reply" attrs="{'invisible': [('email_from', '=', False)]}" - name="%(mail.action_email_compose_message_wizard)d" - context="{'mail.compose.message.mode':'reply'}" - icon="terp-mail-replied" type="action" /> - </tree> - </field> - <button string="Add Internal Note" - name="%(crm.action_crm_add_note)d" - context="{'model': 'crm.lead' }" - icon="terp-document-new" type="action" /> - <button string="Send New Email" - name="%(mail.action_email_compose_message_wizard)d" - icon="terp-mail-message-new" type="action"/> - </page> </notebook> </group> </sheet> + <div class="oe_form_sheet_width"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </div> </form> </field> </record> @@ -227,7 +232,7 @@ domain="[]" context="{'group_by':'categ_id'}" /> <filter string="Status" icon="terp-stock_effects-object-colorize" - domain="[]" context="{'group_by':'state'}" /> + domain="[]" context="{'group_by':'state'}" groups="base.group_no_one"/> <separator orientation="vertical"/> <filter string="Claim Date" icon="terp-go-month" domain="[]" help="Claim Date" diff --git a/addons/crm_claim/security/ir.model.access.csv b/addons/crm_claim/security/ir.model.access.csv index 5a05fbd4d87..303624288ce 100644 --- a/addons/crm_claim/security/ir.model.access.csv +++ b/addons/crm_claim/security/ir.model.access.csv @@ -1,5 +1,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_crm_claim_manager,crm.claim.manager,model_crm_claim,base.group_sale_manager,1,1,1,1
access_crm_claim_user,crm.claim.user,model_crm_claim,base.group_sale_salesman,1,1,1,0
+access_crm_claim_stage_user,crm.claim.stage.user,model_crm_claim_stage,base.group_sale_salesman,1,1,1,1
access_crm_claim_report_manager,crm.claim.report.manager,model_crm_claim_report,base.group_sale_manager,1,1,1,1
access_crm_claim_partner_manager,crm.claim.partner.manager,model_crm_claim,base.group_partner_manager,1,0,0,0
diff --git a/addons/crm_claim/test/process/claim.yml b/addons/crm_claim/test/process/claim.yml index e20436cd3c6..45ca7cf2962 100644 --- a/addons/crm_claim/test/process/claim.yml +++ b/addons/crm_claim/test/process/claim.yml @@ -30,7 +30,7 @@ claim_ids = self.search(cr, uid, [('email_from','=', 'Mr. John Right <info@customer.com>')]) claim = self.browse(cr, uid, claim_ids[0]) assert claim.state == "open", "Claim is not in Open state" - assert claim.stage_id.id == ref("crm.stage_lead1"), "Claim is not in New stage" + assert claim.stage_id.id == ref("crm.stage_lead2"), "Claim is not in Qualification stage" - After complete all service from our side, I close this claim. - diff --git a/addons/crm_fundraising/crm_fundraising.py b/addons/crm_fundraising/crm_fundraising.py index 90014188777..73f72979730 100644 --- a/addons/crm_fundraising/crm_fundraising.py +++ b/addons/crm_fundraising/crm_fundraising.py @@ -19,13 +19,15 @@ # ############################################################################## -from osv import fields, osv +from base_status.base_stage import base_stage from crm import crm from crm import wizard +from osv import fields, osv +from tools.translate import _ wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.fundraising') -class crm_fundraising(crm.crm_case, osv.osv): +class crm_fundraising(base_stage, osv.osv): """ Fund Raising Cases """ _name = "crm.fundraising" @@ -68,14 +70,62 @@ class crm_fundraising(crm.crm_case, osv.osv): 'duration': fields.float('Duration'), 'ref': fields.reference('Reference', selection=crm._links_get, size=128), 'ref2': fields.reference('Reference 2', selection=crm._links_get, size=128), - 'state': fields.selection(crm.AVAILABLE_STATES, 'Status', size=16, readonly=True, - help='The state is set to \'Draft\', when a case is created.\ - \nIf the case is in progress the state is set to \'Open\'.\ - \nWhen the case is over, the state is set to \'Done\'.\ - \nIf the case needs to be reviewed then the state is set to \'Pending\'.'), - 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=crm.AVAILABLE_STATES, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If the case needs to be reviewed then the state is \ + set to \'Pending\'.'), } + _defaults = { + 'active': 1, + 'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c), + 'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c), + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), + 'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c), + 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c), + 'priority': crm.AVAILABLE_PRIORITIES[2][0], + 'probability': 0.0, + 'planned_cost': 0.0, + 'planned_revenue': 0.0, + } + + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the lead: + - section_id: if set, stages must belong to this section or + be a default case + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + section_ids = [] + if section_id: + section_ids.append(section_id) + for case in cases: + if case.section_id: + section_ids.append(case.section_id.id) + # OR all section_ids and OR with case_default + search_domain = [] + if section_ids: + search_domain += [('|')] * len(section_ids) + for section_id in section_ids: + search_domain.append(('section_ids', '=', section_id)) + search_domain.append(('case_default', '=', True)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('crm.case.stage').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] + return False + + def create(self, cr, uid, vals, context=None): + obj_id = super(crm_fundraising, self).create(cr, uid, vals, context) + self.create_send_note(cr, uid, [obj_id], context=context) + return obj_id def message_new(self, cr, uid, msg, custom_values=None, context=None): """Automatically called when new email message arrives""" @@ -93,21 +143,23 @@ class crm_fundraising(crm.crm_case, osv.osv): self.write(cr, uid, [res_id], vals, context=context) return res_id + # --------------------------------------------------- + # OpenChatter methods and notifications + # --------------------------------------------------- - _defaults = { - 'active': 1, - 'user_id': crm.crm_case._get_default_user, - 'partner_id': crm.crm_case._get_default_partner, - 'email_from': crm.crm_case. _get_default_email, - 'state': 'draft', - 'section_id': crm.crm_case. _get_section, - 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.case', context=c), - 'priority': crm.AVAILABLE_PRIORITIES[2][0], - 'probability': 0.0, - 'planned_cost': 0.0, - 'planned_revenue': 0.0, - } + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + """ Override of default prefix for notifications. """ + return 'Fundraising' + + def create_send_note(self, cr, uid, ids, context=None): + msg = _('Fundraising has been <b>created</b>.') + self.message_append_note(cr, uid, ids, body=msg, context=context) + return True + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + stage_name = self.pool.get('crm.case.stage').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to <b>%s</b>.") % (stage_name), context=context) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm_fundraising/crm_fundraising_demo.xml b/addons/crm_fundraising/crm_fundraising_demo.xml index 52b4094d126..70b32afabf3 100644 --- a/addons/crm_fundraising/crm_fundraising_demo.xml +++ b/addons/crm_fundraising/crm_fundraising_demo.xml @@ -9,7 +9,6 @@ <field name="partner_id" ref="base.res_partner_9"/> <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_demo"/> - <field eval=""open"" name="state"/> <field eval="250000.0" name="planned_cost"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="time.strftime('%Y-%m-01 10:35:50')" name="date"/> @@ -26,7 +25,6 @@ <field name="partner_id" ref="base.main_partner"/> <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval=""draft"" name="state"/> <field eval="2000000.0" name="planned_cost"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="time.strftime('%Y-%m-05 12:35:50')" name="date"/> @@ -43,7 +41,6 @@ <field name="partner_id" ref="base.res_partner_3"/> <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval=""open"" name="state"/> <field eval="500000.0" name="planned_cost"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="time.strftime('%Y-%m-07 13:50:50')" name="date"/> @@ -59,7 +56,6 @@ <field name="partner_id" ref="base.res_partner_4"/> <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_demo"/> - <field eval=""draft"" name="state"/> <field eval="1000000.0" name="planned_cost"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="time.strftime('%Y-%m-12 15:10:50')" name="date"/> @@ -75,7 +71,6 @@ <field name="partner_id" ref="base.res_partner_14"/> <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval=""open"" name="state"/> <field eval="5000000.0" name="planned_cost"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="time.strftime('%Y-%m-17 19:00:15')" name="date"/> @@ -91,7 +86,6 @@ <field name="partner_id" ref="base.res_partner_10"/> <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval=""done"" name="state"/> <field eval="10000000.0" name="planned_cost"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="time.strftime('%Y-%m-27 09:00:15')" name="date"/> @@ -109,7 +103,6 @@ <field name="partner_id" ref="base.res_partner_15"/> <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_demo"/> - <field eval=""draft"" name="state"/> <field eval="10000.0" name="planned_cost"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="time.strftime('%Y-%m-01 10:00:15')" name="date"/> @@ -126,7 +119,6 @@ <field name="partner_id" ref="base.res_partner_9"/> <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> - <field eval=""open"" name="state"/> <field eval="800000.0" name="planned_cost"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="time.strftime('%Y-%m-24 22:00:15')" name="date"/> diff --git a/addons/crm_fundraising/crm_fundraising_view.xml b/addons/crm_fundraising/crm_fundraising_view.xml index b960fe2bccb..02f85b1ad7f 100644 --- a/addons/crm_fundraising/crm_fundraising_view.xml +++ b/addons/crm_fundraising/crm_fundraising_view.xml @@ -50,22 +50,6 @@ <field name="user_id" /> <field name="state" /> <field name="partner_id" invisible="1"/> - <button name="case_cancel" string="Cancel" - states="draft,open,pending" type="object" - icon="gtk-cancel" /> - <button name="case_open" string="Open" - states="draft,pending" type="object" - icon="gtk-go-forward" /> - <button name="case_pending" string="Pending" - states="draft,open" type="object" icon="gtk-media-pause" /> - <button name="case_escalate" string="Escalate" - states="open,draft,pending" type="object" - icon="gtk-go-up" /> - <button name="case_close" string="Done" - states="open,draft,pending" type="object" - icon="gtk-close" /> - <button name="case_reset" string="Reset to Draft" - states="done,cancel" type="object" icon="gtk-convert" /> </tree> </field> </record> @@ -78,18 +62,15 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="case_close" string="Done" states="open,pending" type="object" /> <button name="case_open" string="Open" states="draft,pending" type="object" /> <button name="case_pending" string="Pending" states="draft,open" type="object" /> <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" groups="base.group_extended" /> <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" /> <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" /> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> + </header> <sheet string="Funds Form" layout="auto"> <group colspan="4" col="6" class="oe_form_header"> <field name="name" select="1" string="Name"/> @@ -117,29 +98,6 @@ <separator colspan="4" string="Notes"/> <field name="description" nolabel="1" colspan="4"/> </page> - <page string="Communication & History"> - <group colspan="4"> - <field colspan="4" name="email_cc" string="Global CC" widget="char"/> - </group> - <field name="message_ids" colspan="4" nolabel="1" mode="tree" readonly="1"> - <tree string="History"> - <field name="display_text" string="History Information"/> - <field name="email_from" invisible="1"/> - <button - string="Reply" attrs="{'invisible': [('email_from', '=', False)]}" - name="%(mail.action_email_compose_message_wizard)d" - context="{'mail.compose.message.mode':'reply', 'message_id':active_id}" - icon="terp-mail-replied" type="action" /> - </tree> - </field> - <button string="Add Internal Note" - name="%(crm.action_crm_add_note)d" - context="{'model': 'crm.lead' }" - icon="terp-document-new" type="action" /> - <button string="Send New Email" - name="%(mail.action_email_compose_message_wizard)d" - icon="terp-mail-message-new" type="action"/> - </page> <page string="Extra Info"> <group col="2" colspan="2"> <separator colspan="4" string="Misc"/> @@ -162,6 +120,9 @@ </page> </notebook> </sheet> + <div class="oe_form_sheet_width"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </div> </form> </field> </record> diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py index d5ee8efc17e..f0d98efebb3 100644 --- a/addons/crm_helpdesk/crm_helpdesk.py +++ b/addons/crm_helpdesk/crm_helpdesk.py @@ -19,10 +19,10 @@ # ############################################################################## +from base_status.base_state import base_state from crm import crm -from osv import fields, osv -import time from crm import wizard +from osv import fields, osv import tools from tools.translate import _ @@ -34,7 +34,7 @@ CRM_HELPDESK_STATES = ( wizard.mail_compose_message.SUPPORTED_MODELS.append('crm.helpdesk') -class crm_helpdesk(crm.crm_case, osv.osv): +class crm_helpdesk(base_state, osv.osv): """ Helpdesk Cases """ _name = "crm.helpdesk" @@ -77,21 +77,24 @@ class crm_helpdesk(crm.crm_case, osv.osv): \nIf the case is in progress the state is set to \'Open\'.\ \nWhen the case is over, the state is set to \'Done\'.\ \nIf the case needs to be reviewed then the state is set to \'Pending\'.'), - 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), } _defaults = { 'active': lambda *a: 1, - 'user_id': crm.crm_case._get_default_user, - 'partner_id': crm.crm_case._get_default_partner, - 'email_from': crm.crm_case. _get_default_email, + 'user_id': lambda s, cr, uid, c: s._get_default_user(cr, uid, c), + 'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c), + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), 'state': lambda *a: 'draft', - 'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'), - 'section_id': crm.crm_case. _get_section, + 'date': lambda *a: fields.datetime.now(), 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c), 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0], } + def create(self, cr, uid, vals, context=None): + obj_id = super(crm_helpdesk, self).create(cr, uid, vals, context) + self.create_send_note(cr, uid, [obj_id], context=context) + return obj_id + def message_new(self, cr, uid, msg_dict, custom_values=None, context=None): """Automatically called when new email message arrives""" res_id = super(crm_helpdesk,self).message_new(cr, uid, msg_dict, custom_values=custom_values, context=context) @@ -142,5 +145,18 @@ class crm_helpdesk(crm.crm_case, osv.osv): res = self.write(cr, uid, [case.id], values, context=context) return res -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + # ****************************** + # OpenChatter + # ****************************** + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + """ override of default base_state method. """ + return 'Case' + + def create_send_note(self, cr, uid, ids, context=None): + msg = _('Case has been <b>created</b>.') + self.message_append_note(cr, uid, ids, body=msg, context=context) + return True + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml index b1d5a2b96f8..d6b21ab9191 100644 --- a/addons/crm_helpdesk/crm_helpdesk_view.xml +++ b/addons/crm_helpdesk/crm_helpdesk_view.xml @@ -29,18 +29,21 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> - <button name="case_close" states="open,pending" string="Close" type="object" /> - <button name="case_open" states="draft,pending" string="Open" type="object" /> - <button name="case_pending" states="draft,open" string="Pending" type="object" /> - <button name="case_reset" states="done,cancel" string="Reset to Draft" type="object" /> - <button name="case_escalate" states="open,draft,pending" string="Escalate" type="object" /> - <button name="case_cancel" states="draft,open,pending" string="Cancel" type="object" /> - <div class="oe_right"> - <field name="state" select="1" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <header> + <button name="case_open" string="Open" type="object" + states="draft,pending"/> + <button name="case_close" string="Close" type="object" + states="open,draft,pending"/> + <button name="case_pending" string="Pending" type="object" + states="draft,open"/> + <button name="case_reset" string="Reset to Draft" type="object" + states="cancel,done"/> + <button name="case_escalate" string="Escalate" type="object" + states="open,draft,pending"/> + <button name="case_cancel" string="Cancel" type="object" + states="draft,open,pending"/> + <field name="state" select="1" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> + </header> <sheet string="Helpdesk Support" layout="auto"> <group colspan="4" col="7" class="oe_form_header"> <field name="name" select="1" string="Query"/> @@ -78,29 +81,6 @@ <separator colspan="4" string="Notes"/> <field name="description" colspan="4" nolabel="1" /> </page> - <page string="Communication & History"> - <group colspan="4"> - <field colspan="4" name="email_cc" string="Global CC" widget="char"/> - </group> - <field name="message_ids" colspan="4" nolabel="1" mode="tree" readonly="1"> - <tree string="History"> - <field name="display_text" string="History Information"/> - <field name="email_from" invisible="1"/> - <button - string="Reply" attrs="{'invisible': [('email_from', '=', False)]}" - name="%(mail.action_email_compose_message_wizard)d" - context="{'mail.compose.message.mode':'reply', 'message_id':active_id}" - icon="terp-mail-replied" type="action" /> - </tree> - </field> - <button string="Add Internal Note" - name="%(crm.action_crm_add_note)d" - context="{'model': 'crm.lead' }" - icon="terp-document-new" type="action" /> - <button string="Send New Email" - name="%(mail.action_email_compose_message_wizard)d" - icon="terp-mail-message-new" type="action"/> - </page> <page string="Extra Info"> <group colspan="2" col="2" groups="base.group_no_one"> <separator colspan="4" string="Dates"/> @@ -126,6 +106,9 @@ </page> </notebook> </sheet> + <div class="oe_form_bottom"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </div> </form> </field> </record> @@ -147,23 +130,6 @@ <field name="section_id"/> <field name="priority"/> <field name="state"/> - <button name="case_cancel" string="Cancel" - states="draft,open,pending" type="object" - icon="gtk-cancel" /> - <button name="case_open" string="Open" - states="draft,pending" type="object" - icon="gtk-go-forward" /> - <button name="case_pending" string="Pending" - states="draft,open" type="object" - icon="gtk-media-pause" /> - <button name="case_escalate" string="Escalate" - states="open,draft,pending" type="object" - icon="gtk-go-up" /> - <button name="case_close" string="Done" - states="open,draft,pending" type="object" - icon="gtk-close" /> - <button name="case_reset" string="Reset to Draft" - states="done,cancel" type="object" icon="gtk-convert" /> </tree> </field> </record> diff --git a/addons/crm_helpdesk/i18n/gu.po b/addons/crm_helpdesk/i18n/gu.po new file mode 100644 index 00000000000..e9a7479516a --- /dev/null +++ b/addons/crm_helpdesk/i18n/gu.po @@ -0,0 +1,738 @@ +# Gujarati translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 11:11+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Gujarati <gu@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,delay_close:0 +msgid "Delay to Close" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,nbr:0 +msgid "# of Cases" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: view:crm.helpdesk.report:0 +msgid "Group By..." +msgstr "ગ્રુપ દ્વારા..." + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Today" +msgstr "આજે" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "March" +msgstr "માર્ચ" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Helpdesk requests occurred in current year" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,company_id:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,company_id:0 +msgid "Company" +msgstr "કંપની" + +#. module: crm_helpdesk +#: field:crm.helpdesk,email_cc:0 +msgid "Watchers Emails" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Highest" +msgstr "ઉચ્ચતમ" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,day:0 +msgid "Day" +msgstr "દિવસ" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Add Internal Note" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Date of helpdesk requests" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Notes" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,message_ids:0 +msgid "Messages" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "My company" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,state:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Cancelled" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_report_crm_helpdesks_tree +msgid "Helpdesk Analysis" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,date_closed:0 +msgid "Close Date" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,ref:0 +msgid "Reference" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,date_action_next:0 +msgid "Next Action" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Helpdesk Supports" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Extra Info" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,partner_id:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,partner_id:0 +msgid "Partner" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Estimates" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,section_id:0 +msgid "Section" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Helpdesk requests occurred in last month" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Send New Email" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Helpdesk requests during last 7 days" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: selection:crm.helpdesk,state:0 +#: view:crm.helpdesk.report:0 +msgid "New" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report +msgid "Helpdesk report after Sales Services" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,email_from:0 +msgid "Email" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,channel_id:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,channel_id:0 +msgid "Channel" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Lowest" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "# Mails" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: view:crm.helpdesk.report:0 +msgid "My Sales Team(s)" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,create_date:0 +#: field:crm.helpdesk.report,create_date:0 +msgid "Creation Date" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Reset to Draft" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: selection:crm.helpdesk,state:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Pending" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,date_deadline:0 +#: field:crm.helpdesk.report,date_deadline:0 +msgid "Deadline" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "July" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action +msgid "Helpdesk Categories" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act +msgid "Categories" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "New Helpdesk Request" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "History Information" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Dates" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Month of helpdesk requests" +msgstr "" + +#. module: crm_helpdesk +#: code:addons/crm_helpdesk/crm_helpdesk.py:101 +#, python-format +msgid "No Subject" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "#Helpdesk" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "All pending Helpdesk Request" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Year of helpdesk requests" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "References" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "September" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Communication" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,month:0 +msgid "Month" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Escalate" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,write_date:0 +msgid "Update Date" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Helpdesk requests occurred in current month" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Salesman" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,ref2:0 +msgid "Reference 2" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,categ_id:0 +#: field:crm.helpdesk.report,categ_id:0 +msgid "Category" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Responsible User" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Helpdesk Support" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,planned_cost:0 +#: field:crm.helpdesk.report,planned_cost:0 +msgid "Planned Costs" +msgstr "" + +#. module: crm_helpdesk +#: help:crm.helpdesk,channel_id:0 +msgid "Communication channel." +msgstr "" + +#. module: crm_helpdesk +#: help:crm.helpdesk,email_cc:0 +msgid "" +"These email addresses will be added to the CC field of all inbound and " +"outbound emails for this record before being sent. Separate multiple email " +"addresses with a comma" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Search Helpdesk" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,state:0 +msgid "Draft" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Low" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,date_closed:0 +#: selection:crm.helpdesk,state:0 +#: view:crm.helpdesk.report:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Closed" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Reply" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "7 Days" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Communication & History" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "August" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Normal" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Global CC" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "June" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,planned_revenue:0 +msgid "Planned Revenue" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,user_id:0 +msgid "User" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,active:0 +msgid "Active" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "November" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Extended Filters..." +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111 +msgid "Helpdesk Requests" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Search" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "October" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "January" +msgstr "" + +#. module: crm_helpdesk +#: help:crm.helpdesk,email_from:0 +msgid "These people will receive email." +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,date:0 +msgid "Date" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "History" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,priority:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,priority:0 +msgid "Priority" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,partner_address_id:0 +msgid "Partner Contact" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Misc" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,state:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,state:0 +msgid "State" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "General" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Send Reminder" +msgstr "" + +#. module: crm_helpdesk +#: help:crm.helpdesk,section_id:0 +msgid "" +"Sales team to which Case belongs to. Define " +"Responsible user and Email account for mail gateway." +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Done" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "December" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Cancel" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Close" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: view:crm.helpdesk.report:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Open" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Helpdesk Support Tree" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,state:0 +msgid "In Progress" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Categorization" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_config_helpdesk +msgid "Helpdesk" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,user_id:0 +msgid "Responsible" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,delay_expected:0 +msgid "Overpassed Deadline" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,description:0 +msgid "Description" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "May" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,probability:0 +msgid "Probability (%)" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,email:0 +msgid "# Emails" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,help:crm_helpdesk.action_report_crm_helpdesk +msgid "" +"Have a general overview of all support requests by sorting them with " +"specific criteria such as the processing time, number of requests answered, " +"emails sent and costs." +msgstr "" + +#. module: crm_helpdesk +#: help:crm.helpdesk,state:0 +msgid "" +"The state is set to 'Draft', when a case is created. " +" \n" +"If the case is in progress the state is set to 'Open'. " +" \n" +"When the case is over, the state is set to 'Done'. " +" \n" +"If the case needs to be reviewed then the state is set to 'Pending'." +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "February" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,name:0 +msgid "Name" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Month-1" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main +msgid "Helpdesk and Support" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "April" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "My Case(s)" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Query" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,id:0 +msgid "ID" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,help:crm_helpdesk.crm_helpdesk_categ_action +msgid "" +"Create and manage helpdesk categories to better manage and classify your " +"support requests." +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Todays's Helpdesk Requests" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Request Date" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Open Helpdesk Request" +msgstr "" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "High" +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,section_id:0 +#: view:crm.helpdesk.report:0 +msgid "Sales Team" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,date_action_last:0 +msgid "Last Action" +msgstr "" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,help:crm_helpdesk.crm_case_helpdesk_act111 +msgid "" +"Helpdesk and Support allow you to track your interventions. Select a " +"customer, add notes and categorize interventions with partners if necessary. " +"You can also assign a priority level. Use the OpenERP Issues system to " +"manage your support activities. Issues can be connected to the email " +"gateway: new emails may create issues, each of them automatically gets the " +"history of the conversation with the customer." +msgstr "" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,name:0 +msgid "Year" +msgstr "" + +#. module: crm_helpdesk +#: field:crm.helpdesk,duration:0 +msgid "Duration" +msgstr "" diff --git a/addons/crm_helpdesk/i18n/ja.po b/addons/crm_helpdesk/i18n/ja.po index 836b26ca92c..3228f329919 100644 --- a/addons/crm_helpdesk/i18n/ja.po +++ b/addons/crm_helpdesk/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-04-23 20:45+0000\n" +"PO-Revision-Date: 2012-05-28 19:12+0000\n" "Last-Translator: Masaki Yamaya <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-04-24 04:53+0000\n" -"X-Generator: Launchpad (build 15135)\n" +"X-Launchpad-Export-Date: 2012-05-29 04:46+0000\n" +"X-Generator: Launchpad (build 15316)\n" #. module: crm_helpdesk #: field:crm.helpdesk.report,delay_close:0 @@ -725,6 +725,9 @@ msgid "" "gateway: new emails may create issues, each of them automatically gets the " "history of the conversation with the customer." msgstr "" +"ヘルプデスクとサポート機能を使って、あなたの介在を記録することができます。カスタマごとに注釈を加えたり、必要であればパートナとのやり取りを記録することがで" +"きます。また,優先レベルを割り当てることもできます。OpenERPの問題システムを使ってサポート活動を管理することができます。問題をEメールゲートウェイと" +"連動させて、新しいEメールが問題を作成して、カスタマとの対話の履歴を自動的に生成することができます。" #. module: crm_helpdesk #: view:crm.helpdesk.report:0 diff --git a/addons/crm_partner_assign/crm_lead_view.xml b/addons/crm_partner_assign/crm_lead_view.xml index 8da4d623435..83f0e470c55 100644 --- a/addons/crm_partner_assign/crm_lead_view.xml +++ b/addons/crm_partner_assign/crm_lead_view.xml @@ -10,25 +10,28 @@ <data> <xpath expr="//notebook/page[@string='Lead']" position="after"> <page string="Assignation"> - <group name="partner_assign_group" col="5" colspan="4" class="oe_form_group_label_border"> - <separator string="Partner Assignation" colspan="5"/> - <field width="50%%" name="partner_assigned_id" on_change="onchange_assign_id(partner_assigned_id)" domain="[('grade_id','<>',False)]"/> - <field width="40%%" name="date_assign"/> - <group width="10%%" colspan="1" col="1"> - <button string="Forward" - attrs="{'invisible':[('partner_assigned_id','=',False)]}" - name="%(crm_lead_forward_to_partner_act)d" - icon="terp-mail-forward" type="action" - context="{'default_name': 'partner', 'default_partner_id': partner_assigned_id}" - /> + <group name="partner_assign_group"> + <group string="Partner Assignation"> + <field name="partner_assigned_id" on_change="onchange_assign_id(partner_assigned_id)" domain="[('grade_id','<>',False)]"/> + <label for="date_assign"/> + <div> + <field name="date_assign"/> + <button string="Forward" + attrs="{'invisible':[('partner_assigned_id','=',False)]}" + name="%(crm_lead_forward_to_partner_act)d" + icon="terp-mail-forward" type="action" + context="{'default_name': 'partner', 'default_partner_id': partner_assigned_id}" + /> + </div> + </group> + <group string="Geo Assignation"> + <field name="partner_latitude"/> + <field name="partner_longitude"/> + <span/> + <button string="Geo Assign" name="action_assign_partner" type="object" colspan="1" + icon="gtk-apply"/> + </group> </group> - - <separator string="Geo Assignation" colspan="5"/> - <field width="50%%" name="partner_latitude"/> - <field width="40%%" name="partner_longitude"/> - <button width="10%%" string="Geo Assign" name="action_assign_partner" type="object" colspan="1" - icon="gtk-apply"/> - </group> </page> </xpath> </data> diff --git a/addons/crm_partner_assign/i18n/ja.po b/addons/crm_partner_assign/i18n/ja.po index 430536f66cd..e400396e074 100644 --- a/addons/crm_partner_assign/i18n/ja.po +++ b/addons/crm_partner_assign/i18n/ja.po @@ -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 00:36+0000\n" -"PO-Revision-Date: 2012-05-25 02:34+0000\n" +"PO-Revision-Date: 2012-05-25 04:47+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-05-25 04:40+0000\n" +"X-Launchpad-Export-Date: 2012-05-26 05:07+0000\n" "X-Generator: Launchpad (build 15288)\n" #. module: crm_partner_assign @@ -847,7 +847,7 @@ msgstr "CRMパートナ報告書" #. module: crm_partner_assign #: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner msgid "E-mail composition wizard" -msgstr "Eメール作成ツール" +msgstr "Eメール作成ウィザード" #. module: crm_partner_assign #: selection:crm.lead.report.assign,priority:0 diff --git a/addons/crm_todo/crm_todo_view.xml b/addons/crm_todo/crm_todo_view.xml index a587463fedb..c7617f317b0 100644 --- a/addons/crm_todo/crm_todo_view.xml +++ b/addons/crm_todo/crm_todo_view.xml @@ -9,7 +9,7 @@ <field name="inherit_id" ref="crm.crm_case_form_view_oppor" /> <field name="arch" type="xml"> <data> - <page string="Extra Info" position="before"> + <page string="Lead" position="before"> <page string="Tasks"> <field name="task_ids" colspan="4" nolabel="1"> <tree editable="bottom" string="Tasks"> diff --git a/addons/delivery/__init__.py b/addons/delivery/__init__.py index cfe7327dded..d277419434a 100644 --- a/addons/delivery/__init__.py +++ b/addons/delivery/__init__.py @@ -21,7 +21,6 @@ import delivery import partner -import wizard import report import sale import stock diff --git a/addons/delivery/__openerp__.py b/addons/delivery/__openerp__.py index 52d4eacda5e..cd8d2520db6 100644 --- a/addons/delivery/__openerp__.py +++ b/addons/delivery/__openerp__.py @@ -37,7 +37,6 @@ When creating invoices from picking, OpenERP is able to add and compute the ship 'init_xml': ['delivery_data.xml'], 'update_xml': [ 'security/ir.model.access.csv', - 'wizard/delivery_sale_order_view.xml', 'delivery_report.xml', 'delivery_view.xml', 'partner_view.xml' diff --git a/addons/delivery/delivery_view.xml b/addons/delivery/delivery_view.xml index 11defc97dd9..6f6e614e676 100644 --- a/addons/delivery/delivery_view.xml +++ b/addons/delivery/delivery_view.xml @@ -161,19 +161,6 @@ </field> </record> - <record id="view_order_withcarrier_form" model="ir.ui.view"> - <field name="name">delivery.sale.order_withcarrier.form.view</field> - <field name="type">form</field> - <field name="model">sale.order</field> - <field name="inherit_id" ref="sale.view_order_form"/> - <field name="arch" type="xml"> - <group name="logistics" position="inside"> - <field name="id" invisible="True"/> - <field name="carrier_id" context="{'order_id':active_id or False}"/> - </group> - </field> - </record> - <record id="view_picking_withcarrier_out_form" model="ir.ui.view"> <field name="name">delivery.stock.picking_withcarrier.out.form.view</field> <field name="type">form</field> @@ -258,14 +245,18 @@ </field> </record> - <record model="ir.ui.view" id="edit_project_multicompany"> - <field name="name">sale.order.multicompany</field> + <record id="view_order_withcarrier_form" model="ir.ui.view"> + <field name="name">delivery.sale.order_withcarrier.form.view</field> + <field name="type">form</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> - <xpath expr="//button[@name='order_confirm']" position="after"> - <button name="%(action_delivery_cost)d" states="draft" string="Delivery Costs" type="action" icon="gtk-add" context="{'order_id':active_id}"/> - </xpath> + <xpath expr="//group[@name='bellow_the_lines_hook']" position="inside"> + <separator string="Delivery Costs" colspan="4"/> + <field name="carrier_id" context="{'order_id':active_id or False}" colspan="2"/> + <button name="delivery_set" states="draft" string="Add Now on the Sale Order" type="object" icon="gtk-add" colspan="2"/> + <label string="if you don't click on 'Add Now', the delivery cost won't be added on the Sale Order, but will be added on the Delivery Order only" colspan="4"/> + </xpath> </field> </record> @@ -275,7 +266,7 @@ <field name="model">stock.picking</field> <field name="inherit_id" ref="stock.view_picking_out_form"/> <field name="arch" type="xml"> - <xpath expr="/form/div[@class='oe_form_topbar']/button[@string='Create Invoice']" position="after"> + <xpath expr="/form/header/button[@string='Create Invoice']" position="after"> <button name="%(report_shipping)d" string="Delivery Order" states="done" type="action" icon="gtk-print"/> </xpath> </field> diff --git a/addons/delivery/i18n/lv.po b/addons/delivery/i18n/lv.po new file mode 100644 index 00000000000..e42f7e9adf9 --- /dev/null +++ b/addons/delivery/i18n/lv.po @@ -0,0 +1,642 @@ +# Latvian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-28 08:36+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Latvian <lv@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-29 04:45+0000\n" +"X-Generator: Launchpad (build 15316)\n" + +#. module: delivery +#: report:sale.shipping:0 +msgid "Order Ref." +msgstr "" + +#. module: delivery +#: model:product.template,name:delivery.delivery_product_product_template +msgid "Delivery by Poste" +msgstr "" + +#. module: delivery +#: view:delivery.carrier:0 +#: view:delivery.grid:0 +msgid "Destination" +msgstr "" + +#. module: delivery +#: field:stock.move,weight_net:0 +msgid "Net weight" +msgstr "" + +#. module: delivery +#: view:stock.picking:0 +msgid "Delivery Order" +msgstr "" + +#. module: delivery +#: model:ir.model,name:delivery.model_delivery_grid_line +msgid "Delivery Grid Line" +msgstr "" + +#. module: delivery +#: view:delivery.carrier:0 +#: view:delivery.grid:0 +msgid "Delivery grids" +msgstr "" + +#. module: delivery +#: selection:delivery.grid.line,type:0 +#: selection:delivery.grid.line,variable_factor:0 +#: field:stock.picking,volume:0 +msgid "Volume" +msgstr "" + +#. module: delivery +#: field:delivery.grid,line_ids:0 +msgid "Grid Line" +msgstr "" + +#. module: delivery +#: help:delivery.carrier,partner_id:0 +msgid "The partner that is doing the delivery service." +msgstr "" + +#. module: delivery +#: model:ir.actions.report.xml,name:delivery.report_shipping +msgid "Delivery order" +msgstr "" + +#. module: delivery +#: view:res.partner:0 +msgid "Deliveries Properties" +msgstr "" + +#. module: delivery +#: model:ir.actions.act_window,name:delivery.action_picking_tree4 +msgid "Picking to be invoiced" +msgstr "" + +#. module: delivery +#: field:delivery.carrier,pricelist_ids:0 +msgid "Advanced Pricing" +msgstr "" + +#. module: delivery +#: help:delivery.grid,sequence:0 +msgid "Gives the sequence order when displaying a list of delivery grid." +msgstr "" + +#. module: delivery +#: view:delivery.carrier:0 +#: view:delivery.grid:0 +#: field:delivery.grid,country_ids:0 +msgid "Countries" +msgstr "" + +#. module: delivery +#: report:sale.shipping:0 +msgid "Delivery Order :" +msgstr "" + +#. module: delivery +#: field:delivery.grid.line,variable_factor:0 +msgid "Variable Factor" +msgstr "" + +#. module: delivery +#: model:ir.actions.act_window,help:delivery.action_delivery_grid_form +msgid "" +"The delivery price list allows you to compute the cost and sales price of " +"the delivery according to the weight of the products and other criteria. You " +"can define several price lists for one delivery method, per country or a " +"zone in a specific country defined by a postal code range." +msgstr "" + +#. module: delivery +#: field:delivery.carrier,amount:0 +msgid "Amount" +msgstr "" + +#. module: delivery +#: selection:delivery.grid.line,price_type:0 +msgid "Fixed" +msgstr "" + +#. module: delivery +#: field:delivery.carrier,name:0 +#: view:delivery.sale.order:0 +#: field:delivery.sale.order,carrier_id:0 +#: model:ir.actions.act_window,name:delivery.action_delivery_carrier_form +#: model:ir.ui.menu,name:delivery.menu_action_delivery_carrier_form +#: field:res.partner,property_delivery_carrier:0 +#: field:sale.order,carrier_id:0 +msgid "Delivery Method" +msgstr "" + +#. module: delivery +#: code:addons/delivery/delivery.py:213 +#, python-format +msgid "No price available!" +msgstr "" + +#. module: delivery +#: model:ir.model,name:delivery.model_stock_move +msgid "Stock Move" +msgstr "" + +#. module: delivery +#: field:stock.picking,carrier_tracking_ref:0 +msgid "Carrier Tracking Ref" +msgstr "" + +#. module: delivery +#: field:stock.picking,weight_net:0 +msgid "Net Weight" +msgstr "" + +#. module: delivery +#: view:delivery.grid.line:0 +msgid "Grid Lines" +msgstr "" + +#. module: delivery +#: view:delivery.carrier:0 +#: view:delivery.grid:0 +msgid "Grid definition" +msgstr "" + +#. module: delivery +#: view:delivery.sale.order:0 +msgid "_Cancel" +msgstr "" + +#. module: delivery +#: field:delivery.grid.line,operator:0 +msgid "Operator" +msgstr "" + +#. module: delivery +#: model:ir.model,name:delivery.model_res_partner +msgid "Partner" +msgstr "" + +#. module: delivery +#: model:ir.model,name:delivery.model_sale_order +msgid "Sales Order" +msgstr "" + +#. module: delivery +#: model:ir.actions.act_window,help:delivery.action_delivery_carrier_form1 +msgid "" +"Define your delivery methods and their pricing. The delivery costs can be " +"added on the sale order form or in the invoice, based on the delivery orders." +msgstr "" + +#. module: delivery +#: report:sale.shipping:0 +msgid "Lot" +msgstr "" + +#. module: delivery +#: field:delivery.carrier,partner_id:0 +msgid "Transport Company" +msgstr "" + +#. module: delivery +#: model:ir.model,name:delivery.model_delivery_grid +msgid "Delivery Grid" +msgstr "" + +#. module: delivery +#: code:addons/delivery/delivery.py:213 +#, python-format +msgid "No line matched this product or order in the choosed delivery grid." +msgstr "" + +#. module: delivery +#: report:sale.shipping:0 +msgid "Invoiced to" +msgstr "" + +#. module: delivery +#: model:ir.model,name:delivery.model_stock_picking +msgid "Picking List" +msgstr "" + +#. module: delivery +#: field:delivery.carrier,grids_id:0 +msgid "Delivery Grids" +msgstr "" + +#. module: delivery +#: model:ir.model,name:delivery.model_delivery_sale_order +msgid "Make Delievery" +msgstr "" + +#. module: delivery +#: field:delivery.grid.line,name:0 +msgid "Name" +msgstr "" + +#. module: delivery +#: field:delivery.grid,zip_from:0 +msgid "Start Zip" +msgstr "" + +#. module: delivery +#: help:delivery.carrier,amount:0 +msgid "" +"Amount of the order to benefit from a free shipping, expressed in the " +"company currency" +msgstr "" + +#. module: delivery +#: code:addons/delivery/stock.py:89 +#, python-format +msgid "Warning" +msgstr "" + +#. module: delivery +#: field:delivery.grid.line,grid_id:0 +msgid "Grid" +msgstr "" + +#. module: delivery +#: help:delivery.grid,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the delivery " +"grid without removing it." +msgstr "" + +#. module: delivery +#: field:delivery.grid,zip_to:0 +msgid "To Zip" +msgstr "" + +#. module: delivery +#: code:addons/delivery/delivery.py:141 +#, python-format +msgid "Default price" +msgstr "" + +#. module: delivery +#: model:ir.model,name:delivery.model_delivery_define_delivery_steps_wizard +msgid "delivery.define.delivery.steps.wizard" +msgstr "" + +#. module: delivery +#: field:delivery.carrier,normal_price:0 +msgid "Normal Price" +msgstr "" + +#. module: delivery +#: report:sale.shipping:0 +msgid "Order Date" +msgstr "" + +#. module: delivery +#: field:delivery.grid,name:0 +msgid "Grid Name" +msgstr "" + +#. module: delivery +#: view:stock.move:0 +msgid "Weights" +msgstr "" + +#. module: delivery +#: field:stock.picking,number_of_packages:0 +msgid "Number of Packages" +msgstr "" + +#. module: delivery +#: selection:delivery.grid.line,type:0 +#: selection:delivery.grid.line,variable_factor:0 +#: report:sale.shipping:0 +#: field:stock.move,weight:0 +#: field:stock.picking,weight:0 +msgid "Weight" +msgstr "" + +#. module: delivery +#: help:delivery.carrier,use_detailed_pricelist:0 +msgid "" +"Check this box if you want to manage delivery prices that depends on the " +"destination, the weight, the total of the order, etc." +msgstr "" + +#. module: delivery +#: help:delivery.carrier,normal_price:0 +msgid "" +"Keep empty if the pricing depends on the advanced pricing per destination" +msgstr "" + +#. module: delivery +#: constraint:stock.move:0 +msgid "You can not move products from or to a location of the type view." +msgstr "" + +#. module: delivery +#: code:addons/delivery/wizard/delivery_sale_order.py:70 +#, python-format +msgid "No grid available !" +msgstr "" + +#. module: delivery +#: selection:delivery.grid.line,operator:0 +msgid ">=" +msgstr "" + +#. module: delivery +#: code:addons/delivery/wizard/delivery_sale_order.py:53 +#: code:addons/delivery/wizard/delivery_sale_order.py:73 +#, python-format +msgid "Order not in draft state !" +msgstr "" + +#. module: delivery +#: view:delivery.define.delivery.steps.wizard:0 +msgid "Choose Your Default Picking Policy" +msgstr "" + +#. module: delivery +#: constraint:stock.move:0 +msgid "You try to assign a lot which is not from the same product" +msgstr "" + +#. module: delivery +#: field:delivery.carrier,active:0 +#: field:delivery.grid,active:0 +msgid "Active" +msgstr "" + +#. module: delivery +#: report:sale.shipping:0 +msgid "Shipping Date" +msgstr "" + +#. module: delivery +#: field:delivery.carrier,product_id:0 +msgid "Delivery Product" +msgstr "" + +#. module: delivery +#: view:delivery.grid.line:0 +msgid "Condition" +msgstr "" + +#. module: delivery +#: field:delivery.grid.line,standard_price:0 +msgid "Cost Price" +msgstr "" + +#. module: delivery +#: field:delivery.define.delivery.steps.wizard,picking_policy:0 +msgid "Picking Policy" +msgstr "" + +#. module: delivery +#: selection:delivery.grid.line,price_type:0 +#: field:delivery.grid.line,type:0 +msgid "Variable" +msgstr "" + +#. module: delivery +#: help:res.partner,property_delivery_carrier:0 +msgid "This delivery method will be used when invoicing from picking." +msgstr "" + +#. module: delivery +#: sql_constraint:stock.picking:0 +msgid "Reference must be unique per Company!" +msgstr "" + +#. module: delivery +#: field:delivery.grid.line,max_value:0 +msgid "Maximum Value" +msgstr "" + +#. module: delivery +#: report:sale.shipping:0 +msgid "Quantity" +msgstr "" + +#. module: delivery +#: view:delivery.define.delivery.steps.wizard:0 +#: model:ir.actions.act_window,name:delivery.action_define_delivery_steps +msgid "Setup Your Picking Policy" +msgstr "" + +#. module: delivery +#: model:ir.actions.act_window,name:delivery.action_delivery_carrier_form1 +msgid "Define Delivery Methods" +msgstr "" + +#. module: delivery +#: help:delivery.carrier,free_if_more_than:0 +msgid "" +"If the order is more expensive than a certain amount, the customer can " +"benefit from a free shipping" +msgstr "" + +#. module: delivery +#: help:sale.order,carrier_id:0 +msgid "" +"Complete this field if you plan to invoice the shipping based on picking." +msgstr "" + +#. module: delivery +#: view:delivery.define.delivery.steps.wizard:0 +msgid "Cancel" +msgstr "" + +#. module: delivery +#: code:addons/delivery/delivery.py:130 +#, python-format +msgid "Free if more than %.2f" +msgstr "" + +#. module: delivery +#: sql_constraint:sale.order:0 +msgid "Order Reference must be unique per Company!" +msgstr "" + +#. module: delivery +#: model:ir.actions.act_window,help:delivery.action_delivery_carrier_form +msgid "" +"Define the delivery methods you are using and their pricing in order to " +"reinvoice the delivery costs when you are doing invoicing based on delivery " +"orders" +msgstr "" + +#. module: delivery +#: view:res.partner:0 +msgid "Sales & Purchases" +msgstr "" + +#. module: delivery +#: selection:delivery.grid.line,operator:0 +msgid "<=" +msgstr "" + +#. module: delivery +#: constraint:stock.move:0 +msgid "You must assign a production lot for this product" +msgstr "" + +#. module: delivery +#: field:delivery.carrier,free_if_more_than:0 +msgid "Free If More Than" +msgstr "" + +#. module: delivery +#: view:delivery.sale.order:0 +msgid "Create Deliveries" +msgstr "" + +#. module: delivery +#: view:delivery.carrier:0 +#: view:delivery.grid:0 +#: field:delivery.grid,state_ids:0 +msgid "States" +msgstr "" + +#. module: delivery +#: report:sale.shipping:0 +msgid "Description" +msgstr "" + +#. module: delivery +#: help:delivery.carrier,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the delivery " +"carrier without removing it." +msgstr "" + +#. module: delivery +#: model:ir.actions.act_window,name:delivery.action_delivery_grid_form +#: model:ir.ui.menu,name:delivery.menu_action_delivery_grid_form +msgid "Delivery Pricelist" +msgstr "" + +#. module: delivery +#: field:delivery.carrier,price:0 +#: selection:delivery.grid.line,type:0 +#: selection:delivery.grid.line,variable_factor:0 +msgid "Price" +msgstr "" + +#. module: delivery +#: code:addons/delivery/wizard/delivery_sale_order.py:70 +#, python-format +msgid "No grid matching for this carrier !" +msgstr "" + +#. module: delivery +#: model:ir.ui.menu,name:delivery.menu_delivery +msgid "Delivery" +msgstr "" + +#. module: delivery +#: selection:delivery.grid.line,type:0 +#: selection:delivery.grid.line,variable_factor:0 +msgid "Weight * Volume" +msgstr "" + +#. module: delivery +#: selection:delivery.grid.line,operator:0 +msgid "=" +msgstr "" + +#. module: delivery +#: code:addons/delivery/stock.py:90 +#, python-format +msgid "The carrier %s (id: %d) has no delivery grid!" +msgstr "" + +#. module: delivery +#: view:delivery.carrier:0 +msgid "Pricing Information" +msgstr "" + +#. module: delivery +#: selection:delivery.define.delivery.steps.wizard,picking_policy:0 +msgid "Deliver all products at once" +msgstr "" + +#. module: delivery +#: field:delivery.carrier,use_detailed_pricelist:0 +msgid "Advanced Pricing per Destination" +msgstr "" + +#. module: delivery +#: view:delivery.carrier:0 +#: field:delivery.grid,carrier_id:0 +#: model:ir.model,name:delivery.model_delivery_carrier +#: report:sale.shipping:0 +#: field:stock.picking,carrier_id:0 +msgid "Carrier" +msgstr "" + +#. module: delivery +#: view:delivery.sale.order:0 +msgid "_Apply" +msgstr "" + +#. module: delivery +#: field:sale.order,id:0 +msgid "ID" +msgstr "" + +#. module: delivery +#: code:addons/delivery/wizard/delivery_sale_order.py:53 +#: code:addons/delivery/wizard/delivery_sale_order.py:73 +#, python-format +msgid "The order state have to be draft to add delivery lines." +msgstr "" + +#. module: delivery +#: constraint:res.partner:0 +msgid "Error ! You cannot create recursive associated members." +msgstr "" + +#. module: delivery +#: field:delivery.grid,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: delivery +#: field:delivery.grid.line,list_price:0 +msgid "Sale Price" +msgstr "" + +#. module: delivery +#: model:ir.actions.act_window,name:delivery.action_delivery_cost +#: view:sale.order:0 +msgid "Delivery Costs" +msgstr "" + +#. module: delivery +#: selection:delivery.define.delivery.steps.wizard,picking_policy:0 +msgid "Deliver each product when available" +msgstr "" + +#. module: delivery +#: view:delivery.define.delivery.steps.wizard:0 +msgid "Apply" +msgstr "" + +#. module: delivery +#: field:delivery.grid.line,price_type:0 +msgid "Price Type" +msgstr "" diff --git a/addons/delivery/sale.py b/addons/delivery/sale.py index 86fb261e413..3ed3756a733 100644 --- a/addons/delivery/sale.py +++ b/addons/delivery/sale.py @@ -18,8 +18,10 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # ############################################################################## -from osv import fields,osv +import time +from osv import fields,osv +from tools.translate import _ # Overloaded sale_order to manage carriers : class sale_order(osv.osv): @@ -41,6 +43,39 @@ class sale_order(osv.osv): result.update(carrier_id=order.carrier_id.id) return result + def delivery_set(self, cr, uid, ids, context=None): + order_obj = self.pool.get('sale.order') + line_obj = self.pool.get('sale.order.line') + grid_obj = self.pool.get('delivery.grid') + carrier_obj = self.pool.get('delivery.carrier') + acc_fp_obj = self.pool.get('account.fiscal.position') + for order in self.browse(cr, uid, ids, context=context): + grid_id = carrier_obj.grid_get(cr, uid, [order.carrier_id.id], order.partner_shipping_id.id) + if not grid_id: + raise osv.except_osv(_('No grid available !'), _('No grid matching for this carrier !')) + + if not order.state in ('draft'): + raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.')) + + grid = grid_obj.browse(cr, uid, grid_id, context=context) + + taxes = grid.carrier_id.product_id.taxes_id + fpos = order.fiscal_position or False + taxes_ids = acc_fp_obj.map_tax(cr, uid, fpos, taxes) + #create the sale order line + line_obj.create(cr, uid, { + 'order_id': order.id, + 'name': grid.carrier_id.name, + 'product_uom_qty': 1, + 'product_uom': grid.carrier_id.product_id.uom_id.id, + 'product_id': grid.carrier_id.product_id.id, + 'price_unit': grid_obj.get_price(cr, uid, grid.id, order, time.strftime('%Y-%m-%d'), context), + 'tax_id': [(6,0,taxes_ids)], + 'type': 'make_to_stock' + }) + #remove the value of the carrier_id field on the sale order + return self.write(cr, uid, ids, {'carrier_id': False}, context=context) + #return {'type': 'ir.actions.act_window_close'} action reload? sale_order() diff --git a/addons/delivery/test/delivery_cost.yml b/addons/delivery/test/delivery_cost.yml index 521f260e136..433acb1d18f 100644 --- a/addons/delivery/test/delivery_cost.yml +++ b/addons/delivery/test/delivery_cost.yml @@ -3,14 +3,8 @@ - I add delivery cost in Sale order. - - !python {model: delivery.sale.order}: | - context.update({'active_ids': [ref("sale.order")]}) -- - !record {model: delivery.sale.order, id: sale_delivery_carrier}: - {} -- - !python {model: delivery.sale.order}: | - self.delivery_set(cr, uid, [ref('sale_delivery_carrier')], context=context) + !python {model: sale.order}: | + self.delivery_set(cr, uid, [ref("sale.order")], context=context) - I check sale order after added delivery cost. - @@ -35,7 +29,7 @@ self.create_invoice(cr, uid, [wiz_id], {"active_ids": ship_ids, "active_id": ship_ids[0]}) - I print a Delivery Order report. -- +- !python {model: stock.picking}: | import netsvc, tools, os sale = self.pool.get('sale.order') @@ -47,14 +41,8 @@ - I add free delivery cost in Sale order. - - !python {model: delivery.sale.order}: | - context.update({'active_ids': [ref("sale.order2")]}) -- - !record {model: delivery.sale.order, id: sale_delivery_carrier}: - {} -- - !python {model: delivery.sale.order}: | - self.delivery_set(cr, uid, [ref('sale_delivery_carrier')], context=context) + !python {model: sale.order}: | + self.delivery_set(cr, uid, [ref("sale.order2")], context=context) - I check sale order after added delivery cost. - diff --git a/addons/delivery/wizard/delivery_sale_order.py b/addons/delivery/wizard/delivery_sale_order.py deleted file mode 100644 index 80b3431f2a7..00000000000 --- a/addons/delivery/wizard/delivery_sale_order.py +++ /dev/null @@ -1,96 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -############################################################################## - -import time -from tools.translate import _ - -from osv import osv, fields - -class make_delivery(osv.osv_memory): - _name = "delivery.sale.order" - _description = 'Make Delievery' - - _columns = { - 'carrier_id': fields.many2one('delivery.carrier','Delivery Method', required=True), - } - - - def default_get(self, cr, uid, fields, context=None): - res = super(make_delivery, self).default_get(cr, uid, fields, context=context) - order_obj = self.pool.get('sale.order') - for order in order_obj.browse(cr, uid, context.get('active_ids', []), context=context): - carrier = order.carrier_id.id - if not carrier: - carrier = order.partner_id.property_delivery_carrier.id - res.update({'carrier_id': carrier}) - - return res - - def view_init(self, cr , uid , fields, context=None): - if context is None: - context = {} - order_obj = self.pool.get('sale.order') - for order in order_obj.browse(cr, uid, context.get('active_ids', []), context=context): - if not order.state in ('draft'): - raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.')) - pass - - def delivery_set(self, cr, uid, ids, context=None): - if context is None: - context = {} - rec_ids = context and context.get('active_ids',[]) - order_obj = self.pool.get('sale.order') - line_obj = self.pool.get('sale.order.line') - grid_obj = self.pool.get('delivery.grid') - carrier_obj = self.pool.get('delivery.carrier') - acc_fp_obj = self.pool.get('account.fiscal.position') - order_objs = order_obj.browse(cr, uid, rec_ids, context=context) - for datas in self.browse(cr, uid, ids, context=context): - for order in order_objs: - grid_id = carrier_obj.grid_get(cr, uid, [datas.carrier_id.id],order.partner_shipping_id.id) - if not grid_id: - raise osv.except_osv(_('No grid available !'), _('No grid matching for this carrier !')) - - if not order.state in ('draft'): - raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.')) - - grid = grid_obj.browse(cr, uid, grid_id, context=context) - - taxes = grid.carrier_id.product_id.taxes_id - fpos = order.fiscal_position or False - taxes_ids = acc_fp_obj.map_tax(cr, uid, fpos, taxes) - line_obj.create(cr, uid, { - 'order_id': order.id, - 'name': grid.carrier_id.name, - 'product_uom_qty': 1, - 'product_uom': grid.carrier_id.product_id.uom_id.id, - 'product_id': grid.carrier_id.product_id.id, - 'price_unit': grid_obj.get_price(cr, uid, grid.id, order, time.strftime('%Y-%m-%d'), context), - 'tax_id': [(6,0,taxes_ids)], - 'type': 'make_to_stock' - }) - - return {'type': 'ir.actions.act_window_close'} - -make_delivery() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/delivery/wizard/delivery_sale_order_view.xml b/addons/delivery/wizard/delivery_sale_order_view.xml deleted file mode 100644 index fa56b0efcf7..00000000000 --- a/addons/delivery/wizard/delivery_sale_order_view.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<openerp> - <data> - - <!-- Delivery Sale Order --> - - <record id="view_make_delivery_wizard" model="ir.ui.view"> - <field name="name">Delivery Costs</field> - <field name="model">delivery.sale.order</field> - <field name="type">form</field> - <field name="arch" type="xml"> - <form string="Create Deliveries"> - <separator colspan="4" string="Delivery Method" /> - <field name="carrier_id" widget="selection"/> - <newline/> - <separator colspan="4"/> - <group col="2" colspan="4"> - <button icon='gtk-cancel' special="cancel" - string="_Cancel" /> - <button name="delivery_set" string="_Apply" - colspan="1" type="object" icon="gtk-apply" /> - </group> - </form> - </field> - </record> - - <record id="action_delivery_cost" model="ir.actions.act_window"> - <field name="name">Delivery Costs</field> - <field name="type">ir.actions.act_window</field> - <field name="res_model">delivery.sale.order</field> - <field name="view_type">form</field> - <field name="view_mode">form</field> - <field name="view_id" ref="view_make_delivery_wizard"/> - <field name="target">new</field> - </record> - - </data> -</openerp> diff --git a/addons/document/i18n/zh_CN.po b/addons/document/i18n/zh_CN.po index 12eda959b2a..52d2f2b7cff 100644 --- a/addons/document/i18n/zh_CN.po +++ b/addons/document/i18n/zh_CN.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-10 18:18+0000\n" -"Last-Translator: openerp-china.black-jack <onetimespeed@gmail.com>\n" +"PO-Revision-Date: 2012-06-07 03:33+0000\n" +"Last-Translator: Jeff Wang <wjfonhand@hotmail.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 05:06+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: document #: field:document.directory,parent_id:0 @@ -300,7 +300,7 @@ msgstr "在这里选择一个对象并且这资源的每个记录有一个目录 #: help:document.directory,domain:0 msgid "" "Use a domain if you want to apply an automatic filter on visible resources." -msgstr "如果你想对可得到的资源自动过滤, 规定一个范围" +msgstr "如果要自动筛选可见的资源,请使用过滤条件" #. module: document #: model:ir.actions.act_window,name:document.action_view_files_by_partner @@ -410,7 +410,7 @@ msgstr "关联的文档" #. module: document #: field:document.directory,domain:0 msgid "Domain" -msgstr "范围" +msgstr "过滤条件" #. module: document #: field:document.directory,write_date:0 diff --git a/addons/edi/static/src/xml/edi_sale_purchase.xml b/addons/edi/static/src/xml/edi_sale_purchase.xml index 698b322606f..8d6bab67761 100644 --- a/addons/edi/static/src/xml/edi_sale_purchase.xml +++ b/addons/edi/static/src/xml/edi_sale_purchase.xml @@ -33,7 +33,15 @@ </div> </div> - <h1 class="oe_edi_doc_title">Order <t t-esc="doc.name"/>: <t t-esc="_.str.sprintf('%.2f',doc.amount_total)"/> <t t-esc="doc.currency.code"/></h1> + <t t-if="(doc.state == 'draft' or doc.state == 'sent') and doc.__model == 'sale.order'"> + <h1 class="oe_edi_doc_title">Quotation <t t-esc="doc.name"/>: <t t-esc="_.str.sprintf('%.2f',doc.amount_total)"/> <t t-esc="doc.currency.code"/></h1> + </t> + <t t-if="(doc.state == 'draft' or doc.state == 'sent') and doc.__model == 'purchase.order'"> + <h1 class="oe_edi_doc_title">Request for Quotation <t t-esc="doc.name"/>: <t t-esc="_.str.sprintf('%.2f',doc.amount_total)"/> <t t-esc="doc.currency.code"/></h1> + </t> + <t t-if="(doc.state != 'draft' and doc.state != 'sent')"> + <h1 class="oe_edi_doc_title">Order <t t-esc="doc.name"/>: <t t-esc="_.str.sprintf('%.2f',doc.amount_total)"/> <t t-esc="doc.currency.code"/></h1> + </t> <table width="100%" class="oe_edi_data oe_edi_shade"> <tr class="oe_edi_floor"> @@ -116,7 +124,7 @@ </div> </t> <t t-name="Edi.sale.order.sidebar"> - <t t-if="doc.order_policy && (doc.order_policy == 'prepaid' || doc.order_policy == 'manual')"> + <t t-if="doc.order_policy and (doc.order_policy == 'prepaid' || doc.order_policy == 'manual') and (doc.state != 'draft' and doc.state != 'sent')"> <t t-if="doc.company_address.paypal_account || doc.company_address.bank_ids"> <p class="oe_edi_sidebar_title">Pay Online</p> <t t-if="doc.company_address.paypal_account"> diff --git a/addons/email_template/email_template_view.xml b/addons/email_template/email_template_view.xml index 387b97ae01d..127d255ec6b 100644 --- a/addons/email_template/email_template_view.xml +++ b/addons/email_template/email_template_view.xml @@ -116,8 +116,6 @@ <field name="email_from"/> <field name="email_to"/> <field name="report_name"/> - <button name="%(wizard_email_template_preview)d" string="Preview Template" - type="action" target="new" icon="gtk-zoom-fit"/> </tree> </field> </record> diff --git a/addons/email_template/i18n/ja.po b/addons/email_template/i18n/ja.po index ca2abdc61d3..60b491ad0c2 100644 --- a/addons/email_template/i18n/ja.po +++ b/addons/email_template/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-10 18:28+0000\n" -"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n" +"PO-Revision-Date: 2012-05-25 04:53+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-05-11 05:11+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-05-26 05:07+0000\n" +"X-Generator: Launchpad (build 15288)\n" #. module: email_template #: field:email.template,subtype:0 @@ -408,7 +408,7 @@ msgstr "Eメールを送信する (%s)" #: field:email.template,body_html:0 #: field:email_template.preview,body_html:0 msgid "Rich-text Contents" -msgstr "リッチテキストの内容" +msgstr "リッチテキストのコンテンツ" #. module: email_template #: field:email.template,copyvalue:0 diff --git a/addons/event/__openerp__.py b/addons/event/__openerp__.py index 5a829f63f43..f1a9769f803 100644 --- a/addons/event/__openerp__.py +++ b/addons/event/__openerp__.py @@ -1,3 +1,4 @@ + # -*- coding: utf-8 -*- ############################################################################## # @@ -38,7 +39,7 @@ Note that: Association / Configuration / Types of Events """, 'author': 'OpenERP SA', - 'depends': ['email_template'], + 'depends': ['email_template','google_map'], 'init_xml': [], 'update_xml': [ 'security/event_security.xml', diff --git a/addons/event/event.py b/addons/event/event.py index 72669c8b080..a348e005d06 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -48,6 +48,7 @@ class event_event(osv.osv): _name = 'event.event' _description = __doc__ _order = 'date_begin' + _inherit = ['ir.needaction_mixin','mail.thread'] def name_get(self, cr, uid, ids, context=None): if not ids: @@ -70,6 +71,11 @@ class event_event(osv.osv): res = self.name_get(cr, uid, ids, context=context) return dict(res) + def create(self, cr, uid, vals, context=None): + obj_id = super(event_event, self).create(cr, uid, vals, context) + self.create_send_note(cr, uid, [obj_id], context=context) + return obj_id + def copy(self, cr, uid, id, default=None, context=None): """ Reset the state and the registrations while copying an event """ @@ -82,6 +88,7 @@ class event_event(osv.osv): return super(event_event, self).copy(cr, uid, id, default=default, context=context) def button_draft(self, cr, uid, ids, context=None): + self.button_draft_send_note(cr, uid, ids, context=context) return self.write(cr, uid, ids, {'state': 'draft'}, context=context) def button_cancel(self, cr, uid, ids, context=None): @@ -91,9 +98,11 @@ class event_event(osv.osv): if event_reg.state == 'done': raise osv.except_osv(_('Error!'),_("You have already set a registration for this event as 'Attended'. Please reset it to draft if you want to cancel this event.") ) registration.write(cr, uid, reg_ids, {'state': 'cancel'}, context=context) + self.button_cancel_send_note(cr, uid, ids, context=context) return self.write(cr, uid, ids, {'state': 'cancel'}, context=context) def button_done(self, cr, uid, ids, context=None): + self.button_done_send_note(cr, uid, ids, context=context) return self.write(cr, uid, ids, {'state': 'done'}, context=context) def check_registration_limits(self, cr, uid, ids, context=None): @@ -103,6 +112,14 @@ class event_event(osv.osv): if total_confirmed < self.event.register_min or total_confirmed > self.event.register_max and self.event.register_max!=0: raise osv.except_osv(_('Error!'),_("The total of confirmed registration for the event '%s' does not meet the expected minimum/maximum. You should maybe reconsider those limits before going further") % (self.event.name)) + def check_registration_limits_before(self, cr, uid, ids, no_of_registration, context=None): + for event in self.browse(cr, uid, ids, context=context): + available_seats = event.register_avail + if available_seats and no_of_registration > available_seats: + raise osv.except_osv(_('Warning!'),_("Only %d Seats are Available!") % (available_seats)) + elif available_seats == 0: + raise osv.except_osv(_('Warning!'),_("No Tickets Available!")) + def confirm_event(self, cr, uid, ids, context=None): register_pool = self.pool.get('event.registration') if self.event.email_confirmation_id: @@ -119,6 +136,7 @@ class event_event(osv.osv): if isinstance(ids, (int, long)): ids = [ids] self.check_registration_limits(cr, uid, ids, context=context) + self.button_confirm_send_note(cr, uid, ids, context=context) return self.confirm_event(cr, uid, ids, context=context) def _get_register(self, cr, uid, ids, fields, args, context=None): @@ -179,7 +197,7 @@ class event_event(osv.osv): 'register_current': fields.function(_get_register, string='Confirmed Registrations', multi='register_numbers'), 'register_avail': fields.function(_get_register, string='Available Registrations', multi='register_numbers',type='integer'), 'register_prospect': fields.function(_get_register, string='Unconfirmed Registrations', multi='register_numbers'), - 'register_attended': fields.function(_get_register, string='Attended Registrations', multi='register_numbers'), + 'register_attended': fields.function(_get_register, string='# of Participations', multi='register_numbers'), 'registration_ids': fields.one2many('event.registration', 'event_id', 'Registrations', readonly=False, states={'done': [('readonly', True)]}), 'date_begin': fields.datetime('Start Date', required=True, readonly=True, states={'draft': [('readonly', False)]}), 'date_end': fields.datetime('End Date', required=True, readonly=True, states={'draft': [('readonly', False)]}), @@ -195,7 +213,6 @@ class event_event(osv.osv): 'full_name' : fields.function(_name_get_fnc, type="char", string='Name'), 'reply_to': fields.char('Reply-To Email', size=64, readonly=False, states={'done': [('readonly', True)]}, help="The email address of the organizer is likely to be put here, with the effect to be in the 'Reply-To' of the mails sent automatically at event or registrations confirmation. You can also put the email address of your mail gateway if you use one."), 'main_speaker_id': fields.many2one('res.partner','Main Speaker', readonly=False, states={'done': [('readonly', True)]}, help="Speaker who will be giving speech at the event."), - 'speaker_ids': fields.many2many('res.partner', 'event_speaker_rel', 'speaker_id', 'partner_id', 'Other Speakers', readonly=False, states={'done': [('readonly', True)]}), 'address_id': fields.many2one('res.partner','Location Address', readonly=False, states={'done': [('readonly', True)]}), 'speaker_confirmed': fields.boolean('Speaker Confirmed', readonly=False, states={'done': [('readonly', True)]}), 'country_id': fields.related('address_id', 'country_id', @@ -204,21 +221,23 @@ class event_event(osv.osv): 'company_id': fields.many2one('res.company', 'Company', required=False, change_default=True, readonly=False, states={'done': [('readonly', True)]}), 'is_subscribed' : fields.function(_subscribe_fnc, type="boolean", string='Subscribed'), } - _defaults = { 'state': 'draft', 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'event.event', context=c), 'user_id': lambda obj, cr, uid, context: uid, } - def subscribe_to_event(self, cr, uid, ids, context=None): register_pool = self.pool.get('event.registration') user_pool = self.pool.get('res.users') + num_of_seats = int(context.get('ticket', 1)) + self.check_registration_limits_before(cr, uid, ids, num_of_seats, context=context) user = user_pool.browse(cr, uid, uid, context=context) curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , ids[0])]) #the subscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to subscribe if not curr_reg_ids: - curr_reg_ids = [register_pool.create(cr, 1, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id,})] + curr_reg_ids = [register_pool.create(cr, 1, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id, 'nb_register': num_of_seats})] + else: + register_pool.write(cr, uid, curr_reg_ids, {'nb_register': num_of_seats}, context=context) return register_pool.confirm_registration(cr, 1, curr_reg_ids, context=context) def unsubscribe_to_event(self, cr, uid, ids, context=None): @@ -236,7 +255,6 @@ class event_event(osv.osv): _constraints = [ (_check_closing_date, 'Error ! Closing Date cannot be set before Beginning Date.', ['date_end']), ] - def onchange_event_type(self, cr, uid, ids, type_event, context=None): if type_event: type_info = self.pool.get('event.type').browse(cr,uid,type_event,context) @@ -248,13 +266,50 @@ class event_event(osv.osv): 'register_max': type_info.default_registration_max, } return {'value': dic} + + # ---------------------------------------- + # OpenChatter methods and notifications + # ---------------------------------------- + + 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): + message = _("Event has been <b>created</b>.") + self.message_append_note(cr, uid, ids, body=message, context=context) + return True + + def button_cancel_send_note(self, cr, uid, ids, context=None): + message = _("Event has been <b>cancelled</b>.") + self.message_append_note(cr, uid, ids, body=message, context=context) + return True + + def button_draft_send_note(self, cr, uid, ids, context=None): + message = _("Event has been set to <b>draft</b>.") + self.message_append_note(cr, uid, ids, body=message, context=context) + return True + + def button_done_send_note(self, cr, uid, ids, context=None): + message = _("Event has been <b>done</b>.") + self.message_append_note(cr, uid, ids, body=message, context=context) + return True + + def button_confirm_send_note(self, cr, uid, ids, context=None): + message = _("Event has been <b>confirmed</b>.") + self.message_append_note(cr, uid, ids, body=message, context=context) + return True + event_event() class event_registration(osv.osv): """Event Registration""" _name= 'event.registration' _description = __doc__ - _inherit = ['mail.thread','res.partner'] + _inherit = ['ir.needaction_mixin','mail.thread','res.partner'] _columns = { 'id': fields.integer('ID'), 'origin': fields.char('Source', size=124,readonly=True,help="Name of the sale order which create the registration"), @@ -285,16 +340,26 @@ class event_registration(osv.osv): def do_draft(self, cr, uid, ids, context=None): + self.do_draft_send_note(cr, uid, ids, context=context) return self.write(cr, uid, ids, {'state': 'draft'}, context=context) def confirm_registration(self, cr, uid, ids, context=None): self.message_append(cr, uid, ids,_('State set to open'),body_text= _('Open')) return self.write(cr, uid, ids, {'state': 'open'}, context=context) + def create(self, cr, uid, vals, context=None): + obj_id = super(event_registration, self).create(cr, uid, vals, context) + self.create_send_note(cr, uid, [obj_id], context=context) + return obj_id def registration_open(self, cr, uid, ids, context=None): """ Open Registration """ + event_obj = self.pool.get('event.event') + for register in self.browse(cr, uid, ids, context=context): + event_id = register.event_id.id + no_of_registration = register.nb_register + event_obj.check_registration_limits_before(cr, uid, [event_id], no_of_registration, context=context) res = self.confirm_registration(cr, uid, ids, context=context) self.mail_user(cr, uid, ids, context=context) return res @@ -382,7 +447,27 @@ class event_registration(osv.osv): data.update(d['value']) return {'value': data} -event_registration() + # ---------------------------------------- + # OpenChatter methods and notifications + # ---------------------------------------- + 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): + message = _("Registration has been <b>created</b>.") + self.message_append_note(cr, uid, ids, body=message, context=context) + return True + + def do_draft_send_note(self, cr, uid, ids, context=None): + message = _("Registration has been set as <b>draft</b>.") + self.message_append_note(cr, uid, ids, body=message, context=context) + return True + +event_registration() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/event/event_demo.xml b/addons/event/event_demo.xml index 96bc64e12aa..81dad07b5e4 100644 --- a/addons/event/event_demo.xml +++ b/addons/event/event_demo.xml @@ -38,16 +38,16 @@ <record id="event_1" model="event.event"> <field name="name">Opera of Verdi</field> - <field eval="time.strftime('%Y-%m-05 18:00:00')" name="date_begin"/> - <field eval="time.strftime('%Y-%m-05 21:00:00')" name="date_end"/> + <field eval="(DateTime.today()+ timedelta(days=1)).strftime('%Y-%m-%d 18:00:00')" name="date_begin"/> + <field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 21:00:00')" name="date_end"/> <field name="type" ref="event_type_1"/> <field name="register_min">50</field> <field name="register_max">350</field> </record> <record id="event_2" model="event.event"> <field name="name">Conference on ERP Business</field> - <field eval="time.strftime('%Y-%m-05 14:00:00')" name="date_begin"/> - <field eval="time.strftime('%Y-%m-05 16:30:00')" name="date_end"/> + <field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 14:00:00')" name="date_begin"/> + <field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 16:30:00')" name="date_end"/> <field name="type" ref="event_type_2"/> <field name="register_max">200</field> </record> diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 78d5f8f421a..e5442b5ec5f 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -50,30 +50,48 @@ <field name="model">event.event</field> <field name="type">form</field> <field name="arch" type="xml"> - <form layout="manual"> - <div class="oe_form_topbar"> + <form string="Events" layout="manual"> + <header> <button string="Confirm Event" name="button_confirm" states="draft" type="object"/> - <button string="Mark Done" name="button_done" states="confirm" type="object"/> + <button string="Event Ended" name="button_done" states="confirm" type="object"/> <button string="Set To Draft" name="button_draft" states="cancel,done" type="object"/> <button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object"/> - <div class="oe_right"> - <field name="state" select="1" nolabel="1" widget="statusbar" statusbar_visible="draft,confirm,done"/> - </div> - <div class="oe_clear"/> - </div> - <sheet string="Events" layout="auto"> - <group col="6" colspan="4" class="oe_form_header"> - <field name="name"/> - <field name="date_begin"/> - <field name="date_end"/> + <field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/> + </header> + <sheet layout="manual"> + + + <field name="name" required="1" nolabel="1" class="oe_form_title" colspan="4"/> + <group colspan="4" col="5"> + <group col="2" colspan="2" class="oe_form_group_label_border" style="margin-top: 20px;"> <field name="type" on_change="onchange_event_type(type,context)"/> <field name="user_id"/> - <field name="address_id" /> + <field name="address_id" widget="many2one_address_google_map" widget_option="{'placeholder':'.oe_form_google_map'}"/> </group> - <notebook colspan="4"> - <page string="Event"> - <separator string="Description" colspan="4"/> + <group col="2" colspan="2" class="oe_form_group_label_border" style="margin-top: 20px;"> + <field name="date_begin"/> + <field name="date_end"/> + <field name="register_min"/> + <field name="register_max"/> + </group> + </group> + + <div class="oe_form_google_map" style="height: 200px"></div> + + <notebook colspan="4"> + <page string="Event Description"> <field name="note" colspan="4" nolabel="1"/> + </page> + <page string="Internal Data"> + <group class="oe_form_group_label_border" colspan="2" col="2"> + <field name="register_current"/> + <field name="register_prospect"/> + <field name="register_attended"/> + </group> + <group class="oe_form_group_label_border" colspan="2" col="2"> + <field name="main_speaker_id" domain="[('speaker','=',True)]" context="{'default_speaker':1}"/> + <field name="speaker_confirmed"/> + </group> <field name="registration_ids" colspan="4" nolabel="1" groups="event.group_event_manager,event.group_event_user"> <tree string="Registration" editable="top"> <field name="name" /> @@ -108,30 +126,11 @@ </form> </field> </page> - <page string="Speakers"> - <field name="main_speaker_id" domain="[('speaker','=',True)]" context="{'default_speaker':1}"/> - <field name="speaker_confirmed"/> - <separator string="Other Speakers" colspan="4"/> - <field name="speaker_ids" domain="[('speaker','=',True)]" context="{'default_speaker':1}" colspan="4" nolabel="1"/> - </page> - <page string="Extra Info"> - <group col="2" colspan="2"> - <separator string="Registrations" colspan="2"/> - <field name="register_min"/> - <field name="register_max"/> - <field name="register_prospect"/> - <field name="register_current"/> - <field name="register_attended"/> - </group> - <group col="2" colspan="2"> - <separator string="Emails" colspan="2"/> - <field name="reply_to"/> - <field name="email_registration_id" domain="[('model_id.model','=','event.registration')]"/> - <field name="email_confirmation_id" domain="[('model_id.model','=','event.registration')]"/> - </group> - </page> </notebook> - </sheet> + </sheet> + <div class="oe_form_sheet_width"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </div> </form> </field> </record> @@ -154,17 +153,14 @@ <field name="main_speaker_id" groups="base.extended"/> <field name="user_id"/> <field name="state"/> - <button string="Confirm Event" help="Confirm Event" name="button_confirm" states="draft" type="object" icon="gtk-apply"/> - <button string="Event Done" help="Event Done" name="button_done" states="confirm" type="object" icon="gtk-jump-to"/> - <button string="Cancel Event" help="Cancel Event" name="button_cancel" states="draft,confirm" type="object" icon="gtk-cancel"/> - <button string="Set To Draft" help="Set To Draft" name="button_draft" states="cancel,done" type="object" icon="gtk-convert"/> </tree> </field> </record> + <!-- Event Kanban View --> - <record model="ir.ui.view" id="view_event_kanban"> + <record model="ir.ui.view" id="view_event_kanban"> <field name="name">event.event.kanban</field> <field name="model">event.event</field> <field name="type">kanban</field> @@ -208,13 +204,14 @@ </p> <t t-if="record.register_avail.raw_value != 0"> <t t-if="!record.is_subscribed.raw_value"> - <button type="object" name="subscribe_to_event" class="subscribe_button oe_event_button_subscribe"> + <input t-att-id="record.id.raw_value" type="text" name="subscribe" class="no_of_seats" value="1" onchange="document.getElementById('btn_sub' +this.id).setAttribute('data-context',JSON.stringify({'ticket':this.value}))"/> + <button t-att-id="'btn_sub'+record.id.raw_value" type="object" name="subscribe_to_event" class="oe_mail_button_follow"> <span >Subscribe</span> </button> </t> </t> <t t-if="record.is_subscribed.raw_value"> - <button type="object" name="unsubscribe_to_event" class="unsubscribe_button oe_event_button_unsubscribe"> + <button type="object" name="unsubscribe_to_event" class="oe_mail_button_unfollow"> <span>Subscribed</span> <span class="unsubscribe">Unsubscribe</span> </button> @@ -345,10 +342,6 @@ <field name="user_id"/> <field name="origin"/> <field name="state"/> - <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object" icon="gtk-cancel"/> - <button name="registration_open" string="Confirm Registration" states="draft" type="object" icon="gtk-apply"/> - <button name="button_reg_close" string="Attended" states="open" type="object" icon="gtk-apply"/> - <button string="Set To Unconfirmed" name="do_draft" states="cancel,done" type="object" icon="gtk-convert"/> </tree> </field> </record> @@ -359,16 +352,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="registration_open" string="Confirm" states="draft" type="object"/> <button name="button_reg_close" string="Attended" states="open" type="object"/> <button string="Set To Unconfirmed" name="do_draft" states="cancel,done" type="object"/> <button name="button_reg_cancel" string="Cancel Registration" states="draft,open" type="object"/> - <div class="oe_right"> - <field name="state" select="1" nolabel="1" colspan="2" widget="statusbar" statusbar_visible="draft,open,done"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" select="1" nolabel="1" colspan="2" widget="statusbar" statusbar_visible="draft,open,done"/> + </header> <sheet string="Registration" layout="auto"> <group col="6" colspan="4"> <field name="event_id" on_change="onchange_event(event_id, context)" domain="[('state','in',('draft','confirm'))]"/> @@ -413,7 +403,10 @@ </page> </notebook> - </sheet> + </sheet> + <div class="oe_form_sheet_width"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </div> </form> </field> </record> @@ -488,7 +481,7 @@ <field name="view_mode">tree,form,calendar,graph</field> <field name="context">{}</field> <field name="search_view_id" ref="view_registration_search"/> - </record> + </record>view_ <menuitem name="Registrations" diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css index a0f738e6323..8602ea24d53 100644 --- a/addons/event/static/src/css/event.css +++ b/addons/event/static/src/css/event.css @@ -29,90 +29,17 @@ color: #FFFFFF; background-color: #8A89BA; } -div.oe_fold_column{ - padding:0px !important; -} -.oe_event_button_subscribe { - display: inline-block; - border: 1px solid #ababab; - color: #404040; - font-size: 12px; - padding: 3px 10px; - text-align: center; - -o-background-size: 100% 100%; - -moz-background-size: 100% 100%; - -webkit-background-size: auto auto !important; - background-size: 100% 100%; - background: #d8d8d8 none; - background: none, -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8)); - background: none, -webkit-linear-gradient(#efefef, #d8d8d8); - background: none, -moz-linear-gradient(#efefef, #d8d8d8); - background: none, -o-linear-gradient(top, #efefef, #d8d8d8); - background: none, -khtml-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8)); - background: -ms-linear-gradient(top, #efefef, #d8d8d8); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#efefef', endColorstr='#d8d8d8',GradientType=0 ); - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -o-border-radius: 3px; - -ms-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -o-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5); - -webkit-font-smoothing: antialiased; - outline: none; -} -.oe_event_button_unsubscribe { - display: inline-block; - border: 1px solid #AAA; - color: #404040; - font-size: 12px; - padding: 3px 10px; - text-align: center; - -o-background-size: 100% 100%; - -moz-background-size: 100% 100%; - -webkit-background-size: auto auto !important; - background-size: 100% 100%; - background: #AAA none; - background: none, -webkit-gradient(linear, left top, left bottom, from(#AAA), to(#AAA)); - background: none, -webkit-linear-gradient(#AAA, #AAA); - background: none, -moz-linear-gradient(#AAA, #AAA); - background: none, -o-linear-gradient(top, #AAA, #AAA); - background: none, -khtml-gradient(linear, left top, left bottom, from(#AAA), to(#AAA)); - background: -ms-linear-gradient(top, #AAA, #AAA); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#AAA, endColorstr='#AAA',GradientType=0 ); - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - -o-border-radius: 3px; - -ms-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -o-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5); - -webkit-font-smoothing: antialiased; - outline: none; + +.no_of_seats{ + width:35px; } -.oe_event_button_subscribe:hover { - cursor: pointer; - background-size: 100% 100%; - /*background: #DC5F59 none;*/ +.oe_mapbox +{ + position: relative; + float: right; + height:200px; + width:256px; + border: 1px solid #eeeeee; } -.oe_event_button_unsubscribe:hover { - cursor: pointer; - background-size: 100% 100%; - background: #DC5F59 none; - } - .unsubscribe, .unsubscribe_button:hover span { - display: none; - background-color: #DC5F59 - } - .unsubscribe_button:hover .unsubscribe { - display: inline; - background-color: #DC5F59; - } diff --git a/addons/event/test/process/event_draft2done.yml b/addons/event/test/process/event_draft2done.yml index d3f3d1fb466..eb40340befd 100644 --- a/addons/event/test/process/event_draft2done.yml +++ b/addons/event/test/process/event_draft2done.yml @@ -9,6 +9,7 @@ name: event date_begin: 2012-01-01 19:05:15 date_end: 2012-01-01 20:05:15 + register_max: 10 - I create a registration for the event - @@ -32,6 +33,7 @@ I confirm the registration1 - !python {model: event.registration}: | + event_pool = self.pool.get("event.event") self.registration_open(cr, uid, [ref("event_registration1")],context=context) - I check that registration is "confirmed" diff --git a/addons/event_sale/event_sale.py b/addons/event_sale/event_sale.py index df115c0eef4..0d6497c45f2 100644 --- a/addons/event_sale/event_sale.py +++ b/addons/event_sale/event_sale.py @@ -70,7 +70,6 @@ class sale_order_line(osv.osv): def button_confirm(self, cr, uid, ids, context=None): ''' create registration with sale order - ''' registration_obj = self.pool.get('event.registration') sale_obj = self.pool.get('sale.order') @@ -92,4 +91,3 @@ class sale_order_line(osv.osv): message = _("The registration %s has been created from the Sale Order %s.") % (registration_id, order_line.order_id.name) registration_obj.log(cr, uid, registration_id, message) return super(sale_order_line, self).button_confirm(cr, uid, ids, context=context) - diff --git a/addons/google_base_account/i18n/sv.po b/addons/google_base_account/i18n/sv.po new file mode 100644 index 00000000000..a90418cbfde --- /dev/null +++ b/addons/google_base_account/i18n/sv.po @@ -0,0 +1,121 @@ +# 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:36+0000\n" +"PO-Revision-Date: 2012-06-04 09:58+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-05 04:54+0000\n" +"X-Generator: Launchpad (build 15353)\n" + +#. module: google_base_account +#: field:res.users,gmail_user:0 +msgid "Username" +msgstr "Användarnamn" + +#. module: google_base_account +#: model:ir.actions.act_window,name:google_base_account.act_google_login_form +msgid "Google Login" +msgstr "Googleinloggning" + +#. module: google_base_account +#: code:addons/google_base_account/wizard/google_login.py:29 +#, python-format +msgid "Google Contacts Import Error!" +msgstr "Google kontaktimportfel!" + +#. module: google_base_account +#: view:res.users:0 +msgid " Synchronization " +msgstr " Synkronisering " + +#. module: google_base_account +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Du kan inte ha två användare med samma användarid !" + +#. module: google_base_account +#: code:addons/google_base_account/wizard/google_login.py:75 +#, python-format +msgid "Error" +msgstr "Fel" + +#. module: google_base_account +#: view:google.login:0 +msgid "Google login" +msgstr "Googleinloggning" + +#. module: google_base_account +#: model:ir.model,name:google_base_account.model_res_users +msgid "res.users" +msgstr "res.users" + +#. module: google_base_account +#: field:google.login,password:0 +msgid "Google Password" +msgstr "Google-lösenord" + +#. module: google_base_account +#: view:google.login:0 +msgid "_Cancel" +msgstr "_Avbryt" + +#. module: google_base_account +#: view:res.users:0 +msgid "Google Account" +msgstr "Google-konto" + +#. module: google_base_account +#: field:google.login,user:0 +msgid "Google Username" +msgstr "Google-användarnamn" + +#. module: google_base_account +#: code:addons/google_base_account/wizard/google_login.py:29 +#, python-format +msgid "" +"Please install gdata-python-client from http://code.google.com/p/gdata-" +"python-client/downloads/list" +msgstr "" +"Vänligen installera gdata-python-client från http://code.google.com/p/gdata-" +"python-client/downloads/list" + +#. module: google_base_account +#: model:ir.model,name:google_base_account.model_google_login +msgid "Google Contact" +msgstr "Google-kontakt" + +#. module: google_base_account +#: view:google.login:0 +msgid "_Login" +msgstr "Logga _in" + +#. module: google_base_account +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "Detta bolag är inte tillåtet för den här användaren" + +#. module: google_base_account +#: field:res.users,gmail_password:0 +msgid "Password" +msgstr "Lösenord" + +#. module: google_base_account +#: code:addons/google_base_account/wizard/google_login.py:75 +#, python-format +msgid "Authentication fail check the user and password !" +msgstr "Autenticering misslyckades, kontrollera användarid och lösenord !" + +#. module: google_base_account +#: view:google.login:0 +msgid "ex: user@gmail.com" +msgstr "ex: user@gmail.com" diff --git a/addons/google_map/__openerp__.py b/addons/google_map/__openerp__.py index 8aa1b60ca88..a6e85c3cd66 100644 --- a/addons/google_map/__openerp__.py +++ b/addons/google_map/__openerp__.py @@ -38,6 +38,7 @@ Using this you can directly open Google Map from the URL widget.""", 'google_map_view.xml', ], 'demo_xml': [], + 'js': ['static/src/js/google_map.js'], 'installable': True, 'auto_install': False, 'certificate': '0029498930765', diff --git a/addons/google_map/google_map_view.xml b/addons/google_map/google_map_view.xml index 4cd7e4ad7c4..eda86a0662f 100644 --- a/addons/google_map/google_map_view.xml +++ b/addons/google_map/google_map_view.xml @@ -12,8 +12,7 @@ <label string="Street2 : " align="1.0"/> <group colspan="1" col="2"> <field name="street2" nolabel="1"/> - <button name="open_map" - string="Map" type="object" icon="gtk-zoom-in"/> + <button name="open_map" string="Map" type="object" icon="gtk-zoom-in"/> </group> </field> </field> diff --git a/addons/google_map/static/src/js/google_map.js b/addons/google_map/static/src/js/google_map.js new file mode 100644 index 00000000000..9aa693e53c6 --- /dev/null +++ b/addons/google_map/static/src/js/google_map.js @@ -0,0 +1,75 @@ +openerp.event = function(instance, mod) { + instance.web.form.widgets.add('many2one_address_google_map', 'instance.google_map.Many2OneAddress'); + + var googleMapsLoaded = null; + + instance.google_map.GoogleMapConnector = instance.web.Class.extend({ + map_load: function() { + var self = this; + if(googleMapsLoaded === null) { + googleMapsLoaded = $.Deferred(); + // global + openerp_googleMapsCallback = googleMapsLoaded.resolve; + $.ajax({ + url: "https://maps.googleapis.com/maps/api/js?v=3&callback=openerp_googleMapsCallback&sensor=false", + dataType: "script" + }).fail(googleMapsLoaded.reject); + } + return googleMapsLoaded; + }, + render_map: function(address,element) { + this.map_load().then(function() { + var geocoder = new google.maps.Geocoder(); + geocoder.geocode({'address': address}, function(results, status) { + if (status == google.maps.GeocoderStatus.OK) { + var lat = results[0].geometry.location.lat(); + var lng = results[0].geometry.location.lng(); + var myOptions = { + zoom: 17, + center: new google.maps.LatLng(lat,lng), + mapTypeId: google.maps.MapTypeId.ROADMAP + }; + var map = new google.maps.Map(element,myOptions); + var position = new google.maps.LatLng(lat,lng); + var marker = new google.maps.Marker({ map: map, position: position }); + return marker; + } + }); + }); + }, + }); + + instance.google_map.Many2OneAddress = instance.web.form.FieldMany2One.extend({ + init: function(field_manager, node){ + this._super(field_manager, node); + this.map = new instance.google_map.GoogleMapConnector(); + }, + get_address:function(value){ + var self = this; + if (!value || value.length == 0){ + return $.Deferred().reject(); + } + (value instanceof Array)?value = parseInt(value[0]):false; + var data = new instance.web.DataSet(this,this.field.relation, this.build_context()); + data.read_ids(value,["street","city","zip","country_id"]).done(function(value){ + var address; + if (value['country_id']) { + address = _.str.sprintf('%(street)s, %(zip)s %(city)s, %(country_id[1])s', value); + } else { + address = _.str.sprintf('%(street)s, %(zip)s %(city)s', value); + } + // TODO repalce by widget_option selector self.options.selector + var el = self.view.$element.find(".oe_form_google_map")[0]; + self.map.render_map(address,el); + }); + }, + set_value:function(value){ + this._super(value); + this.get_address(value); + }, + render_value:function(no_recurse){ + this.get_address(this.get("value")); + this._super(no_recurse); + } + }); +}; diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml index 32eb3a84c83..461ba8fd71a 100644 --- a/addons/hr/hr_view.xml +++ b/addons/hr/hr_view.xml @@ -346,15 +346,12 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="job_recruitement" string="In Recruitement" states="open" type="object"/> <button name="job_open" string="In Position" states="old,recruit" type="object"/> <button name="job_old" string="Mark as Old" states="open,recruit" type="object"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="recruit,open"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="recruit,open"/> + </header> <sheet string="Job" layout="auto"> <group col="6" colspan="4"> <field name="name" /> diff --git a/addons/hr/res_config_view.xml b/addons/hr/res_config_view.xml index 739eaacdf79..e6b55ba45f0 100644 --- a/addons/hr/res_config_view.xml +++ b/addons/hr/res_config_view.xml @@ -15,10 +15,10 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string ="Configure Human Resources" layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Apply" type="object" name="execute"/> <button string="Cancel" special="cancel"/> - </div> + </header> <sheet layout="auto"> <separator string="Additional Features" colspan="4"/> <field name="module_hr_expense"/> diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py index 80ab03f22e7..e85f0274d84 100644 --- a/addons/hr_evaluation/hr_evaluation.py +++ b/addons/hr_evaluation/hr_evaluation.py @@ -167,7 +167,6 @@ class hr_evaluation(osv.osv): ('done','Done'), ], 'Status', required=True, readonly=True), 'date_close': fields.date('Ending Date', select=True), - 'progress': fields.float("Progress"), } _defaults = { 'date': lambda *a: (parser.parse(datetime.now().strftime('%Y-%m-%d')) + relativedelta(months =+ 1)).strftime('%Y-%m-%d'), @@ -245,7 +244,6 @@ class hr_evaluation(osv.osv): return True def button_done(self,cr, uid, ids, context=None): - self.write(cr, uid, ids,{'progress': 1 * 100}, context=context) self.write(cr, uid, ids,{'state':'done', 'date_close': time.strftime('%Y-%m-%d')}, context=context) return True @@ -312,7 +310,6 @@ class hr_evaluation_interview(osv.osv): for id in self.browse(cr, uid, ids, context=context): flag = False wating_id = 0 - tot_done_req = 1 if not id.evaluation_id.id: raise osv.except_osv(_('Warning !'),_("You cannot start evaluation without Appraisal.")) records = hr_eval_obj.browse(cr, uid, [id.evaluation_id.id], context=context)[0].survey_request_ids @@ -322,11 +319,8 @@ class hr_evaluation_interview(osv.osv): continue if child.state != "done": flag = True - else: - tot_done_req += 1 if not flag and wating_id: self.survey_req_waiting_answer(cr, uid, [wating_id], context=context) - hr_eval_obj.write(cr, uid, [id.evaluation_id.id], {'progress': tot_done_req * 100 / len(records)}, context=context) self.write(cr, uid, ids, { 'state': 'done'}, context=context) return True diff --git a/addons/hr_evaluation/hr_evaluation_data.xml b/addons/hr_evaluation/hr_evaluation_data.xml index ec4b46f8a62..bf482d2fcd7 100644 --- a/addons/hr_evaluation/hr_evaluation_data.xml +++ b/addons/hr_evaluation/hr_evaluation_data.xml @@ -2,7 +2,7 @@ <openerp> <data noupdate="1"> <record id="survey_2" model="survey"> - <field name="title">Employee Appraisal</field> + <field name="title">Self Appraisal</field> <field name="max_response_limit">20</field> <field eval="[(6,0,[])]" name="users"/> <field name="type" ref="survey.survey_type1"/> @@ -1157,37 +1157,11 @@ Once the form had been filled, the employee send it to his supervisor. </data> <data noupdate="1"> - <record id="hr_evaluation_plan_phase_sendtosubordinates0" model="hr_evaluation.plan.phase"> - <field name="plan_id" ref="hr_evaluation_plan_managersevaluationplan0"/> - <field name="name">Send to Subordinates</field> - <field eval="0" name="send_anonymous_manager"/> - <field eval="1" name="sequence"/> - <field name="company_id" ref="base.main_company"/> - <field name="action">bottom-up</field> - <field eval="0" name="send_anonymous_employee"/> - <field eval="0" name="send_answer_employee"/> - <field name="survey_id" ref="hr_evaluation.survey_2"/> - <field eval="0" name="send_answer_manager"/> - <field eval="0" name="wait"/> - </record> - <record id="hr_evaluation_plan_phase_sendtomanagers0" model="hr_evaluation.plan.phase"> - <field name="plan_id" ref="hr_evaluation_plan_managersevaluationplan0"/> - <field name="name">Send to Managers</field> - <field eval="0" name="send_anonymous_manager"/> - <field eval="2" name="sequence"/> - <field name="company_id" ref="base.main_company"/> - <field name="action">top-down</field> - <field eval="0" name="send_anonymous_employee"/> - <field eval="0" name="send_answer_employee"/> - <field name="survey_id" ref="hr_evaluation.survey_2"/> - <field eval="0" name="send_answer_manager"/> - <field eval="0" name="wait"/> - </record> <record id="hr_evaluation_plan_phase_sendtoemployee0" model="hr_evaluation.plan.phase"> <field name="plan_id" ref="hr_evaluation_plan_managersevaluationplan0"/> <field name="name">Send to Employee</field> <field eval="0" name="send_anonymous_manager"/> - <field eval="3" name="sequence"/> + <field eval="1" name="sequence"/> <field name="company_id" ref="base.main_company"/> <field name="action">self</field> <field eval="0" name="send_anonymous_employee"/> @@ -1196,19 +1170,6 @@ Once the form had been filled, the employee send it to his supervisor. <field eval="0" name="send_answer_manager"/> <field eval="0" name="wait"/> </record> - <record id="hr_evaluation_plan_phase_finalinterviewwithmanager0" model="hr_evaluation.plan.phase"> - <field name="plan_id" ref="hr_evaluation_plan_managersevaluationplan0"/> - <field name="name">Final Interview With Manager</field> - <field eval="0" name="send_anonymous_manager"/> - <field eval="4" name="sequence"/> - <field name="company_id" ref="base.main_company"/> - <field name="action">final</field> - <field eval="0" name="send_anonymous_employee"/> - <field eval="0" name="send_answer_employee"/> - <field name="survey_id" ref="hr_evaluation.survey_2"/> - <field eval="0" name="send_answer_manager"/> - <field eval="1" name="wait"/> - </record> </data> <data noupdate="1"> diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml index a8d0eee63f9..103c9f62722 100644 --- a/addons/hr_evaluation/hr_evaluation_view.xml +++ b/addons/hr_evaluation/hr_evaluation_view.xml @@ -155,38 +155,34 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="button_plan_in_progress" string="Start Appraisal" states="draft" type="object"/> <button name="button_final_validation" string="Validate Appraisal" states="wait" type="object"/> <button name="button_done" string="Done" states="progress" type="object"/> <button name="button_draft" string="Reset to Draft" states="cancel" type="object"/> <button name="button_cancel" string="Cancel" states="draft,wait,progress" type="object"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,wait,done" statusbar_colors='{"progress":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,progress,wait,done" statusbar_colors='{"progress":"blue"}'/> + </header> <sheet string="Appraisal" layout="auto"> <group col="4" colspan="3"> <separator string="Appraisal Data" colspan="4"/> <field name="employee_id" on_change="onchange_employee_id(employee_id)"/> <field name="plan_id"/> <field name="date"/> - <field name="progress" widget="progressbar"/> </group> - <group col="2" colspan="1"> + <group col="2" colspan="1" attrs="{'invisible':['|', ('state','=','draft'), ('state', '=', 'wait')]}"> <separator string="Ending Summary" colspan="2"/> - <field name="rating" attrs="{'readonly':[('state','<>','progress')],'required':[('state','=','progress')]}"/> + <field name="rating" attrs="{'readonly':[('state','<>','progress')]}"/> <field name="date_close" readonly="1"/> </group> <notebook colspan="4"> - <page string="Appraisal"> + <page string="Appraisal" attrs="{'invisible':[('state','=','draft')]}"> <field name="survey_request_ids" nolabel="1" colspan="4" widget="one2many"> <form string="Interview Appraisal"> <group col="4" colspan="4"> <field name="survey_id"/> <group col="2" colspan="2"> - <button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/> + <button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/> <button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0,}" attrs="{'readonly':[('response','=',False)]}" /> </group> <field name="date_deadline"/> @@ -198,15 +194,16 @@ <separator string="Status" colspan="4"/> <group colspan="4" col="6"> <field name="state"/> + <button string="Done" name="survey_req_done" states="waiting_answer" type="object" icon="gtk-jump-to" /> </group> </form> </field> </page> - <page string="Internal Notes"> + <page string="Internal Notes" attrs="{'invisible':[('state','=','draft')]}"> <field name="note_action" colspan="4" nolabel="1" groups="base.group_hr_manager"/> </page> - <page string="Public Notes"> + <page string="Public Notes" attrs="{'invisible':[('state','=','draft')]}"> <field name="note_summary" colspan="4" nolabel="1"/> </page> </notebook> @@ -258,6 +255,9 @@ <separator orientation="vertical"/> <filter icon="terp-gnome-cpu-frequency-applet+" string="Late" help="Appraisal that overpassed the deadline" domain="[('date','<=',(datetime.date.today()).strftime('%%Y-%%m-%%d'))]" /> + <filter icon="terp-go-month" name="next_month" string=" Month+1" + domain="[('date','<=', (datetime.date.today() + relativedelta(day=31, months=1)).strftime('%%Y-%%m-%%d')),('date','>=',(datetime.date.today() + relativedelta(day=1,months=1)).strftime('%%Y-%%m-%%d')),('state','=','draft')]" + help="Appraisal during next month"/> <separator orientation="vertical"/> <field name="employee_id" /> <field name="plan_id" widget="selection" /> @@ -281,6 +281,7 @@ <field name="view_type">form</field> <field name="view_mode">tree,form,graph</field> <field name="search_view_id" ref="hr_evaluation.evaluation_search"/> + <field name="context">{"search_default_next_month":1}</field> <field name="help">Each employee may be assigned an Appraisal Plan. Such a plan defines the frequency and the way you manage your periodic personnel evaluation. You will be able to define steps and attach interviews to each step. OpenERP manages all kind of evaluations: bottom-up, top-down, self-evaluation and final evaluation by the manager.</field> </record> @@ -294,28 +295,27 @@ <field name="arch" type="xml"> <form string="Interview Appraisal"> <group col="4" colspan="4"> - <field name="survey_id"/> - <field name="evaluation_id"/> - <group col="2" colspan="2"> - <button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/> - <button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0,}" attrs="{'readonly':[('response','=',False)]}" /> - </group> - <field name="date_deadline"/> - <field name="response" readonly="1"/> - <field name="user_to_review_id"/> - <field name="user_id" string="Interviewer"/> - <group col="2" colspan="2"> - <button string="Send Reminder Email" - name="%(mail.action_email_compose_message_wizard)d" - icon="terp-mail-message-new" type="action" - states="waiting_answer"/> - <button name="action_print_survey" string="Print Survey" type="object" icon="gtk-print" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0}" attrs="{'readonly':[('survey_id','=',False)]}"/> + <field name="user_to_review_id"/> + <field name="user_id" string="Interviewer"/> + <field name="date_deadline"/> + <group col="4" colspan="4"> + <field name="survey_id"/> + <button name="action_print_survey" string="Print Survey" type="object" icon="gtk-print" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0}" attrs="{'readonly':[('survey_id','=',False)]}"/> + <newline/> + <field name="evaluation_id"/> + <button string="Send Reminder Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action" states="waiting_answer"/> + <newline/> + <field name="response" readonly="1"/> + <button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response,'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/> </group> </group> <newline/> <separator string="Status" colspan="4"/> <group colspan="4" col="6"> - <field name="state"/> + <field name="state" widget="statusbar" statusbar_visible="waiting_answer,done"/> + <button string="Send Request" name="survey_req_waiting_answer" states="draft" type="object" icon="gtk-yes" /> + <button string="Done" name="survey_req_done" states="waiting_answer" type="object" icon="gtk-jump-to" /> + <button string="Cancel" name="survey_req_cancel" states="draft,waiting_answer" type="object" icon="gtk-cancel"/> </group> </form> </field> @@ -332,11 +332,12 @@ <field name="user_id" string="Interviewer"/> <field name="user_to_review_id"/> <field name="response" readonly="1" invisible="True"/> - <button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response, 'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/> - <button name="%(survey.survey_browse_response)d" string="Print Interview" type="action" states="done" icon="gtk-print" context="{'survey_id': survey_id, 'response_id' : [response], 'response_no':0}" attrs="{'readonly':[('response','=',False)]}" /> + <button name="%(survey.action_view_survey_question_message)d" string="Answer Survey" type="action" states="waiting_answer,done,cancel" icon="gtk-execute" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0, 'active' : response, 'request' : True, 'object' : 'hr.evaluation.interview', 'cur_id' : active_id}" attrs="{'readonly':[('survey_id','=',False)]}"/> <button name="action_print_survey" string="Print Survey" type="object" icon="gtk-print" context="{'survey_id': survey_id, 'response_id': [response], 'response_no':0}" attrs="{'readonly':[('survey_id','=',False)]}"/> <button name="%(mail.action_email_compose_message_wizard)d" string="Send Reminder Email" icon="terp-mail-message-new" type="action" colspan="2" states="waiting_answer"/> <field name="state"/> + <button string="Send Request" name="survey_req_waiting_answer" states="draft" type="object" icon="gtk-yes" /> + <button string="Done" name="survey_req_done" states="waiting_answer" type="object" icon="gtk-jump-to" /> </tree> </field> </record> diff --git a/addons/hr_evaluation/report/hr_evaluation_report.py b/addons/hr_evaluation/report/hr_evaluation_report.py index a5f4bc71e2f..ac32133186c 100644 --- a/addons/hr_evaluation/report/hr_evaluation_report.py +++ b/addons/hr_evaluation/report/hr_evaluation_report.py @@ -31,7 +31,6 @@ class hr_evaluation_report(osv.osv): 'create_date': fields.date('Create Date', readonly=True), 'delay_date':fields.float('Delay to Start', digits=(16,2),readonly=True), 'overpass_delay':fields.float('Overpassed Deadline', digits=(16,2), readonly=True), - 'progress_bar' : fields.float("Progress"), 'day': fields.char('Day', size=128, readonly=True), 'deadline': fields.date("Deadline", readonly=True), 'request_id': fields.many2one('survey.request', 'Request_id', readonly=True), @@ -77,7 +76,6 @@ class hr_evaluation_report(osv.osv): to_char(s.create_date, 'MM') as month, count(l.*) as nbr, s.state, - s.progress as progress_bar, avg(extract('epoch' from age(s.create_date,CURRENT_DATE)))/(3600*24) as delay_date, avg(extract('epoch' from age(s.date,CURRENT_DATE)))/(3600*24) as overpass_delay from @@ -96,7 +94,6 @@ class hr_evaluation_report(osv.osv): s.date_close, l.request_id, s.rating, - s.progress, s.plan_id ) """) diff --git a/addons/hr_evaluation/report/hr_evaluation_report_view.xml b/addons/hr_evaluation/report/hr_evaluation_report_view.xml index a0ef05fcf69..2cf5a930b4d 100644 --- a/addons/hr_evaluation/report/hr_evaluation_report_view.xml +++ b/addons/hr_evaluation/report/hr_evaluation_report_view.xml @@ -20,7 +20,6 @@ <field name="rating" invisible="1"/> <field name="state" invisible="1"/> <field name="nbr" sum="# of Requests"/> - <field name="progress_bar" widget="progressbar"/> <field name="delay_date"/> <field name="overpass_delay"/> </tree> diff --git a/addons/hr_evaluation/security/ir.model.access.csv b/addons/hr_evaluation/security/ir.model.access.csv index e3a79b55a45..f9b8897eb01 100644 --- a/addons/hr_evaluation/security/ir.model.access.csv +++ b/addons/hr_evaluation/security/ir.model.access.csv @@ -25,7 +25,7 @@ access_survey_page_hr_user,survey.page.hr.user,survey.model_survey_page,base.gro access_survey_response_hr_user,survey.response.hr.user,survey.model_survey_response,base.group_hr_user,1,1,1,0
access_survey_history_hr_user,survey.history.hr.user,survey.model_survey_history,base.group_hr_user,1,1,1,0
access_survey_request_hr_user,survey.request.hr.user,survey.model_survey_request,base.group_hr_user,1,1,1,0
-access_survey_question_column_heading_hr_user,survey.question.column.heading.hr.user,survey.model_survey_question_column_heading,base.group_hr_user,1,0,0,0
+access_survey_question_column_heading_hr_user,survey.question.column.heading.hr.user,survey.model_survey_question_column_heading,base.group_hr_user,1,1,1,0
access_survey_response_line_hr_user,survey.response.line.hr.user,survey.model_survey_response_line,base.group_hr_user,1,1,1,0
access_survey_tbl_column_heading_hr_user,survey.tbl.column.heading.hr.user,survey.model_survey_tbl_column_heading,base.group_hr_user,1,1,1,0
access_base_calendar_attendee_survey_user,base.calendar.calendar.attendee.survey.user,base_calendar.model_calendar_attendee,base.group_survey_user,1,1,1,0
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index d82f89930ef..2fc1340fd23 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -35,8 +35,6 @@ <field name="currency_id"/> <field name="amount"/> <field name="state"/> - <button name="confirm" states="draft" string="Confirm" type="workflow" icon="gtk-apply"/> - <button name="refuse" states="confirm,draft,accepted" string="Refuse" type="workflow" icon="gtk-no" groups="base.group_hr_user"/> </tree> </field> </record> @@ -66,17 +64,14 @@ <field name="model">hr.expense.expense</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="confirm" states="draft" string="Submit to Manager" type="workflow"/> <button name="validate" states="confirm" string="Approve" type="workflow" groups="base.group_hr_user"/> <button name="draft" states="confirm,cancelled" string="Set to Draft" type="workflow" groups="base.group_hr_user"/> <button name="invoice" states="accepted" string="Invoice" type="object" groups="base.group_hr_user"/> <button name="refuse" states="confirm,accepted" string="Refuse" type="workflow" groups="base.group_hr_user" /> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm,accepted" statusbar_colors='{"confirm":"blue","cancelled":"red"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,confirm,accepted" statusbar_colors='{"confirm":"blue","cancelled":"red"}'/> + </header> <sheet string="Expenses Sheet" layout="auto"> <group colspan="4" col="6"> <field name="employee_id" on_change="onchange_employee_id(employee_id)"/> diff --git a/addons/hr_expense/i18n/ja.po b/addons/hr_expense/i18n/ja.po index 0c9668d4890..ca86e455ea2 100644 --- a/addons/hr_expense/i18n/ja.po +++ b/addons/hr_expense/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-05-10 18:26+0000\n" -"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n" +"PO-Revision-Date: 2012-05-29 01:29+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-05-11 05:03+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-05-30 05:21+0000\n" +"X-Generator: Launchpad (build 15316)\n" #. module: hr_expense #: model:process.node,name:hr_expense.process_node_confirmedexpenses0 @@ -851,7 +851,7 @@ msgstr "経費" #. module: hr_expense #: constraint:product.product:0 msgid "Error: Invalid ean code" -msgstr "エラー:無効な欧州統一商品番号です。" +msgstr "エラー:無効な商品識別番号です。" #. module: hr_expense #: view:hr.expense.report:0 field:hr.expense.report,year:0 diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index 4e68cdfb2f9..ce11812b479 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -112,25 +112,24 @@ class hr_holidays(osv.osv): _columns = { 'name': fields.char('Description', required=True, size=64), - 'state': fields.selection([('draft', 'New'), ('cancel', 'Cancelled'),('confirm', 'Waiting Approval'), ('refuse', 'Refused'), - ('validate1', 'Waiting Second Approval'), ('validate', 'Approved')], - 'Status', readonly=True, help='The status is set to \'Draft\', when a holiday request is created.\ - \nThe status is \'Waiting Approval\', when holiday request is confirmed by user.\ - \nThe status is \'Refused\', when holiday request is refused by manager.\ - \nThe status is \'Approved\', when holiday request is approved by manager.'), + 'state': fields.selection([('draft', 'To Submit'), ('cancel', 'Cancelled'),('confirm', 'To Approve'), ('refuse', 'Refused'), ('validate1', 'Second Approval'), ('validate', 'Approved')], + 'State', readonly=True, help='The state is set to \'To Submit\', when a holiday request is created.\ + \nThe state is \'To Approve\', when holiday request is confirmed by user.\ + \nThe state is \'Refused\', when holiday request is refused by manager.\ + \nThe state is \'Approved\', when holiday request is approved by manager.'), 'user_id':fields.related('employee_id', 'user_id', type='many2one', relation='res.users', string='User', store=True), - 'date_from': fields.datetime('Start Date', readonly=True, states={'draft':[('readonly',False)]}, select=True), - 'date_to': fields.datetime('End Date', readonly=True, states={'draft':[('readonly',False)]}), - 'holiday_status_id': fields.many2one("hr.holidays.status", "Leave Type", required=True,readonly=True, states={'draft':[('readonly',False)]}), - 'employee_id': fields.many2one('hr.employee', "Employee", select=True, invisible=False, readonly=True, states={'draft':[('readonly',False)]}, help='Leave Manager can let this field empty if this leave request/allocation is for every employee'), + 'date_from': fields.datetime('Start Date', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}, select=True), + 'date_to': fields.datetime('End Date', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}), + 'holiday_status_id': fields.many2one("hr.holidays.status", "Leave Type", required=True,readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}), + 'employee_id': fields.many2one('hr.employee', "Employee", select=True, invisible=False, readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}, help='Leave Manager can let this field empty if this leave request/allocation is for every employee'), #'manager_id': fields.many2one('hr.employee', 'Leave Manager', invisible=False, readonly=True, help='This area is automatically filled by the user who validate the leave'), #'notes': fields.text('Notes',readonly=True, states={'draft':[('readonly',False)]}), 'manager_id': fields.many2one('hr.employee', 'First Approval', invisible=False, readonly=True, help='This area is automatically filled by the user who validate the leave'), - 'notes': fields.text('Reasons',readonly=True, states={'draft':[('readonly',False)]}), - 'number_of_days_temp': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)]}), + 'notes': fields.text('Reasons',readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}), + 'number_of_days_temp': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}), 'number_of_days': fields.function(_compute_number_of_days, string='Number of Days', store=True), 'case_id': fields.many2one('crm.meeting', 'Meeting'), - 'type': fields.selection([('remove','Leave Request'),('add','Allocation Request')], 'Request Type', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="Choose 'Leave Request' if someone wants to take an off-day. \nChoose 'Allocation Request' if you want to increase the number of leaves available for someone", select=True), + 'type': fields.selection([('remove','Leave Request'),('add','Allocation Request')], 'Request Type', required=True, readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}, help="Choose 'Leave Request' if someone wants to take an off-day. \nChoose 'Allocation Request' if you want to increase the number of leaves available for someone", select=True), 'parent_id': fields.many2one('hr.holidays', 'Parent'), 'linked_request_ids': fields.one2many('hr.holidays', 'parent_id', 'Linked Requests',), 'department_id':fields.related('employee_id', 'department_id', string='Department', type='many2one', relation='hr.department', readonly=True, store=True), diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index 32cdcb53011..58abaae02ac 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -64,23 +64,20 @@ <field name="priority">1</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> - <button string="Confirm" name="confirm" states="draft" type="workflow"/> + <header> + <button string="Submit to Manager" name="confirm" states="draft" type="workflow"/> <button string="Approve" name="validate" states="confirm" type="workflow" groups="base.group_hr_user"/> - <button string="Approved" name="second_validate" states="validate1" type="workflow" groups="base.group_hr_user"/> + <button string="Validate" name="second_validate" states="validate1" type="workflow" groups="base.group_hr_user"/> <button string="Refuse" name="refuse" states="confirm,validate1" type="workflow" groups="base.group_hr_user,base.group_hr_manager"/> - <button string="Set to Draft" name="set_to_draft" states="refuse,validate" type="object" groups="base.group_hr_user"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/> - </div> - <div class="oe_clear"/> - </div> + <button string="Reset to New" name="set_to_draft" states="refuse,validate" type="object" groups="base.group_hr_user"/> + <field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/> + </header> <sheet string="Leave Request" layout="auto"> <group col="8" colspan="4"> <field name="name" attrs="{'readonly':[('state','!=','draft'),('state','!=','confirm')]}"/> <field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('state','!=','draft')]}" width="130" string="Mode" groups="base.group_hr_user"/> <group attrs="{'invisible':[('holiday_type','=','employee')]}"> - <field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly':[('state','!=','draft')]}"/> + <field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly':[('state','!=','draft'), ('state','!=','confirm')]}"/> </group> <group attrs="{'invisible':[('holiday_type','=','category')]}"> <field name="employee_id" attrs="{'required':[('holiday_type','=','employee')]}" groups="base.group_hr_user"/> @@ -103,7 +100,7 @@ </notebook> </sheet> <div class="oe_form_sheet_width"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> @@ -116,17 +113,14 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> - <button string="Confirm" name="confirm" states="draft" type="workflow"/> + <header> + <button string="Submit to Manager" name="confirm" states="draft" type="workflow"/> <button string="Approve" name="validate" states="confirm" type="workflow" groups="base.group_hr_user"/> - <button string="Approved" name="second_validate" states="validate1" type="workflow" groups="base.group_hr_user"/> + <button string="Validate" name="second_validate" states="validate1" type="workflow" groups="base.group_hr_user"/> <button string="Refuse" name="refuse" states="confirm,validate1" type="workflow" groups="base.group_hr_user"/> - <button string="Set to Draft" name="set_to_draft" states="cancel,validate,refuse" type="object" groups="base.group_hr_user"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/> - </div> - <div class="oe_clear"/> - </div> + <button string="Reset to New" name="set_to_draft" states="cancel,validate,refuse" type="object" groups="base.group_hr_user"/> + <field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/> + </header> <sheet string="Allocation Request" layout="auto"> <group col="8" colspan="4" class="oe_form_header"> <field name="name"/> @@ -141,7 +135,7 @@ <notebook colspan="4"> <page string="General"> <field name="holiday_status_id" on_change="onchange_sec_id(holiday_status_id)" context="{'employee_id':employee_id}"/> - <field name="department_id" attrs="{'readonly':[('holiday_type','=','category')]}"/> + <field name="department_id" attrs="{'readonly':['|', ('holiday_type','=','category'), ('state','not in' ,('draft', 'confirm'))]}"/> <field name="number_of_days_temp"/> <field name="double_validation" invisible="1"/> <newline/> @@ -153,7 +147,7 @@ </notebook> </sheet> <div class="oe_form_sheet_width"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> @@ -177,8 +171,6 @@ <field name="user_id" invisible="1"/> <!--field name="type"/--> <field name="state"/> - <button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply" groups="base.group_hr_user,base.group_hr_manager"/> - <button string="Approved" name="second_validate" states="validate1" type="workflow" icon="gtk-apply" groups="base.group_hr_user,base.group_hr_manager"/> </tree> </field> </record> @@ -203,10 +195,10 @@ <newline/> <field name="state" colspan="2"/> <group colspan="2"> - <button string="Confirm" name="confirm" states="draft" type="workflow" icon="gtk-yes"/> + <button string="Submit to Manager" name="confirm" states="draft" type="workflow" icon="gtk-yes"/> <button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply"/> <button string="Refuse" name="refuse" states="confirm,validate,draft" type="workflow" icon="gtk-no"/> - <button string="Set to Draft" name="set_to_draft" states="cancel" type="object" icon="gtk-convert"/> + <button string="Reset to New" name="set_to_draft" states="cancel" type="object" icon="gtk-convert"/> </group> </page> </notebook> @@ -234,9 +226,6 @@ <field name="manager_id" invisible="1"/> <field name="user_id" invisible="1"/> <field name="state"/> - <button string="Confirm" name="confirm" states="draft" type="workflow" icon="gtk-yes"/> - <button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/> - <button string="Refuse" name="refuse" states="confirm" type="workflow" icon="gtk-no" groups="base.group_hr_user"/> </tree> </field> </record> @@ -262,8 +251,6 @@ <field name="manager_id" invisible="1"/> <field name="user_id" invisible="1"/> <!--field name="type"/--> - <button string="Approve" name="validate" states="confirm" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/> - <button string="Approved" name="second_validate" states="validate1" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/> </tree> </field> </record> diff --git a/addons/hr_holidays/i18n/gu.po b/addons/hr_holidays/i18n/gu.po new file mode 100644 index 00000000000..bf9e1b5626f --- /dev/null +++ b/addons/hr_holidays/i18n/gu.po @@ -0,0 +1,842 @@ +# Gujarati 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 01:37+0100\n" +"PO-Revision-Date: 2012-05-25 06:46+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Gujarati <gu@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-26 05:07+0000\n" +"X-Generator: Launchpad (build 15288)\n" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Blue" +msgstr "વાદળી" + +#. module: hr_holidays +#: field:hr.holidays,holiday_type:0 +msgid "Allocation Type" +msgstr "ફાળવણી પ્રકાર" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 selection:hr.holidays,state:0 +msgid "Waiting Second Approval" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,remaining_leaves:0 +msgid "Maximum Leaves Allowed - Leaves Already Taken" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Leaves Management" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Group By..." +msgstr "ગ્રુપ દ્વારા..." + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Allocation Mode" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 field:hr.holidays,department_id:0 +msgid "Department" +msgstr "વિભાગ" + +#. module: hr_holidays +#: model:ir.actions.act_window,name:hr_holidays.request_approve_holidays +msgid "Requests Approve" +msgstr "" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 selection:hr.holidays,state:0 +msgid "Refused" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays,category_id:0 +msgid "Category of Employee" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid " Month-1" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Brown" +msgstr "તપખીરિયા રંગનું" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Remaining Days" +msgstr "બાકીના દિવસો" + +#. module: hr_holidays +#: selection:hr.holidays,holiday_type:0 +msgid "By Employee" +msgstr "કર્મચારી દ્વારા" + +#. module: hr_holidays +#: help:hr.holidays,employee_id:0 +msgid "" +"Leave Manager can let this field empty if this leave request/allocation is " +"for every employee" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Set to Draft" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Cyan" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Green" +msgstr "આછો લીલો" + +#. module: hr_holidays +#: field:hr.employee,current_leave_id:0 +msgid "Current Leave Type" +msgstr "" + +#. module: hr_holidays +#: model:ir.actions.act_window,help:hr_holidays.open_ask_holidays +msgid "" +"Leave requests can be recorded by employees and validated by their managers. " +"Once a leave request is validated, it appears automatically in the agenda of " +"the employee. You can define several allowance types (paid holidays, " +"sickness, etc.) and manage allowances per type." +msgstr "" + +#. module: hr_holidays +#: model:ir.actions.report.xml,name:hr_holidays.report_holidays_summary +msgid "Summary Of Leaves" +msgstr "" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 view:hr.holidays:0 +#: selection:hr.holidays,state:0 +msgid "Approved" +msgstr "મંજૂર થઇ ચૂકી છે" + +#. module: hr_holidays +#: field:hr.employee,last_login:0 +msgid "Latest Connection" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Refuse" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:344 +#, python-format +msgid "" +"You cannot validate leaves for employee %s: too few remaining days (%s)." +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays,state:0 +msgid "" +"The state is set to 'Draft', when a holiday request is created. \n" +"The state is 'Waiting Approval', when holiday request is confirmed by user. " +" \n" +"The state is 'Refused', when holiday request is refused by manager. " +" \n" +"The state is 'Approved', when holiday request is approved by manager." +msgstr "" + +#. module: hr_holidays +#: view:board.board:0 +#: model:ir.actions.act_window,name:hr_holidays.act_hr_employee_holiday_request +#: model:ir.ui.menu,name:hr_holidays.menu_hr_reporting_holidays +#: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays +msgid "Leaves" +msgstr "" + +#. module: hr_holidays +#: model:ir.model,name:hr_holidays.model_hr_holidays +msgid "Leave" +msgstr "" + +#. module: hr_holidays +#: model:ir.ui.menu,name:hr_holidays.menu_request_approve_holidays +msgid "Leave Requests to Approve" +msgstr "" + +#. module: hr_holidays +#: model:ir.ui.menu,name:hr_holidays.menu_account_central_journal +msgid "Leaves by Department" +msgstr "" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 selection:hr.holidays,state:0 +msgid "Cancelled" +msgstr "રદ થયેલ" + +#. module: hr_holidays +#: help:hr.holidays,type:0 +msgid "" +"Choose 'Leave Request' if someone wants to take an off-day. \n" +"Choose 'Allocation Request' if you want to increase the number of leaves " +"available for someone" +msgstr "" + +#. module: hr_holidays +#: help:hr.employee,remaining_leaves:0 +msgid "" +"Total number of legal leaves allocated to this employee, change this value " +"to create allocation/leave requests." +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.status:0 +msgid "Validation" +msgstr "માન્યતા" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:377 +#, python-format +msgid "Warning !" +msgstr "ચેતવણી !" + +#. module: hr_holidays +#: field:hr.holidays.status,color_name:0 +msgid "Color in Report" +msgstr "" + +#. module: hr_holidays +#: model:ir.model,name:hr_holidays.model_hr_holidays_summary_employee +msgid "HR Holidays Summary Report By Employee" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays,manager_id:0 +msgid "This area is automatically filled by the user who validate the leave" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,holiday_status_id:0 +#: field:hr.holidays.remaining.leaves.user,leave_type:0 +#: view:hr.holidays.status:0 field:hr.holidays.status,name:0 +#: field:hr.holidays.summary.dept,holiday_type:0 +#: model:ir.actions.act_window,name:hr_holidays.open_view_holiday_status +#: model:ir.model,name:hr_holidays.model_hr_holidays_status +#: model:ir.ui.menu,name:hr_holidays.menu_open_view_holiday_status +msgid "Leave Type" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:199 +#: code:addons/hr_holidays/hr_holidays.py:344 +#, python-format +msgid "Warning!" +msgstr "ચેતવણી!" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Magenta" +msgstr "જાંબલી" + +#. module: hr_holidays +#: code:addons/hr_holidays/wizard/hr_holidays_summary_department.py:44 +#, python-format +msgid "You have to select at least 1 Department. And try again" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.summary.dept,holiday_type:0 +#: selection:hr.holidays.summary.employee,holiday_type:0 +msgid "Confirmed" +msgstr "સમર્થિત" + +#. module: hr_holidays +#: field:hr.holidays.summary.dept,date_from:0 +#: field:hr.holidays.summary.employee,date_from:0 +msgid "From" +msgstr "તરફથી" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Confirm" +msgstr "ખાતરી" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:384 +#, python-format +msgid "Leave Request for %s" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.status,remaining_leaves:0 +msgid "Remaining Leaves" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 field:hr.holidays,state:0 +msgid "State" +msgstr "સ્થિતિ" + +#. module: hr_holidays +#: model:ir.model,name:hr_holidays.model_hr_holidays_remaining_leaves_user +msgid "Total holidays by type" +msgstr "" + +#. module: hr_holidays +#: view:hr.employee:0 view:hr.holidays:0 field:hr.holidays,employee_id:0 +#: field:hr.holidays.remaining.leaves.user,name:0 +#: model:ir.model,name:hr_holidays.model_hr_employee +msgid "Employee" +msgstr "કર્મચારી" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 selection:hr.holidays,state:0 +msgid "New" +msgstr "નવું" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Type" +msgstr "પ્રકાર" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Red" +msgstr "લાલ" + +#. module: hr_holidays +#: view:hr.holidays.remaining.leaves.user:0 +msgid "Leaves by Type" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Salmon" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Wheat" +msgstr "" + +#. module: hr_holidays +#: constraint:resource.calendar.leaves:0 +msgid "Error! leave start-date must be lower then leave end-date." +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:382 +#, python-format +msgid "Allocation for %s" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 field:hr.holidays,number_of_days:0 +#: field:hr.holidays,number_of_days_temp:0 +msgid "Number of Days" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:377 +#, python-format +msgid "" +"The feature behind the field 'Remaining Legal Leaves' can only be used when " +"there is only one leave type with the option 'Allow to Override Limit' " +"unchecked. (%s Found). Otherwise, the update is ambiguous as we cannot " +"decide on which leave type the update has to be done. \n" +"You may prefer to use the classic menus 'Leave Requests' and 'Allocation " +"Requests' located in 'Human Resources \\ Leaves' to manage the leave days of " +"the employees if the configuration does not allow to use this field." +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.status:0 +msgid "Search Leave Type" +msgstr "" + +#. module: hr_holidays +#: sql_constraint:hr.holidays:0 +msgid "You have to select an employee or a category" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,double_validation:0 +msgid "" +"If its True then its Allocation/Request have to be validated by second " +"validator" +msgstr "" + +#. module: hr_holidays +#: selection:hr.employee,current_leave_state:0 selection:hr.holidays,state:0 +msgid "Waiting Approval" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.summary.employee,emp:0 +msgid "Employee(s)" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,categ_id:0 +msgid "" +"If you set a meeting type, OpenERP will create a meeting in the calendar " +"once a leave is validated." +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,linked_request_ids:0 +msgid "Linked Requests" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,parent_id:0 +msgid "Parent" +msgstr "પિતૃ" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Lavender" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Month" +msgstr "મહિનો" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: model:ir.actions.act_window,name:hr_holidays.open_ask_holidays +#: model:ir.ui.menu,name:hr_holidays.menu_open_ask_holidays_new +msgid "Leave Requests" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.status,limit:0 +msgid "Allow to Override Limit" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.summary.employee:0 +#: model:ir.actions.act_window,name:hr_holidays.action_hr_holidays_summary_employee +msgid "Employee's Holidays" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 field:hr.holidays,category_id:0 +msgid "Category" +msgstr "શ્રેણી" + +#. module: hr_holidays +#: help:hr.holidays.status,max_leaves:0 +msgid "" +"This value is given by the sum of all holidays requests with a positive " +"value." +msgstr "" + +#. module: hr_holidays +#: view:board.board:0 +msgid "All Employee Leaves" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Coral" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.summary.dept:0 +#: model:ir.actions.act_window,name:hr_holidays.action_hr_holidays_summary_dept +msgid "Holidays by Department" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Black" +msgstr "કાળો" + +#. module: hr_holidays +#: model:ir.actions.act_window,name:hr_holidays.hr_holidays_leaves_assign_legal +msgid "Allocate Leaves for Employees" +msgstr "" + +#. module: hr_holidays +#: field:resource.calendar.leaves,holiday_id:0 +msgid "Holiday" +msgstr "રજાનો દિવસ" + +#. module: hr_holidays +#: field:hr.holidays,case_id:0 field:hr.holidays.status,categ_id:0 +msgid "Meeting" +msgstr "સભા" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Ivory" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.summary.dept,holiday_type:0 +#: selection:hr.holidays.summary.employee,holiday_type:0 +msgid "Both Validated and Confirmed" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.status,leaves_taken:0 +msgid "Leaves Already Taken" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,user_id:0 +#: field:hr.holidays.remaining.leaves.user,user_id:0 +msgid "User" +msgstr "વપરાશકર્તા" + +#. module: hr_holidays +#: sql_constraint:hr.holidays:0 +msgid "The start date must be before the end date !" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.status,active:0 +msgid "Active" +msgstr "સક્રિય" + +#. module: hr_holidays +#: model:ir.actions.act_window,name:hr_holidays.action_view_holiday_status_manager_board +msgid "Leaves To Validate" +msgstr "" + +#. module: hr_holidays +#: constraint:hr.employee:0 +msgid "Error ! You cannot create recursive Hierarchy of Employees." +msgstr "" + +#. module: hr_holidays +#: view:hr.employee:0 field:hr.employee,remaining_leaves:0 +msgid "Remaining Legal Leaves" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,manager_id:0 +msgid "First Approval" +msgstr "" + +#. module: hr_holidays +#: model:hr.holidays.status,name:hr_holidays.holiday_status_unpaid +msgid "Unpaid" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: model:ir.actions.act_window,name:hr_holidays.open_company_allocation +#: model:ir.ui.menu,name:hr_holidays.menu_open_company_allocation +msgid "Leaves Summary" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Holidays during last month" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/wizard/hr_holidays_summary_department.py:44 +#, python-format +msgid "Error" +msgstr "ભૂલ" + +#. module: hr_holidays +#: view:hr.employee:0 +msgid "Assign Leaves" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Blue" +msgstr "આછો વાદળી" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "My Department Leaves" +msgstr "" + +#. module: hr_holidays +#: field:hr.employee,current_leave_state:0 +msgid "Current Leave Status" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,type:0 +msgid "Request Type" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,active:0 +msgid "" +"If the active field is set to false, it will allow you to hide the leave " +"type without removing it." +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.status:0 +msgid "Misc" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "General" +msgstr "સામાન્ય" + +#. module: hr_holidays +#: model:hr.holidays.status,name:hr_holidays.holiday_status_comp +msgid "Compensatory Days" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 field:hr.holidays,notes:0 +msgid "Reasons" +msgstr "" + +#. module: hr_holidays +#: model:ir.actions.act_window,name:hr_holidays.action_hr_available_holidays_report +#: model:ir.ui.menu,name:hr_holidays.menu_hr_available_holidays_report_tree +msgid "Leaves Analysis" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.summary.dept:0 view:hr.holidays.summary.employee:0 +msgid "Cancel" +msgstr "રદ કરો" + +#. module: hr_holidays +#: help:hr.holidays.status,color_name:0 +msgid "" +"This color will be used in the leaves summary located in Reporting\\Leaves " +"by Departement" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 selection:hr.holidays.summary.dept,holiday_type:0 +#: selection:hr.holidays.summary.employee,holiday_type:0 +msgid "Validated" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 selection:hr.holidays,type:0 +msgid "Allocation Request" +msgstr "" + +#. module: hr_holidays +#: model:ir.model,name:hr_holidays.model_resource_calendar_leaves +msgid "Leave Detail" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,double_validation:0 +#: field:hr.holidays.status,double_validation:0 +msgid "Apply Double Validation" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays.summary.dept:0 view:hr.holidays.summary.employee:0 +msgid "Print" +msgstr "છાપો" + +#. module: hr_holidays +#: view:hr.holidays.status:0 +msgid "Details" +msgstr "વિગતો" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: model:ir.actions.act_window,name:hr_holidays.action_hr_holidays_leaves_by_month +msgid "My Leaves" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays,holiday_type:0 +msgid "By Employee Category" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 selection:hr.holidays,type:0 +msgid "Leave Request" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,name:0 +msgid "Description" +msgstr "વર્ણન" + +#. module: hr_holidays +#: model:hr.holidays.status,name:hr_holidays.holiday_status_cl +msgid "Legal Leaves" +msgstr "" + +#. module: hr_holidays +#: sql_constraint:hr.holidays:0 +msgid "The number of days must be greater than 0 !" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays,holiday_type:0 +msgid "" +"By Employee: Allocation/Request for individual Employee, By Employee " +"Category: Allocation/Request for group of employees in category" +msgstr "" + +#. module: hr_holidays +#: code:addons/hr_holidays/hr_holidays.py:199 +#, python-format +msgid "You cannot delete a leave which is not in draft state !" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Search Leave" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.summary.employee,holiday_type:0 +msgid "Select Holiday Type" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.remaining.leaves.user,no_of_leaves:0 +msgid "Remaining leaves" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.summary.dept,depts:0 +msgid "Department(s)" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,manager_id2:0 +msgid "Second Approval" +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays,date_to:0 +msgid "End Date" +msgstr "" + +#. module: hr_holidays +#: model:hr.holidays.status,name:hr_holidays.holiday_status_sl +msgid "Sick Leaves" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,limit:0 +msgid "" +"If you tick this checkbox, the system will allow, for this section, the " +"employees to take more leaves than the available ones." +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays.status,leaves_taken:0 +msgid "" +"This value is given by the sum of all holidays requests with a negative " +"value." +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Violet" +msgstr "" + +#. module: hr_holidays +#: model:ir.actions.act_window,help:hr_holidays.hr_holidays_leaves_assign_legal +msgid "" +"You can assign remaining Legal Leaves for each employee, OpenERP will " +"automatically create and validate allocation requests." +msgstr "" + +#. module: hr_holidays +#: field:hr.holidays.status,max_leaves:0 +msgid "Maximum Allowed" +msgstr "" + +#. module: hr_holidays +#: help:hr.holidays,manager_id2:0 +msgid "" +"This area is automaticly filled by the user who validate the leave with " +"second level (If Leave type need second validation)" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Mode" +msgstr "" + +#. module: hr_holidays +#: model:ir.model,name:hr_holidays.model_hr_holidays_summary_dept +msgid "HR Holidays Summary Report By Department" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Approve" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 field:hr.holidays,date_from:0 +msgid "Start Date" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +#: model:ir.actions.act_window,name:hr_holidays.open_allocation_holidays +#: model:ir.ui.menu,name:hr_holidays.menu_open_allocation_holidays +msgid "Allocation Requests" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Yellow" +msgstr "" + +#. module: hr_holidays +#: selection:hr.holidays.status,color_name:0 +msgid "Light Pink" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Manager" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "To Confirm" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "Year" +msgstr "" + +#. module: hr_holidays +#: view:hr.holidays:0 +msgid "To Approve" +msgstr "" diff --git a/addons/hr_payroll/hr_payroll_view.xml b/addons/hr_payroll/hr_payroll_view.xml index 93e875b61be..f2626670523 100644 --- a/addons/hr_payroll/hr_payroll_view.xml +++ b/addons/hr_payroll/hr_payroll_view.xml @@ -261,17 +261,14 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Confirm" name="hr_verify_sheet" states="draft"/> <button string="Refund" name="refund_sheet" states="confirm,done" type='object'/> <button string="Set to Draft" name="draft" states="cancel"/> <button string="Compute Sheet" name="compute_sheet" type="object" states="draft"/> <button string="Cancel" name="cancel_sheet" states="draft,hr_check,confirm,verify"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,confirm"/> + </header> <sheet string="Payslip" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="employee_id" on_change="onchange_employee_id(date_from, date_to, employee_id, contract_id)"/> @@ -725,15 +722,12 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="close_payslip_run" type="object" string="Close" states="draft"/> <button name="%(action_hr_payslip_by_employees)d" type="action" states="draft" string="Generate Payslips" /> <button string="Set to Draft" name="draft_payslip_run" type="object" states="close"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar"/> + </header> <sheet string="Payslips Batches" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="name" colspan="4"/> diff --git a/addons/hr_payroll_account/i18n/lv.po b/addons/hr_payroll_account/i18n/lv.po new file mode 100644 index 00000000000..dd9e84c71a1 --- /dev/null +++ b/addons/hr_payroll_account/i18n/lv.po @@ -0,0 +1,140 @@ +# Latvian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-01 07:35+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Latvian <lv@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: hr_payroll_account +#: field:hr.payslip,move_id:0 +msgid "Accounting Entry" +msgstr "" + +#. module: hr_payroll_account +#: field:hr.salary.rule,account_tax_id:0 +msgid "Tax Code" +msgstr "" + +#. module: hr_payroll_account +#: field:hr.payslip,journal_id:0 +#: field:hr.payslip.run,journal_id:0 +msgid "Expense Journal" +msgstr "" + +#. module: hr_payroll_account +#: code:addons/hr_payroll_account/hr_payroll_account.py:157 +#: code:addons/hr_payroll_account/hr_payroll_account.py:173 +#, python-format +msgid "Adjustment Entry" +msgstr "" + +#. module: hr_payroll_account +#: field:hr.contract,analytic_account_id:0 +#: field:hr.salary.rule,analytic_account_id:0 +msgid "Analytic Account" +msgstr "" + +#. module: hr_payroll_account +#: model:ir.model,name:hr_payroll_account.model_hr_salary_rule +msgid "hr.salary.rule" +msgstr "" + +#. module: hr_payroll_account +#: model:ir.model,name:hr_payroll_account.model_hr_payslip_run +msgid "Payslip Batches" +msgstr "" + +#. module: hr_payroll_account +#: field:hr.contract,journal_id:0 +msgid "Salary Journal" +msgstr "" + +#. module: hr_payroll_account +#: model:ir.model,name:hr_payroll_account.model_hr_payslip +msgid "Pay Slip" +msgstr "Algas Lapa" + +#. module: hr_payroll_account +#: constraint:hr.payslip:0 +msgid "Payslip 'Date From' must be before 'Date To'." +msgstr "" + +#. module: hr_payroll_account +#: help:hr.payslip,period_id:0 +msgid "Keep empty to use the period of the validation(Payslip) date." +msgstr "" + +#. module: hr_payroll_account +#: code:addons/hr_payroll_account/hr_payroll_account.py:171 +#, python-format +msgid "" +"The Expense Journal \"%s\" has not properly configured the Debit Account!" +msgstr "" + +#. module: hr_payroll_account +#: code:addons/hr_payroll_account/hr_payroll_account.py:155 +#, python-format +msgid "" +"The Expense Journal \"%s\" has not properly configured the Credit Account!" +msgstr "" + +#. module: hr_payroll_account +#: field:hr.salary.rule,account_debit:0 +msgid "Debit Account" +msgstr "" + +#. module: hr_payroll_account +#: code:addons/hr_payroll_account/hr_payroll_account.py:102 +#, python-format +msgid "Payslip of %s" +msgstr "" + +#. module: hr_payroll_account +#: model:ir.model,name:hr_payroll_account.model_hr_contract +msgid "Contract" +msgstr "" + +#. module: hr_payroll_account +#: constraint:hr.contract:0 +msgid "Error! contract start-date must be lower then contract end-date." +msgstr "" + +#. module: hr_payroll_account +#: field:hr.payslip,period_id:0 +msgid "Force Period" +msgstr "" + +#. module: hr_payroll_account +#: field:hr.salary.rule,account_credit:0 +msgid "Credit Account" +msgstr "" + +#. module: hr_payroll_account +#: model:ir.model,name:hr_payroll_account.model_hr_payslip_employees +msgid "Generate payslips for all selected employees" +msgstr "" + +#. module: hr_payroll_account +#: code:addons/hr_payroll_account/hr_payroll_account.py:155 +#: code:addons/hr_payroll_account/hr_payroll_account.py:171 +#, python-format +msgid "Configuration Error!" +msgstr "" + +#. module: hr_payroll_account +#: view:hr.contract:0 +#: view:hr.salary.rule:0 +msgid "Accounting" +msgstr "" diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py index 4a29befbfaf..b83a482e1c1 100644 --- a/addons/hr_recruitment/__openerp__.py +++ b/addons/hr_recruitment/__openerp__.py @@ -37,7 +37,14 @@ system to store and search in your CV base. 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', 'images': ['images/hr_recruitment_analysis.jpeg','images/hr_recruitment_applicants.jpeg'], - 'depends': ['decimal_precision', 'hr', 'survey', 'crm', 'fetchmail'], + 'depends': [ + 'base_status', + 'decimal_precision', + 'hr', + 'survey', + 'crm', + 'fetchmail', + ], 'update_xml': [ 'wizard/hr_recruitment_phonecall_view.xml', 'wizard/hr_recruitment_employee_hired.xml', diff --git a/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml b/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml index 8af4b0f8553..e9054416eea 100644 --- a/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml +++ b/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml @@ -12,7 +12,7 @@ <field name="job_id"/> <field name="partner_name"/> <field name="stage_id"/> - <field name="state"/> + <field name="state" groups="base.group_no_one"/> </tree> </field> </record> diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index 505509058e1..73cec8fccf2 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -19,6 +19,7 @@ # ############################################################################## +from base_status.base_stage import base_stage import time from datetime import datetime, timedelta @@ -57,8 +58,6 @@ class hr_recruitment_source(osv.osv): _columns = { 'name': fields.char('Source Name', size=64, required=True, translate=True), } -hr_recruitment_source() - class hr_recruitment_stage(osv.osv): """ Stage of HR Recruitment """ @@ -69,12 +68,15 @@ class hr_recruitment_stage(osv.osv): 'name': fields.char('Name', size=64, required=True, translate=True), 'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of stages."), 'department_id':fields.many2one('hr.department', 'Specific to a Department', help="Stages of the recruitment process may be different per department. If this stage is common to all departments, keep tempy this field."), - 'requirements': fields.text('Requirements') + 'state': fields.selection(AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change regarding the selected stage. Example, a stage is related to the state 'Close', when your document reach this stage, it will be automatically closed."), + 'fold': fields.boolean('Hide in views if empty', help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."), + 'requirements': fields.text('Requirements'), } _defaults = { 'sequence': 1, + 'state': 'draft', + 'fold': False, } -hr_recruitment_stage() class hr_recruitment_degree(osv.osv): """ Degree of HR Recruitment """ @@ -90,14 +92,60 @@ class hr_recruitment_degree(osv.osv): _sql_constraints = [ ('name_uniq', 'unique (name)', 'The name of the Degree of Recruitment must be unique!') ] -hr_recruitment_degree() -class hr_applicant(crm.crm_case, osv.osv): +class hr_applicant(base_stage, osv.Model): _name = "hr.applicant" _description = "Applicant" _order = "id desc" _inherit = ['ir.needaction_mixin', 'mail.thread'] + def _get_default_department_id(self, cr, uid, context=None): + """ Gives default department by checking if present in the context """ + return (self._resolve_department_id_from_context(cr, uid, context=context) or False) + + def _get_default_stage_id(self, cr, uid, context=None): + """ Gives default stage_id """ + department_id = self._get_default_department_id(cr, uid, context=context) + return self.stage_find(cr, uid, [], department_id, [('state', '=', 'draft')], context=context) + + def _resolve_department_id_from_context(self, cr, uid, context=None): + """ Returns ID of department based on the value of 'default_department_id' + context key, or None if it cannot be resolved to a single + department. + """ + if context is None: + context = {} + if type(context.get('default_department_id')) in (int, long): + return context.get('default_department_id') + if isinstance(context.get('default_department_id'), basestring): + department_name = context['default_department_id'] + department_ids = self.pool.get('hr.department').name_search(cr, uid, name=department_name, context=context) + if len(department_ids) == 1: + return int(department_ids[0][0]) + return None + + def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): + access_rights_uid = access_rights_uid or uid + stage_obj = self.pool.get('hr.recruitment.stage') + order = stage_obj._order + # lame hack to allow reverting search, should just work in the trivial case + if read_group_order == 'stage_id desc': + order = "%s desc" % order + # retrieve section_id from the context and write the domain + # - ('id', 'in', 'ids'): add columns that should be present + # - OR ('department_id', '=', False), ('fold', '=', False): add default columns that are not folded + # - OR ('department_id', 'in', department_id), ('fold', '=', False) if department_id: add department columns that are not folded + department_id = self._resolve_department_id_from_context(cr, uid, context=context) + search_domain = [] + if department_id: + search_domain += ['|', '&', ('department_id', '=', department_id), ('fold', '=', False)] + search_domain += ['|', ('id', 'in', ids), '&', ('department_id', '=', False), ('fold', '=', False)] + stage_ids = stage_obj._search(cr, uid, search_domain, order=order, access_rights_uid=access_rights_uid, context=context) + result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context) + # restore order of the search + result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) + return result + def _compute_day(self, cr, uid, ids, fields, args, context=None): """ @param cr: the current row, from the database cursor, @@ -134,7 +182,6 @@ class hr_applicant(crm.crm_case, osv.osv): _columns = { 'name': fields.char('Name', size=128, required=True), - 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), 'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the case without removing it."), 'description': fields.text('Description'), 'email_from': fields.char('Email', size=128, help="These people will receive email."), @@ -143,12 +190,15 @@ class hr_applicant(crm.crm_case, osv.osv): 'partner_id': fields.many2one('res.partner', 'Partner'), 'create_date': fields.datetime('Creation Date', readonly=True, select=True), 'write_date': fields.datetime('Update Date', readonly=True), - 'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage'), - 'state': fields.selection(AVAILABLE_STATES, 'Status', size=16, readonly=True, - help='The state is set to \'Draft\', when a case is created.\ - \nIf the case is in progress the state is set to \'Open\'.\ - \nWhen the case is over, the state is set to \'Done\'.\ - \nIf the case needs to be reviewed then the state is set to \'Pending\'.'), + 'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage', + domain="['|', ('department_id', '=', department_id), ('department_id', '=', False)]"), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=AVAILABLE_STATES, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If the case needs to be reviewed then the state is \ + set to \'Pending\'.'), 'company_id': fields.many2one('res.company', 'Company'), 'user_id': fields.many2one('res.users', 'Responsible'), # Applicant Columns @@ -169,7 +219,6 @@ class hr_applicant(crm.crm_case, osv.osv): 'partner_mobile': fields.char('Mobile', size=32), 'type_id': fields.many2one('hr.recruitment.degree', 'Degree'), 'department_id': fields.many2one('hr.department', 'Department'), - 'state': fields.selection(AVAILABLE_STATES, 'Status', size=16, readonly=True), 'survey': fields.related('job_id', 'survey_id', type='many2one', relation='survey', string='Survey'), 'response': fields.integer("Response"), 'reference': fields.char('Refered By', size=128), @@ -185,33 +234,19 @@ class hr_applicant(crm.crm_case, osv.osv): _defaults = { 'active': lambda *a: 1, - 'user_id': lambda self, cr, uid, context: uid, - 'email_from': crm.crm_case. _get_default_email, - 'state': lambda *a: 'draft', + 'user_id': lambda s, cr, uid, c: uid, + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), + 'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c), + 'department_id': lambda s, cr, uid, c: s._get_default_department_id(cr, uid, c), 'priority': lambda *a: '', 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c), 'color': 0, } - def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): - access_rights_uid = access_rights_uid or uid - stage_obj = self.pool.get('hr.recruitment.stage') - order = stage_obj._order - if read_group_order == 'stage_id desc': - # lame hack to allow reverting search, should just work in the trivial case - order = "%s desc" % order - stage_ids = stage_obj._search(cr, uid, ['|',('id','in',ids),('department_id','=',False)], order=order, - access_rights_uid=access_rights_uid, context=context) - result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context) - # restore order of the search - result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) - return result - _group_by_full = { 'stage_id': _read_group_stage_ids } - def onchange_job(self,cr, uid, ids, job, context=None): result = {} @@ -229,47 +264,33 @@ class hr_applicant(crm.crm_case, osv.osv): stage_id = stage_ids and stage_ids[0] or False return {'value': {'stage_id': stage_id}} - def stage_previous(self, cr, uid, ids, context=None): - """This function computes previous stage for case from its current stage - using available stage for that case type - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param ids: List of case IDs - @param context: A standard dictionary for contextual values""" - stage_obj = self.pool.get('hr.recruitment.stage') - for case in self.browse(cr, uid, ids, context=context): - department = (case.department_id.id or False) - st = case.stage_id.id or False - stage_ids = stage_obj.search(cr, uid, ['|',('department_id','=',department),('department_id','=',False)], context=context) - if st and stage_ids.index(st): - self.write(cr, uid, [case.id], {'stage_id': stage_ids[stage_ids.index(st)-1]}, context=context) - else: - self.write(cr, uid, [case.id], {'stage_id': False}, context=context) - return True - - def stage_next(self, cr, uid, ids, context=None): - """This function computes next stage for case from its current stage - using available stage for that case type - @param self: The object pointer - @param cr: the current row, from the database cursor, - @param uid: the current user’s ID for security checks, - @param ids: List of case IDs - @param context: A standard dictionary for contextual values""" - stage_obj = self.pool.get('hr.recruitment.stage') - for case in self.browse(cr, uid, ids, context=context): - department = (case.department_id.id or False) - st = case.stage_id.id or False - stage_ids = stage_obj.search(cr, uid, ['|',('department_id','=',department),('department_id','=',False)], context=context) - val = False - if st and len(stage_ids) != stage_ids.index(st)+1: - val = stage_ids[stage_ids.index(st)+1] - elif (not st) and stage_ids: - val = stage_ids[0] - else: - val = False - self.write(cr, uid, [case.id], {'stage_id': val}, context=context) - return True + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the lead: + - department_id: if set, stages must belong to this section or + be a default case + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + department_ids = [] + if section_id: + department_ids.append(section_id) + for case in cases: + if case.department_id: + department_ids.append(case.department_id.id) + # OR all section_ids and OR with case_default + search_domain = [] + if department_ids: + search_domain += ['|', ('department_id', 'in', department_ids)] + search_domain.append(('department_id', '=', False)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('hr.recruitment.stage').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] + return False def action_makeMeeting(self, cr, uid, ids, context=None): """ @@ -474,12 +495,6 @@ class hr_applicant(crm.crm_case, osv.osv): """ return self.set_priority(cr, uid, ids, '3') - def write(self, cr, uid, ids, vals, context=None): - if 'stage_id' in vals and vals['stage_id']: - stage = self.pool.get('hr.recruitment.stage').browse(cr, uid, vals['stage_id'], context=context) - self.message_append_note(cr, uid, ids, body=_("Stage changed to <b>%s</b>.") % stage.name, context=context) - return super(hr_applicant,self).write(cr, uid, ids, vals, context=context) - # ------------------------------------------------------- # OpenChatter methods and notifications # ------------------------------------------------------- @@ -497,7 +512,13 @@ class hr_applicant(crm.crm_case, osv.osv): if obj.state == 'draft' and obj.user_id: result[obj.id] = [obj.user_id.id] return result - + + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + if not stage_id: return True + stage_name = self.pool.get('hr.recruitment.stage').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to <b>%s</b>.") % (stage_name), context=context) + def case_get_note_msg_prefix(self, cr, uid, id, context=None): return 'Applicant' @@ -529,7 +550,6 @@ class hr_applicant(crm.crm_case, osv.osv): message = _("Applicant has been <b>created</b>.") return self.message_append_note(cr, uid, ids, body=message, context=context) -hr_applicant() class hr_job(osv.osv): _inherit = "hr.job" @@ -537,6 +557,6 @@ class hr_job(osv.osv): _columns = { 'survey_id': fields.many2one('survey', 'Interview Form', help="Choose an interview form for this job position and you will be able to print/answer this interview from all applicants who apply for this job"), } -hr_job() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml index d6cb5952d38..8cbebda5f1f 100644 --- a/addons/hr_recruitment/hr_recruitment_data.xml +++ b/addons/hr_recruitment/hr_recruitment_data.xml @@ -1,7 +1,9 @@ <?xml version="1.0"?> <openerp> +<!-- <data noupdate="1"> - +--> +<data> <!-- HR Recruitment Source --> @@ -37,30 +39,36 @@ <field name="name">Doctoral Degree</field> <field name="sequence">4</field> </record> - <record model="hr.recruitment.stage" id="stage_job1"> <field name="name">Initial Qualification</field> + <field name="state">draft</field> <field name="sequence">1</field> </record> <record model="hr.recruitment.stage" id="stage_job2"> <field name="name">First Interview</field> + <field name="state">open</field> <field name="sequence">2</field> </record> <record model="hr.recruitment.stage" id="stage_job3"> <field name="name">Second Interview</field> + <field name="state">open</field> <field name="sequence">3</field> </record> <record model="hr.recruitment.stage" id="stage_job4"> <field name="name">Contract Proposed</field> + <field name="state">pending</field> <field name="sequence">4</field> </record> <record model="hr.recruitment.stage" id="stage_job5"> <field name="name">Contract Signed</field> + <field name="state">done</field> <field name="sequence">5</field> </record> <record model="hr.recruitment.stage" id="stage_job6"> <field name="name">Refused</field> + <field name="state">cancel</field> <field name="sequence">6</field> + <field name="fold" eval="True"/> </record> <record id="survey_job_0" model="survey"> <field name="title">Job Survey</field> diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml index 5c8b560b380..19039fc0dc9 100644 --- a/addons/hr_recruitment/hr_recruitment_view.xml +++ b/addons/hr_recruitment/hr_recruitment_view.xml @@ -50,8 +50,6 @@ <field name="partner_phone"/> <field name="job_id"/> <field name="stage_id"/> - <button name="stage_previous" string="Previous" states="open,pending" type="object" icon="gtk-go-back"/> - <button name="stage_next" string="Next" states="open,pending" type="object" icon="gtk-go-forward"/> <field name="title_action" invisible="context.get('invisible_next_action', True)"/> <field name="date_action" invisible="context.get('invisible_next_date', True)"/> <field name="source_id" invisible="1"/> @@ -62,9 +60,7 @@ <field name="availability" invisible="1"/> <field name="department_id" invisible="context.get('invisible_department', True)"/> <field name="user_id"/> - <field name="state"/> - <button name="case_open" string="In Progress" states="draft,pending" type="object" icon="gtk-go-forward"/> - <button name="case_pending" string="Pending" states="open" type="object" icon="gtk-media-pause"/> + <field name="state" groups="base.group_no_one"/> </tree> </field> </record> @@ -75,16 +71,23 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> - <button name="%(action_hr_recruitment_hired_employee)d" string="Hire" states="open,pending" type="action"/> - <button name="case_open" string="In Progress" states="draft,pending" type="object"/> - <button name="case_pending" string="Pending" states="open" type="object"/> - <button name="case_reset" string="Reset to New" states="done,cancel" type="object"/> - <button name="case_cancel" string="Refuse" states="draft,open,pending" type="object"/> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> - </div> - </div> + <header> + <button name="%(action_hr_recruitment_hired_employee)d" string="Hire" type="action" + states="open,pending"/> + <button name="case_open" string="Open" type="object" + states="draft,pending"/> + <button name="case_pending" string="Pending" type="object" + states="open"/> + <button name="case_reset" string="Reset to New" type="object" + states="done,cancel"/> + <button name="case_cancel" string="Refuse" type="object" + states="draft,open,pending"/> + <button name="stage_previous" string="Previous" type="object" + states="open" icon="gtk-go-back"/> + <button name="stage_next" string="Next" type="object" + states="open" icon="gtk-go-forward"/> + <field name="stage_id" widget="statusbar"/> + </header> <sheet string="Jobs - Recruitment Form" layout="auto"> <group colspan="4" col="4"> <field name="name" string="Subject"/> @@ -96,11 +99,7 @@ <field name="user_id"/> <field name="job_id" on_change="onchange_job(job_id)"/> <field name="department_id" widget="selection" on_change="onchange_department_id(department_id)"/> - <group colspan="2" col="4"> - <field name="stage_id" domain="['|',('department_id','=',department_id),('department_id','=',False)]"/> - <button name="stage_previous" string="" type="object" icon="gtk-go-back"/> - <button icon="gtk-go-forward" string="" name="stage_next" type="object"/> - </group> + <field name="state" groups="base.group_no_one"/> <field name="date_action"/> <group colspan="2" col="8"> <field name="title_action"/> @@ -139,6 +138,13 @@ <field name="source_id"/> <field name="reference"/> </group> + <group col="2" colspan="2"> + <separator colspan="2" string="Dates"/> + <field name="create_date"/> + <field name="write_date"/> + <field name="date_closed"/> + <field name="date_open"/> + </group> </page> <page string="Notes"> <field name="description" nolabel="1" colspan="4"/> @@ -146,7 +152,7 @@ </notebook> </sheet> <div class="oe_form_bottom"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> @@ -241,7 +247,7 @@ <field name="arch" type="xml"> <kanban default_group_by="stage_id"> <field name="color"/> - <field name="state"/> + <field name="state" groups="base.group_no_one"/> <field name="priority"/> <field name="survey"/> <field name="user_id"/> @@ -360,6 +366,7 @@ <field name="sequence" invisible="1"/> <field name="name"/> <field name="department_id"/> + <field name="state"/> </tree> </field> </record> @@ -377,6 +384,7 @@ <field name="name" select="1"/> <field name="department_id"/> <field name="sequence"/> + <field name="state"/> </group> <separator string="Requirements" colspan="4"/> <field name="requirements" nolabel="1" colspan="4"/> diff --git a/addons/hr_recruitment/test/recruitment_process.yml b/addons/hr_recruitment/test/recruitment_process.yml index e856747ed99..38b84fccab2 100644 --- a/addons/hr_recruitment/test/recruitment_process.yml +++ b/addons/hr_recruitment/test/recruitment_process.yml @@ -1,7 +1,7 @@ - In Order to test process of Recruitment, - - Applicant interested in job position. so He send resume by email. + An applicant is interested in the job position. So he sends a resume by email. - !python {model: mail.thread}: | import addons @@ -9,28 +9,43 @@ request_message = request_file.read() self.message_process(cr, uid, 'hr.applicant', request_message) - - After getting the mail, I check details of new applicant. + After getting the mail, I check the details of the new applicant. - !python {model: hr.applicant}: | applicant_ids = self.search(cr, uid, [('email_from','=', 'Mr. Richard Anderson <Richard_Anderson@yahoo.com>')]) assert applicant_ids, "Applicant is not created after getting the mail" applicant = self.browse(cr, uid, applicant_ids[0], context=context) resume_ids = self.pool.get('ir.attachment').search(cr, uid, [('datas_fname','=','resume.doc'),('res_model','=',self._name),('res_id','=',applicant.id)]) - assert applicant.name == "Application for the post of Jr.application Programmer.", "Subject does not match" - assert applicant.state == "draft" - assert len(resume_ids), "Resume does not attached." + assert applicant.name == "Application for the post of Jr.application Programmer.", "Applicant name does not match." + assert applicant.stage_id.id == ref('hr_recruitment.stage_job1'), "Stage should be 'Initial qualification' and is '%s'." % (applicant.stage_id.name) + assert applicant.state == "draft", "Applicant state should be 'draft'." + assert len(resume_ids), "Resume is not attached." - - I refuse applicant for the Recruitment. + I refuse the applicant (hr_case_programmer) - !python {model: hr.applicant}: | - self.case_close(cr, uid, [ref("hr_case_programmer")]) + self.case_cancel(cr, uid, [ref("hr_case_programmer")]) - - I open applicant for the Recruitment. + I check the details of the refused applicant. +- + !python {model: hr.applicant}: | + applicant = self.browse(cr, uid, ref("hr_case_programmer"), context=context) + assert applicant.stage_id.id == ref('hr_recruitment.stage_job6'), "Stage should be 'Refused' and is %s." % (applicant.stage_id.name) + assert applicant.state == 'cancel', "Applicant is not in 'cancel' state." +- + I reset and re-open the previously refused applicant. - !python {model: hr.applicant}: | self.case_reset(cr, uid, [ref("hr_case_programmer")]) self.case_open(cr, uid, [ref("hr_case_programmer")]) - + I check the details of the re-opened applicant. +- + !python {model: hr.applicant}: | + applicant = self.browse(cr, uid, ref("hr_case_programmer"), context=context) + assert applicant.stage_id.id == ref('hr_recruitment.stage_job2'), "Stage should be 'First interview' and is '%s'." % (applicant.stage_id.name) + assert applicant.state == "open", "Applicant state should be 'open'." +- I assign the Job position to the applicant - !python {model: hr.applicant}: | @@ -91,7 +106,7 @@ - I check that applicant is "Hired". - - !assert {model: hr.applicant, id: hr_case_programmer}: + !assert {model: hr.applicant, id: hr_case_programmer, string: Applicant state is done}: - state == 'done' - I do not give employment to the hired the applicant. diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml index 43ca7a4004e..f9486982432 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml @@ -23,17 +23,14 @@ </group> </group> <xpath expr="/form/sheet" position='before'> - <div class="oe_form_topbar"> + <header> <button name="set_pending" string="Pending" type="object" states="open"/> <button name="set_close" string="Close" type="object" states="open,pending"/> <button name="set_open" string="Re-open project" type="object" states="pending,cancelled,close,draft"/> <button name="set_cancel" string="Cancel" type="object" states="open,pending"/> - <div class="oe_right"> - <field name="state" readonly="1" widget="statusbar" nolabel="1" + <field name="state" readonly="1" widget="statusbar" statusbar_visible="open,pending,close" statusbar_colors='{"pending":"red", "template":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + </header> </xpath> </field> </record> diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml index aa815df5337..afd04aed1e1 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml @@ -61,16 +61,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="button_confirm" states="draft" string="Submited to Manager" type="object"/> <button name="done" states="confirm" string="Approve" type="workflow" groups="base.group_hr_user"/> <button name="action_set_to_draft" states="done" string="Set to Draft" type="object"/> <button name="cancel" states="confirm" string="Refuse" type="workflow" groups="base.group_hr_user"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="new,confirm,done"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="new,confirm,done"/> + </header> <sheet string="Timesheet" layout="auto"> <group colspan="4" col="6" class="oe_form_header"> <field name="employee_id" on_change="onchange_employee_id(employee_id)"/> diff --git a/addons/hr_timesheet_sheet/i18n/zh_CN.po b/addons/hr_timesheet_sheet/i18n/zh_CN.po index b912c7eabcd..f49530fecb1 100644 --- a/addons/hr_timesheet_sheet/i18n/zh_CN.po +++ b/addons/hr_timesheet_sheet/i18n/zh_CN.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-13 04:47+0000\n" -"Last-Translator: Jeff Wang <wjfonhand@hotmail.com>\n" +"PO-Revision-Date: 2012-05-29 05:42+0000\n" +"Last-Translator: ccdos <Unknown>\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-02-14 05:44+0000\n" -"X-Generator: Launchpad (build 14781)\n" +"X-Launchpad-Export-Date: 2012-05-30 05:21+0000\n" +"X-Generator: Launchpad (build 15316)\n" #. module: hr_timesheet_sheet #: field:hr.analytic.timesheet,sheet_id:0 field:hr.attendance,sheet_id:0 @@ -61,7 +61,7 @@ msgstr "本年的计工单" #. module: hr_timesheet_sheet #: model:process.transition,name:hr_timesheet_sheet.process_transition_tasktimesheet0 msgid "Task timesheet" -msgstr "工作记工单" +msgstr "工作计工单" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 @@ -78,7 +78,7 @@ msgstr "请核实这表的总差异少于 %.2f !" #. module: hr_timesheet_sheet #: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0 msgid "March" -msgstr "3月" +msgstr "" #. module: hr_timesheet_sheet #: view:timesheet.report:0 field:timesheet.report,cost:0 @@ -105,7 +105,7 @@ msgstr "公司" #: model:process.node,name:hr_timesheet_sheet.process_node_timesheet0 #: view:timesheet.report:0 msgid "Timesheet" -msgstr "记工单" +msgstr "计工单" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 @@ -120,7 +120,7 @@ msgstr "日期到" #. module: hr_timesheet_sheet #: model:process.node,note:hr_timesheet_sheet.process_node_invoiceonwork0 msgid "Based on the timesheet" -msgstr "根据记工单" +msgstr "根据计工单" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 view:timesheet.report:0 @@ -173,7 +173,7 @@ msgstr "拒绝" #, python-format msgid "" "You cannot enter an attendance date outside the current timesheet dates!" -msgstr "您不能输入一个超过当前记工单日期的考勤日期!" +msgstr "您不能输入一个超过当前计工单日期的考勤日期!" #. module: hr_timesheet_sheet #: model:ir.actions.act_window,help:hr_timesheet_sheet.action_hr_timesheet_current_open @@ -185,8 +185,8 @@ msgid "" "the user and can be validated by his manager. If required, as defined on the " "project, you can generate the invoices based on the timesheet." msgstr "" -"用\"我的记工单\"菜单开启您的记工单所以您能在系统预定你的活动。用相同方式,您能记录您的考勤(签入/签出)同时记录在不同项目的工作时间。在公司定义的期末" -",确认用户的记工单和经由经理使其生效。如果需要,可以定义为一个项目,你能给这记工单开发票。" +"用\"我的计工单\"菜单开启您的计工单所以您能在系统预定你的活动。用相同方式,您能记录您的考勤(签入/签出)同时记录在不同项目的工作时间。在公司定义的期末" +",确认用户的记工单和经由经理使其生效。如果需要,可以定义为一个项目,你能给这计工单开发票。" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet.day:0 @@ -227,7 +227,7 @@ msgstr "警告!" #. module: hr_timesheet_sheet #: model:process.node,note:hr_timesheet_sheet.process_node_attendance0 msgid "Employee's timesheet entry" -msgstr "员工记工单" +msgstr "员工计工单" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 field:hr.timesheet.report,account_id:0 @@ -259,7 +259,7 @@ msgstr " 月份 " #: model:ir.ui.menu,name:hr_timesheet_sheet.menu_act_hr_timesheet_sheet_form #: view:res.company:0 msgid "Timesheets" -msgstr "记工单" +msgstr "计工单" #. module: hr_timesheet_sheet #: model:process.node,name:hr_timesheet_sheet.process_node_confirmedtimesheet0 @@ -282,7 +282,7 @@ msgstr "确认" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,timesheet_ids:0 msgid "Timesheet lines" -msgstr "记工单明细" +msgstr "计工单明细" #. module: hr_timesheet_sheet #: constraint:res.company:0 @@ -343,7 +343,7 @@ msgstr "总时间" #: view:hr_timesheet_sheet.sheet:0 #: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_2_hr_analytic_timesheet msgid "Timesheet Lines" -msgstr "记工单明细" +msgstr "计工单明细" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 @@ -370,7 +370,7 @@ msgstr "无效操作!" #. module: hr_timesheet_sheet #: model:process.transition,note:hr_timesheet_sheet.process_transition_validatetimesheet0 msgid "The project manager validates the timesheets." -msgstr "项目经理审核记工单" +msgstr "项目经理审核计工单" #. module: hr_timesheet_sheet #: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0 @@ -403,7 +403,7 @@ msgstr "# 数量" #: view:hr_timesheet_sheet.sheet.day:0 #: field:hr_timesheet_sheet.sheet.day,total_timesheet:0 msgid "Total Timesheet" -msgstr "总记工单" +msgstr "总计工单" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 @@ -418,7 +418,7 @@ msgstr "签入" #. module: hr_timesheet_sheet #: view:timesheet.report:0 field:timesheet.report,total_timesheet:0 msgid "#Total Timesheet" -msgstr "# 总记工单" +msgstr "# 总计工单" #. module: hr_timesheet_sheet #: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_current_open @@ -451,7 +451,7 @@ msgstr "要为员工创建计工单,你要给该员工指定一个产品,例 #. module: hr_timesheet_sheet #: view:hr.timesheet.current.open:0 msgid "It will open your current timesheet" -msgstr "它将开启您当前记工单" +msgstr "它将开启您当前计工单" #. module: hr_timesheet_sheet #: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:241 @@ -504,12 +504,12 @@ msgstr "开发票" msgid "" "The timesheet line represents the time spent by the employee on a specific " "service provided." -msgstr "记工单明细代表员工在特定服务所花费的时间。" +msgstr "计工单明细代表员工在特定服务所花费的时间。" #. module: hr_timesheet_sheet #: constraint:hr_timesheet_sheet.sheet:0 msgid "You must select a Current date which is in the timesheet dates !" -msgstr "您选择的当前日期必须要在记工单里!" +msgstr "您选择的当前日期必须要在计工单里!" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,name:0 @@ -523,7 +523,7 @@ msgid "" "in the system. It allows you to have a full overview of entries done by " "your employees. You can group them by specific selection criteria thanks to " "the search tool." -msgstr "在系统里这报表分析创建的记工单,它可以使您一览您的员工的工作。您可以在搜索工具选择具体的标准来分组。" +msgstr "在系统里这报表分析创建的计工单,它可以使您一览您的员工的工作。您可以在搜索工具选择具体的标准来分组。" #. module: hr_timesheet_sheet #: view:timesheet.report:0 selection:timesheet.report,state:0 @@ -533,17 +533,17 @@ msgstr "草稿" #. module: hr_timesheet_sheet #: field:res.company,timesheet_max_difference:0 msgid "Timesheet allowed difference(Hours)" -msgstr "记工单允许的差异(小时)" +msgstr "计工单允许的差异(小时)" #. module: hr_timesheet_sheet #: model:process.transition,note:hr_timesheet_sheet.process_transition_invoiceontimesheet0 msgid "The invoice is created based on the timesheet." -msgstr "这发票创建基于这记工单" +msgstr "这发票创建基于这计工单" #. module: hr_timesheet_sheet #: model:process.node,name:hr_timesheet_sheet.process_node_drafttimesheetsheet0 msgid "Draft Timesheet" -msgstr "记工单草稿" +msgstr "计工单草稿" #. module: hr_timesheet_sheet #: selection:res.company,timesheet_range:0 @@ -574,13 +574,13 @@ msgstr "当前状态" #: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:646 #, python-format msgid "You cannot modify an entry in a confirmed timesheet !" -msgstr "您不能修改一个已确认的记工单!" +msgstr "您不能修改一个已确认的计工单!" #. module: hr_timesheet_sheet #: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet_account #: model:ir.model,name:hr_timesheet_sheet.model_hr_timesheet_sheet_sheet_day msgid "Timesheets by Period" -msgstr "记工单周期" +msgstr "计工单周期" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 field:hr.timesheet.report,user_id:0 @@ -592,7 +592,7 @@ msgstr "用户" #. module: hr_timesheet_sheet #: model:ir.actions.act_window,name:hr_timesheet_sheet.act_hr_timesheet_sheet_sheet_by_account msgid "Timesheet by Account" -msgstr "辅助核算项的记工单" +msgstr "辅助核算项的计工单" #. module: hr_timesheet_sheet #: field:hr.timesheet.report,date:0 field:hr_timesheet_sheet.sheet.day,name:0 @@ -612,13 +612,13 @@ msgstr "增加筛选条件" #. module: hr_timesheet_sheet #: field:res.company,timesheet_range:0 msgid "Timesheet range" -msgstr "记工单范围" +msgstr "计工单范围" #. module: hr_timesheet_sheet #: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:548 #, python-format msgid "You can not modify an entry in a confirmed timesheet !" -msgstr "您不能修改一张已确认的记工单!" +msgstr "您不能修改一张已确认的计工单!" #. module: hr_timesheet_sheet #: view:board.board:0 @@ -646,7 +646,7 @@ msgid "" "Check your timesheets for a specific period. You can also encode time spent " "on a project (i.e. an analytic account) thus generating costs in the " "analytic account concerned." -msgstr "在指定的周期检查您的记工单。您也可以在项目花费的时间进行编码(即辅助核算项)因此在这辅助核算项生成有关成本。" +msgstr "在指定的周期检查您的计工单。您也可以在项目花费的时间进行编码(即辅助核算项)因此在这辅助核算项生成有关成本。" #. module: hr_timesheet_sheet #: code:addons/hr_timesheet_sheet/hr_timesheet_sheet.py:237 @@ -728,7 +728,7 @@ msgstr "查找辅助核算项" msgid "" "Allowed difference in hours between the sign in/out and the timesheet " "computation for one sheet. Set this to 0 if you do not want any control." -msgstr "签入/签出和在一个记工单里的容许的差异小时。如果您不想这样控制设为0." +msgstr "签入/签出和在一个计工单里的容许的差异小时。如果您不想这样控制设为0." #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 field:hr_timesheet_sheet.sheet,period_ids:0 @@ -789,13 +789,13 @@ msgstr "本月的计工单" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet.account:0 msgid "Timesheet by Accounts" -msgstr "辅助核算项记工单" +msgstr "辅助核算项计工单" #. module: hr_timesheet_sheet #: code:addons/hr_timesheet_sheet/wizard/hr_timesheet_current.py:51 #, python-format msgid "Open Timesheet" -msgstr "开始的记工单" +msgstr "开始的计工单" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 view:timesheet.report:0 @@ -817,21 +817,21 @@ msgid "" "* The 'Done' state is used when users timesheet is accepted by his/her " "senior." msgstr "" -" * “草稿”状态用于一个新的和未确认的记工单。\n" -"* \"已确认\"状态用于用户确认一个记工单。\n" -"* “完成”状态用于用户记工单已被他/她的上级审核。" +" * “草稿”状态用于一个新的和未确认的计工单。\n" +"* \"已确认\"状态用于用户确认一个计工单。\n" +"* “完成”状态用于用户计工单已被他/她的上级审核。" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 #: model:ir.actions.act_window,name:hr_timesheet_sheet.action_hr_timesheet_report_stat_all #: model:ir.ui.menu,name:hr_timesheet_sheet.menu_hr_timesheet_report_all msgid "Timesheet Analysis" -msgstr "记工单分析" +msgstr "计工单分析" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 msgid "Search Timesheet" -msgstr "查找记工单" +msgstr "查找计工单" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet:0 @@ -841,7 +841,7 @@ msgstr "已确认的计工单" #. module: hr_timesheet_sheet #: model:ir.model,name:hr_timesheet_sheet.model_hr_analytic_timesheet msgid "Timesheet Line" -msgstr "记工单明细" +msgstr "计工单明细" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 field:hr.timesheet.report,product_id:0 @@ -864,7 +864,7 @@ msgstr "说明" #. module: hr_timesheet_sheet #: model:process.transition,note:hr_timesheet_sheet.process_transition_confirmtimesheet0 msgid "The employee periodically confirms his own timesheets." -msgstr "员工定期确认自己的记工单" +msgstr "员工定期确认自己的计工单" #. module: hr_timesheet_sheet #: selection:hr.timesheet.report,month:0 selection:timesheet.report,month:0 @@ -884,7 +884,7 @@ msgstr "签出" #. module: hr_timesheet_sheet #: model:process.transition,note:hr_timesheet_sheet.process_transition_tasktimesheet0 msgid "Moves task entry into the timesheet line" -msgstr "把工作调入记工单明细中" +msgstr "把工作调入计工单明细中" #. module: hr_timesheet_sheet #: view:hr_timesheet_sheet.sheet.day:0 @@ -895,7 +895,7 @@ msgstr "工作时长" #: model:ir.actions.act_window,name:hr_timesheet_sheet.action_timesheet_report_stat_all #: model:ir.ui.menu,name:hr_timesheet_sheet.menu_timesheet_report_all msgid "Timesheet Sheet Analysis" -msgstr "记工单分析" +msgstr "计工单分析" #. module: hr_timesheet_sheet #: field:hr_timesheet_sheet.sheet,total_difference:0 @@ -1008,7 +1008,7 @@ msgstr "当前日期" #. module: hr_timesheet_sheet #: model:process.process,name:hr_timesheet_sheet.process_process_hrtimesheetprocess0 msgid "Hr Timesheet" -msgstr "人力资源 记工单" +msgstr "人力资源 计工单" #. module: hr_timesheet_sheet #: view:hr.timesheet.report:0 field:hr.timesheet.report,year:0 diff --git a/addons/idea/i18n/gu.po b/addons/idea/i18n/gu.po new file mode 100644 index 00000000000..f2ef969fa3e --- /dev/null +++ b/addons/idea/i18n/gu.po @@ -0,0 +1,710 @@ +# Gujarati translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-01 05:11+0000\n" +"Last-Translator: Jalpesh Patel(OpenERP) <pja@tinyerp.com>\n" +"Language-Team: Gujarati <gu@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: idea +#: help:idea.category,visibility:0 +msgid "If True creator of the idea will be visible to others" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "By States" +msgstr "" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_idea_select +msgid "Idea select" +msgstr "વિચાર પસંદ કરો" + +#. module: idea +#: view:idea.idea:0 +#: view:idea.vote:0 +#: model:ir.ui.menu,name:idea.menu_idea_vote +msgid "Votes" +msgstr "મત" + +#. module: idea +#: view:idea.idea:0 +#: field:idea.idea,comment_ids:0 +msgid "Comments" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Submit Vote" +msgstr "મત જમા કરો" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_report_vote_all +#: model:ir.ui.menu,name:idea.menu_report_vote_all +msgid "Ideas Analysis" +msgstr "વિચારો નું પૃથક્કરણ" + +#. module: idea +#: view:idea.category:0 +#: view:idea.idea:0 +#: view:idea.vote:0 +#: view:report.vote:0 +msgid "Group By..." +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "March" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Accepted Ideas" +msgstr "સ્વીકૃત વિચારો" + +#. module: idea +#: code:addons/idea/wizard/idea_post_vote.py:94 +#, python-format +msgid "Idea must be in 'Open' state before vote for that idea." +msgstr "" + +#. module: idea +#: view:report.vote:0 +msgid "Open Date" +msgstr "" + +#. module: idea +#: view:report.vote:0 +#: field:report.vote,day:0 +msgid "Day" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Refuse" +msgstr "નકારવા" + +#. module: idea +#: field:idea.idea,count_votes:0 +msgid "Count of votes" +msgstr "મતો ગણતરી" + +#. module: idea +#: model:ir.model,name:idea.model_report_vote +msgid "Idea Vote Statistics" +msgstr "વિચાર મતોની આંકડાકીય માહિતી" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Bad" +msgstr "ખરાબ" + +#. module: idea +#: selection:report.vote,idea_state:0 +msgid "Cancelled" +msgstr "" + +#. module: idea +#: view:idea.category:0 +msgid "Category of ideas" +msgstr "વિચારો ની શ્રેણી" + +#. module: idea +#: code:addons/idea/idea.py:274 +#: code:addons/idea/wizard/idea_post_vote.py:91 +#: code:addons/idea/wizard/idea_post_vote.py:94 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Your Comment" +msgstr "" + +#. module: idea +#: model:ir.model,name:idea.model_idea_vote +msgid "Idea Vote" +msgstr "" + +#. module: idea +#: field:idea.category,parent_id:0 +msgid "Parent Categories" +msgstr "પિતૃ શ્રેણીઓ" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Very Bad" +msgstr "ખૂબ ખરાબ" + +#. module: idea +#: view:idea.vote:0 +msgid "Ideas vote" +msgstr "" + +#. module: idea +#: view:report.vote:0 +#: field:report.vote,nbr:0 +msgid "# of Lines" +msgstr "" + +#. module: idea +#: code:addons/idea/wizard/idea_post_vote.py:91 +#, python-format +msgid "You can not give Vote for this idea more than %s times" +msgstr "" + +#. module: idea +#: view:idea.category:0 +msgid "Ideas Categories" +msgstr "વિચારોની શ્રેણીઓ" + +#. module: idea +#: help:idea.idea,description:0 +msgid "Content of the idea" +msgstr "વિચાર સામગ્રી" + +#. module: idea +#: model:ir.model,name:idea.model_idea_category +msgid "Idea Category" +msgstr "વિચાર શ્રેણીમાં" + +#. module: idea +#: view:idea.idea:0 +#: field:idea.idea,stat_vote_ids:0 +msgid "Statistics" +msgstr "આંકડાકીય માહિતી" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Not Voted" +msgstr "" + +#. module: idea +#: sql_constraint:idea.category:0 +msgid "The name of the category must be unique" +msgstr "શ્રેણી નામ વિશિષ્ટ હોવું જ જોઈએ" + +#. module: idea +#: model:ir.model,name:idea.model_idea_select +msgid "select idea" +msgstr "વિચાર પસંદ કરો" + +#. module: idea +#: view:idea.stat:0 +msgid "stat" +msgstr "" + +#. module: idea +#: field:idea.category,child_ids:0 +msgid "Child Categories" +msgstr "" + +#. module: idea +#: view:idea.select:0 +msgid "Next" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: field:idea.idea,state:0 +#: view:report.vote:0 +#: field:report.vote,idea_state:0 +msgid "State" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: selection:idea.idea,state:0 +msgid "New" +msgstr "" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Good" +msgstr "" + +#. module: idea +#: help:idea.idea,open_date:0 +msgid "Date when an idea opened" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Idea Detail" +msgstr "વિચાર વિગતો" + +#. module: idea +#: help:idea.idea,state:0 +msgid "" +"When the Idea is created the state is 'Draft'.\n" +" It is opened by the user, the state is 'Opened'. \n" +"If the idea is accepted, the state is 'Accepted'." +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "New Ideas" +msgstr "નવા વિચારો" + +#. module: idea +#: view:report.vote:0 +msgid "Idea Vote created last month" +msgstr "" + +#. module: idea +#: field:idea.category,visibility:0 +#: field:idea.idea,visibility:0 +msgid "Open Idea?" +msgstr "" + +#. module: idea +#: view:report.vote:0 +msgid "Idea Vote created in current month" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "July" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: selection:idea.idea,state:0 +#: view:report.vote:0 +#: selection:report.vote,idea_state:0 +msgid "Accepted" +msgstr "સ્વીકૃત" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_idea_category +#: model:ir.ui.menu,name:idea.menu_idea_category +msgid "Categories" +msgstr "" + +#. module: idea +#: view:idea.category:0 +msgid "Parent Category" +msgstr "પિતૃ શ્રેણીમાં" + +#. module: idea +#: field:idea.idea,open_date:0 +msgid "Open date" +msgstr "" + +#. module: idea +#: field:idea.idea,vote_ids:0 +#: model:ir.actions.act_window,name:idea.action_idea_post_vote +msgid "Vote" +msgstr "મત" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_idea_vote_stat +#: model:ir.ui.menu,name:idea.menu_idea_vote_stat +msgid "Vote Statistics" +msgstr "મત ની આંકડાકીય માહિતી" + +#. module: idea +#: field:idea.idea,vote_limit:0 +msgid "Maximum Vote per User" +msgstr "મહત્તમ વપરાશકર્તા માટે મત" + +#. module: idea +#: view:idea.vote.stat:0 +msgid "vote_stat of ideas" +msgstr "" + +#. module: idea +#: field:idea.comment,content:0 +#: view:idea.idea:0 +#: view:idea.post.vote:0 +#: field:idea.vote,comment:0 +#: model:ir.model,name:idea.model_idea_comment +msgid "Comment" +msgstr "ટીકા" + +#. module: idea +#: selection:report.vote,month:0 +msgid "September" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "December" +msgstr "" + +#. module: idea +#: view:report.vote:0 +#: field:report.vote,month:0 +msgid "Month" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: model:ir.actions.act_window,name:idea.action_idea_idea_categ_open +#: model:ir.actions.act_window,name:idea.action_idea_idea_open +msgid "Open Ideas" +msgstr "" + +#. module: idea +#: view:idea.category:0 +#: field:idea.category,name:0 +#: view:idea.idea:0 +#: field:idea.idea,category_id:0 +#: view:report.vote:0 +#: field:report.vote,category_id:0 +msgid "Category" +msgstr "" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Very Good" +msgstr "" + +#. module: idea +#: selection:idea.idea,state:0 +#: selection:report.vote,idea_state:0 +msgid "Opened" +msgstr "" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_idea_vote +msgid "Idea's Votes" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "By Idea Category" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "New Idea" +msgstr "નવો વિચાર" + +#. module: idea +#: model:ir.actions.act_window,name:idea.action_idea_category_tree +#: model:ir.ui.menu,name:idea.menu_idea_category_tree +msgid "Ideas by Categories" +msgstr "" + +#. module: idea +#: selection:report.vote,idea_state:0 +msgid "Draft" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "August" +msgstr "" + +#. module: idea +#: selection:idea.idea,my_vote:0 +#: selection:idea.post.vote,vote:0 +#: selection:idea.vote,score:0 +#: selection:idea.vote.stat,score:0 +msgid "Normal" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "June" +msgstr "" + +#. module: idea +#: field:report.vote,creater_id:0 +#: field:report.vote,user_id:0 +msgid "User Name" +msgstr "" + +#. module: idea +#: model:ir.model,name:idea.model_idea_vote_stat +msgid "Idea Votes Statistics" +msgstr "" + +#. module: idea +#: field:idea.comment,user_id:0 +#: view:idea.vote:0 +#: field:idea.vote,user_id:0 +#: view:report.vote:0 +msgid "User" +msgstr "" + +#. module: idea +#: field:idea.vote,date:0 +msgid "Date" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "November" +msgstr "" + +#. module: idea +#: field:idea.idea,my_vote:0 +msgid "My Vote" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "October" +msgstr "" + +#. module: idea +#: field:idea.comment,create_date:0 +#: field:idea.idea,created_date:0 +msgid "Creation date" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "January" +msgstr "" + +#. module: idea +#: model:ir.model,name:idea.model_idea_idea +msgid "idea.idea" +msgstr "" + +#. module: idea +#: field:idea.category,summary:0 +msgid "Summary" +msgstr "" + +#. module: idea +#: field:idea.idea,name:0 +msgid "Idea Summary" +msgstr "" + +#. module: idea +#: view:idea.post.vote:0 +msgid "Post" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "History" +msgstr "" + +#. module: idea +#: field:report.vote,date:0 +msgid "Date Order" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: field:idea.idea,user_id:0 +#: view:report.vote:0 +msgid "Creator" +msgstr "" + +#. module: idea +#: view:idea.post.vote:0 +#: model:ir.ui.menu,name:idea.menu_give_vote +msgid "Give Vote" +msgstr "" + +#. module: idea +#: help:idea.idea,vote_limit:0 +msgid "Set to one if you require only one Vote per user" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "By Creators" +msgstr "" + +#. module: idea +#: view:idea.post.vote:0 +msgid "Cancel" +msgstr "" + +#. module: idea +#: view:idea.select:0 +msgid "Close" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Open" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: view:report.vote:0 +msgid "In Progress" +msgstr "" + +#. module: idea +#: view:report.vote:0 +msgid "Idea Vote Analysis" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +#: model:ir.actions.act_window,name:idea.action_idea_idea +#: model:ir.ui.menu,name:idea.menu_idea_idea +#: model:ir.ui.menu,name:idea.menu_ideas +#: model:ir.ui.menu,name:idea.menu_ideas1 +msgid "Ideas" +msgstr "" + +#. module: idea +#: model:ir.model,name:idea.model_idea_post_vote +msgid "Post vote" +msgstr "" + +#. module: idea +#: field:idea.vote.stat,score:0 +#: field:report.vote,score:0 +msgid "Score" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Votes Statistics" +msgstr "" + +#. module: idea +#: view:idea.vote:0 +msgid "Comments:" +msgstr "" + +#. module: idea +#: view:idea.category:0 +#: field:idea.idea,description:0 +#: field:idea.post.vote,note:0 +msgid "Description" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "May" +msgstr "" + +#. module: idea +#: selection:idea.idea,state:0 +#: view:report.vote:0 +msgid "Refused" +msgstr "" + +#. module: idea +#: view:idea.vote:0 +msgid "Vote Date" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "February" +msgstr "" + +#. module: idea +#: field:idea.category,complete_name:0 +msgid "Name" +msgstr "" + +#. module: idea +#: field:idea.vote.stat,nbr:0 +msgid "Number of Votes" +msgstr "" + +#. module: idea +#: view:report.vote:0 +msgid "Month-1" +msgstr "" + +#. module: idea +#: selection:report.vote,month:0 +msgid "April" +msgstr "" + +#. module: idea +#: field:idea.idea,count_comments:0 +msgid "Count of comments" +msgstr "" + +#. module: idea +#: field:idea.vote,score:0 +msgid "Vote Status" +msgstr "" + +#. module: idea +#: view:report.vote:0 +msgid "Idea Vote created in current year" +msgstr "" + +#. module: idea +#: field:idea.idea,vote_avg:0 +msgid "Average Score" +msgstr "" + +#. module: idea +#: constraint:idea.category:0 +msgid "Error ! You cannot create recursive categories." +msgstr "" + +#. module: idea +#: field:idea.comment,idea_id:0 +#: field:idea.select,idea_id:0 +#: view:idea.vote:0 +#: field:idea.vote,idea_id:0 +#: field:idea.vote.stat,idea_id:0 +#: model:ir.ui.menu,name:idea.menu_idea_reporting +#: view:report.vote:0 +#: field:report.vote,idea_id:0 +msgid "Idea" +msgstr "" + +#. module: idea +#: view:idea.idea:0 +msgid "Accept" +msgstr "" + +#. module: idea +#: field:idea.post.vote,vote:0 +msgid "Post Vote" +msgstr "" + +#. module: idea +#: view:report.vote:0 +#: field:report.vote,year:0 +msgid "Year" +msgstr "" + +#. module: idea +#: code:addons/idea/idea.py:274 +#, python-format +msgid "You can not vote on a Draft/Accepted/Cancelled ideas." +msgstr "" + +#. module: idea +#: view:idea.select:0 +msgid "Select Idea for Vote" +msgstr "" diff --git a/addons/idea/idea_view.xml b/addons/idea/idea_view.xml index 3d541f8aa8e..0e9fb40020f 100644 --- a/addons/idea/idea_view.xml +++ b/addons/idea/idea_view.xml @@ -183,15 +183,12 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="idea_open" string="Open" states="draft"/> <button name="idea_close" string="Accept" states="open"/> <button name="idea_cancel" string="Refuse" states="open" /> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,open,close"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,open,close"/> + </header> <sheet string="New Idea" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="name" select="1" /> @@ -267,10 +264,6 @@ <field name="count_comments"/> <field name="count_votes"/> <field name="state"/> - <button name="idea_open" string="Open" states="draft" icon="terp-gtk-go-back-rtl"/> - <button name="%(idea.action_idea_post_vote)d" icon="gtk-execute" type="action" states="open" string="Submit Vote"/> - <button name="idea_close" string="Accept" states="open" icon="gtk-jump-to"/> - <button name="idea_cancel" string="Refuse" states="open" icon="gtk-cancel"/> </tree> </field> </record> diff --git a/addons/import_base/i18n/ro.po b/addons/import_base/i18n/ro.po new file mode 100644 index 00000000000..aa7dba14d3d --- /dev/null +++ b/addons/import_base/i18n/ro.po @@ -0,0 +1,104 @@ +# Romanian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-26 19:17+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Romanian <ro@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-05-27 04:40+0000\n" +"X-Generator: Launchpad (build 15288)\n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:434 +#, python-format +msgid "Import failed due to an unexpected error" +msgstr "Importul a esuat datorita unei greseli neasteptate" + +#. module: import_base +#: code:addons/import_base/import_framework.py:461 +#, python-format +msgid "started at %s and finished at %s \n" +msgstr "inceput la %s si finalizat la %s \n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:448 +#, python-format +msgid "Import of your data finished at %s" +msgstr "Importul datelor d-voastra s-a finalizat la %s" + +#. module: import_base +#: code:addons/import_base/import_framework.py:463 +#, python-format +msgid "" +"but failed, in consequence no data were imported to keep database " +"consistency \n" +" error : \n" +msgstr "" +"dar a esuat, in consecinta nu au fost importate datele pentru a mentine " +"consistenta bazei de date \n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:477 +#, python-format +msgid "" +"The import of data \n" +" instance name : %s \n" +msgstr "" +"Importul datelor \n" +" nume instanta : %s \n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:470 +#, python-format +msgid "%s has been successfully imported from %s %s, %s \n" +msgstr "%s a fost importat cu succes de la %s %s, %s \n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:447 +#, python-format +msgid "Data Import failed at %s due to an unexpected error" +msgstr "Importul de date a esuat la %s datorita unei erori neasteptate" + +#. module: import_base +#: code:addons/import_base/import_framework.py:436 +#, python-format +msgid "Import finished, notification email sended" +msgstr "Importul s-a finalizat, a fost trimis e-mail-ul de instiintare" + +#. module: import_base +#: code:addons/import_base/import_framework.py:190 +#, python-format +msgid "%s is not a valid model name" +msgstr "%s nu este nu nume valid de model" + +#. module: import_base +#: model:ir.ui.menu,name:import_base.menu_import_crm +msgid "Import" +msgstr "Importati" + +#. module: import_base +#: code:addons/import_base/import_framework.py:467 +#, python-format +msgid "with no warning" +msgstr "fara avertizare" + +#. module: import_base +#: code:addons/import_base/import_framework.py:469 +#, python-format +msgid "with warning : %s" +msgstr "cu avertizare : %s" + +#. module: import_base +#: code:addons/import_base/import_framework.py:191 +#, python-format +msgid " fields imported : " +msgstr " campuri importate : " diff --git a/addons/import_base/i18n/sv.po b/addons/import_base/i18n/sv.po new file mode 100644 index 00000000000..b42d17376c0 --- /dev/null +++ b/addons/import_base/i18n/sv.po @@ -0,0 +1,103 @@ +# 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:36+0000\n" +"PO-Revision-Date: 2012-06-04 10:28+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-05 04:54+0000\n" +"X-Generator: Launchpad (build 15353)\n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:434 +#, python-format +msgid "Import failed due to an unexpected error" +msgstr "Import misslyckades på grund av oväntat fel" + +#. module: import_base +#: code:addons/import_base/import_framework.py:461 +#, python-format +msgid "started at %s and finished at %s \n" +msgstr "Startade på %s och avslutade på %s \n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:448 +#, python-format +msgid "Import of your data finished at %s" +msgstr "Importen av dina data avslutades på %s" + +#. module: import_base +#: code:addons/import_base/import_framework.py:463 +#, python-format +msgid "" +"but failed, in consequence no data were imported to keep database " +"consistency \n" +" error : \n" +msgstr "" +"men misslyckades, till följd att inga data importerades för att hålla " +"databasen konsistent\n" +" fel: \n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:477 +#, python-format +msgid "" +"The import of data \n" +" instance name : %s \n" +msgstr "" + +#. module: import_base +#: code:addons/import_base/import_framework.py:470 +#, python-format +msgid "%s has been successfully imported from %s %s, %s \n" +msgstr "" + +#. module: import_base +#: code:addons/import_base/import_framework.py:447 +#, python-format +msgid "Data Import failed at %s due to an unexpected error" +msgstr "" + +#. module: import_base +#: code:addons/import_base/import_framework.py:436 +#, python-format +msgid "Import finished, notification email sended" +msgstr "" + +#. module: import_base +#: code:addons/import_base/import_framework.py:190 +#, python-format +msgid "%s is not a valid model name" +msgstr "" + +#. module: import_base +#: model:ir.ui.menu,name:import_base.menu_import_crm +msgid "Import" +msgstr "Import" + +#. module: import_base +#: code:addons/import_base/import_framework.py:467 +#, python-format +msgid "with no warning" +msgstr "utan varning" + +#. module: import_base +#: code:addons/import_base/import_framework.py:469 +#, python-format +msgid "with warning : %s" +msgstr "med varning: %s" + +#. module: import_base +#: code:addons/import_base/import_framework.py:191 +#, python-format +msgid " fields imported : " +msgstr " importerade fält: " diff --git a/addons/import_google/i18n/ro.po b/addons/import_google/i18n/ro.po new file mode 100644 index 00000000000..c0aea581d77 --- /dev/null +++ b/addons/import_google/i18n/ro.po @@ -0,0 +1,229 @@ +# Romanian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-26 19:22+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Romanian <ro@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-05-27 04:40+0000\n" +"X-Generator: Launchpad (build 15288)\n" + +#. module: import_google +#: help:synchronize.google.import,group_name:0 +msgid "Choose which group to import, By default it takes all." +msgstr "Alegeti grupul pe care sa il importati, implicit sunt alese toate." + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "Import Google Calendar Events" +msgstr "Importati Evenimente Google Calendar" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "_Import Events" +msgstr "_Importati Evenimente" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:71 +#, python-format +msgid "" +"No Google Username or password Defined for user.\n" +"Please define in user view" +msgstr "" +"Nu a fost definit(a) nici un nume de utilizator sau o parola pentru " +"utilizator.\n" +"Va rugam sa definiti in vizualizarea utilizatorului" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:127 +#, python-format +msgid "" +"Invalid login detail !\n" +" Specify Username/Password." +msgstr "" +"Detalii de autentificare nevalide !\n" +" Specificati Numele de utilizator/Parola." + +#. module: import_google +#: field:synchronize.google.import,supplier:0 +msgid "Supplier" +msgstr "Furnizor" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "Import Options" +msgstr "Importati Optiuni" + +#. module: import_google +#: field:synchronize.google.import,group_name:0 +msgid "Group Name" +msgstr "Numele grupului" + +#. module: import_google +#: model:ir.model,name:import_google.model_crm_case_categ +msgid "Category of Case" +msgstr "Categoria Cazului" + +#. module: import_google +#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form +#: model:ir.ui.menu,name:import_google.menu_sync_contact +msgid "Import Google Contacts" +msgstr "Importati Contacte Google" + +#. module: import_google +#: view:google.import.message:0 +msgid "Import Google Data" +msgstr "Importati Date Google" + +#. module: import_google +#: view:crm.meeting:0 +msgid "Meeting Type" +msgstr "Tipul intalnirii" + +#. module: import_google +#: code:addons/import_google/wizard/import_google.py:38 +#: code:addons/import_google/wizard/import_google_data.py:28 +#, python-format +msgid "" +"Please install gdata-python-client from http://code.google.com/p/gdata-" +"python-client/downloads/list" +msgstr "" +"Va rugam sa instalati gdata-python-client de la adresa " +"http://code.google.com/p/gdata-python-client/downloads/list" + +#. module: import_google +#: model:ir.model,name:import_google.model_google_login +msgid "Google Contact" +msgstr "Contact Google" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "Import contacts from a google account" +msgstr "Importati contacte dintr-un cont google" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:133 +#, python-format +msgid "Please specify correct user and password !" +msgstr "Va rugam sa specificati utilizatorul si parola corecte !" + +#. module: import_google +#: field:synchronize.google.import,customer:0 +msgid "Customer" +msgstr "Client" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "_Cancel" +msgstr "_Anulati" + +#. module: import_google +#: model:ir.model,name:import_google.model_synchronize_google_import +msgid "synchronize.google.import" +msgstr "sincronizati.import.google" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "_Import Contacts" +msgstr "_Importati Contacte" + +#. module: import_google +#: model:ir.actions.act_window,name:import_google.act_google_login_form +#: model:ir.ui.menu,name:import_google.menu_sync_calendar +msgid "Import Google Calendar" +msgstr "Importati Google Calendar" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:50 +#, python-format +msgid "Import google" +msgstr "Import google" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:127 +#: code:addons/import_google/wizard/import_google_data.py:133 +#, python-format +msgid "Error" +msgstr "Eroare" + +#. module: import_google +#: code:addons/import_google/wizard/import_google_data.py:71 +#, python-format +msgid "Warning !" +msgstr "Avertizare !" + +#. module: import_google +#: field:synchronize.google.import,create_partner:0 +msgid "Options" +msgstr "Optiuni" + +#. module: import_google +#: view:google.import.message:0 +msgid "_Ok" +msgstr "_Ok" + +#. module: import_google +#: code:addons/import_google/wizard/import_google.py:38 +#: code:addons/import_google/wizard/import_google_data.py:28 +#, python-format +msgid "Google Contacts Import Error!" +msgstr "Eroare Import Contacte Google!" + +#. module: import_google +#: model:ir.model,name:import_google.model_google_import_message +msgid "Import Message" +msgstr "Importati Mesajul" + +#. module: import_google +#: field:synchronize.google.import,calendar_name:0 +msgid "Calendar Name" +msgstr "Nume Calendar" + +#. module: import_google +#: help:synchronize.google.import,supplier:0 +msgid "Check this box to set newly created partner as Supplier." +msgstr "" +"Bifati aceasta casuta pentru a seta partenerul nou creat drept Furnizor." + +#. module: import_google +#: selection:synchronize.google.import,create_partner:0 +msgid "Import only address" +msgstr "Importati doar adresa" + +#. module: import_google +#: field:crm.case.categ,user_id:0 +msgid "User" +msgstr "Utilizator" + +#. module: import_google +#: view:synchronize.google.import:0 +msgid "Partner Status for this Group:" +msgstr "" + +#. module: import_google +#: field:google.import.message,name:0 +msgid "Message" +msgstr "Mesaj" + +#. module: import_google +#: selection:synchronize.google.import,create_partner:0 +msgid "Create partner for each contact" +msgstr "Creati partenerul pentru fiecare contact" + +#. module: import_google +#: help:synchronize.google.import,customer:0 +msgid "Check this box to set newly created partner as Customer." +msgstr "" +"Bifati aceasta casuta pentru a seta partenerul nou creat drept Client." + +#~ msgid "Partner status for this group:" +#~ msgstr "Statusul partenerului acestui grup:" diff --git a/addons/import_sugarcrm/i18n/ro.po b/addons/import_sugarcrm/i18n/ro.po new file mode 100644 index 00000000000..9f956a27142 --- /dev/null +++ b/addons/import_sugarcrm/i18n/ro.po @@ -0,0 +1,421 @@ +# Romanian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-26 19:35+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Romanian <ro@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-05-27 04:40+0000\n" +"X-Generator: Launchpad (build 15288)\n" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 +#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 +#, python-format +msgid "Error !!" +msgstr "Eroare !!" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "" +"Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." +msgstr "" +"Utilizati URL API SugarSoap (unealta de citire) si acces complet la " +"autentificarea SugarCRM." + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "(Coming Soon)" +msgstr "(In curand)" + +#. module: import_sugarcrm +#: field:import.sugarcrm,document:0 +msgid "Documents" +msgstr "Documente" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Import your data from SugarCRM :" +msgstr "Importati-va datele din SugarCRM :" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "" +"Choose data you want to import. Click 'Import' to get data manually or " +"'Schedule Reccurent Imports' to get recurrently and automatically data." +msgstr "" +"Alegeti datele pe care doriti sa le importati. Faceti click pe 'Importa' " +"pentru a obtine datele manual sau 'Programeaza Importuri Recurente' pentru a " +"obtine date in mod recurent si automat." + +#. module: import_sugarcrm +#: field:import.sugarcrm,contact:0 +msgid "Contacts" +msgstr "Contacte" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "HR" +msgstr "RU" + +#. module: import_sugarcrm +#: help:import.sugarcrm,bug:0 +msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" +msgstr "" +"Bifati aceasta casuta pentru a importa sugarCRM Bugs in problemele " +"proiectului OpenERP" + +#. module: import_sugarcrm +#: field:import.sugarcrm,instance_name:0 +msgid "Instance's Name" +msgstr "Numele Instantei" + +#. module: import_sugarcrm +#: field:import.sugarcrm,project_task:0 +msgid "Project Tasks" +msgstr "Sarcini Proiect" + +#. module: import_sugarcrm +#: field:import.sugarcrm,email_from:0 +msgid "Notify End Of Import To:" +msgstr "Anuntati Finalizarea Importului la:" + +#. module: import_sugarcrm +#: help:import.sugarcrm,user:0 +msgid "" +"Check this box to import sugarCRM Users into OpenERP users, warning if a " +"user with the same login exist in OpenERP, user information will be erase by " +"sugarCRM user information" +msgstr "" +"Bifati aceasta casuta pentru a importa Utilizatori sugarCRM in utilizatorii " +"OpenERP, avertizare daca exista un utilizator cu acelasi nume de " +"autentificare in OpenERP, informatiile despre utilizatori vor fi sterse de " +"informatiile despre utilizatorii sugarCRM" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/sugarsoap_services.py:23 +#, python-format +msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" +msgstr "" +"Va rugam sa instalati SOAP pentru pyhton - ZSI-2.0-rc3.tar.gz - python-zci" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "_Schedule Recurrent Imports" +msgstr "_Programati Importuri Recurente" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "" +"Do not forget the email address to be notified of the success of the import." +msgstr "" +"Nu uitati adresa de e-mail la care sa fiti instiintat ca importul a avut " +"succes." + +#. module: import_sugarcrm +#: help:import.sugarcrm,call:0 +msgid "Check this box to import sugarCRM Calls into OpenERP calls" +msgstr "" +"Bifati aceasta casuta pentru a importa Apeluri sugarCRM in apeluri OpenERP" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "" +"If you make recurrent or ponctual import, data already in OpenERP will be " +"updated by SugarCRM data." +msgstr "" +"Daca efectuati importuri recurente sau punctuale, datele deja existente in " +"OpenERP vor fi actualizate cu datele SugarCRM." + +#. module: import_sugarcrm +#: field:import.sugarcrm,employee:0 +msgid "Employee" +msgstr "Angajat" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Document" +msgstr "Document" + +#. module: import_sugarcrm +#: help:import.sugarcrm,document:0 +msgid "Check this box to import sugarCRM Documents into OpenERP documents" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Import Data From SugarCRM" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "CRM" +msgstr "" + +#. module: import_sugarcrm +#: view:import.message:0 +msgid "" +"Data are importing, the process is running in the background, an email will " +"be sent to the given email address if it was defined." +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,call:0 +msgid "Calls" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Multi Instance Management" +msgstr "" + +#. module: import_sugarcrm +#: view:import.message:0 +msgid "_Ok" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,opportunity:0 +msgid "" +"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads " +"and Opportunities" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,email_history:0 +msgid "Email and Note" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,url:0 +msgid "" +"Webservice's url where to get the data. example : " +"'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm " +"application " +"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" +msgstr "" + +#. module: import_sugarcrm +#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm +#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import +msgid "Import SugarCRM" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "_Import" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,user:0 +msgid "User" +msgstr "" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 +#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 +#, python-format +msgid "%s data required %s Module to be installed, Please install %s module" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,claim:0 +msgid "Cases" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,meeting:0 +msgid "" +"Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,email_history:0 +msgid "" +"Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP " +"Messages and Attachments" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,project:0 +msgid "Projects" +msgstr "" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 +#, python-format +msgid "" +"Please install SOAP for python - ZSI-2.0-rc3.tar.gz from " +"http://pypi.python.org/pypi/ZSI/" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,project:0 +msgid "Check this box to import sugarCRM Projects into OpenERP projects" +msgstr "" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 +#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 +#, python-format +msgid "Select Module to Import." +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,meeting:0 +msgid "Meetings" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,employee:0 +msgid "Check this box to import sugarCRM Employees into OpenERP employees" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,url:0 +msgid "SugarSoap Api url:" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Address Book" +msgstr "" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/sugar.py:60 +#, python-format +msgid "" +"Authentication error !\n" +"Bad Username or Password bad SugarSoap Api url !" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,bug:0 +msgid "Bugs" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Project" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,project_task:0 +msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,opportunity:0 +msgid "Leads & Opp" +msgstr "" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:79 +#, python-format +msgid "" +"Authentication error !\n" +"Bad Username or Password or bad SugarSoap Api url !" +msgstr "" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:79 +#: code:addons/import_sugarcrm/sugar.py:60 +#, python-format +msgid "Error !" +msgstr "" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 +#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,instance_name:0 +msgid "" +"Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come " +"from different server." +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,contact:0 +msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,password:0 +msgid "Password" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Login Information" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,claim:0 +msgid "Check this box to import sugarCRM Cases into OpenERP claims" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Email Notification When Import is Finished" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,username:0 +msgid "User Name" +msgstr "" + +#. module: import_sugarcrm +#: view:import.message:0 +#: model:ir.model,name:import_sugarcrm.model_import_message +msgid "Import Message" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,account:0 +msgid "Check this box to import sugarCRM Accounts into OpenERP partners" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Online documentation:" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,account:0 +msgid "Accounts" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "_Cancel" +msgstr "" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/sugarsoap_services.py:23 +#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 +#, python-format +msgid "ZSI Import Error!" +msgstr "" + +#. module: import_sugarcrm +#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm +msgid "Import SugarCRM DATA" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Email Address to Notify" +msgstr "" diff --git a/addons/knowledge/i18n/lv.po b/addons/knowledge/i18n/lv.po new file mode 100644 index 00000000000..4a89de943d7 --- /dev/null +++ b/addons/knowledge/i18n/lv.po @@ -0,0 +1,33 @@ +# Latvian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 01:37+0100\n" +"PO-Revision-Date: 2012-05-28 12:54+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Latvian <lv@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-29 04:46+0000\n" +"X-Generator: Launchpad (build 15316)\n" + +#. module: knowledge +#: model:ir.ui.menu,name:knowledge.menu_document2 +msgid "Collaborative Content" +msgstr "" + +#. module: knowledge +#: model:ir.ui.menu,name:knowledge.menu_document_configuration +msgid "Configuration" +msgstr "" + +#. module: knowledge +#: model:ir.ui.menu,name:knowledge.menu_document +msgid "Knowledge" +msgstr "" diff --git a/addons/knowledge/res_config_view.xml b/addons/knowledge/res_config_view.xml index 6816a9da3a1..d1debeaf562 100644 --- a/addons/knowledge/res_config_view.xml +++ b/addons/knowledge/res_config_view.xml @@ -7,10 +7,10 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Knowledge" layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Apply" type="object" name="execute"/> <button string="Cancel" special="cancel"/> - </div> + </header> <sheet layout="auto"> <separator string="Wiki" colspan="4"/> <field name="module_wiki_faq"/> diff --git a/addons/l10n_be/i18n/ja.po b/addons/l10n_be/i18n/ja.po index d70ff834981..baac9765b1f 100644 --- a/addons/l10n_be/i18n/ja.po +++ b/addons/l10n_be/i18n/ja.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-25 04:39+0000\n" +"X-Launchpad-Export-Date: 2012-05-26 05:07+0000\n" "X-Generator: Launchpad (build 15288)\n" #. module: l10n_be diff --git a/addons/l10n_multilang/i18n/ro.po b/addons/l10n_multilang/i18n/ro.po new file mode 100644 index 00000000000..e820dde38de --- /dev/null +++ b/addons/l10n_multilang/i18n/ro.po @@ -0,0 +1,178 @@ +# Romanian 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 01:06+0000\n" +"PO-Revision-Date: 2012-05-30 20:18+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Romanian <ro@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-05-31 04:54+0000\n" +"X-Generator: Launchpad (build 15322)\n" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_fiscal_position_template +msgid "Template for Fiscal Position" +msgstr "Sablon pentru Pozitia Fiscala" + +#. module: l10n_multilang +#: sql_constraint:account.account:0 +msgid "The code of the account must be unique per company !" +msgstr "Codul sumei trebuie sa fie unic per companie !" + +#. module: l10n_multilang +#: constraint:account.account.template:0 +msgid "" +"Configuration Error!\n" +"You can not define children to an account with internal type different of " +"\"View\"! " +msgstr "" +"Eroare de Configurare!\n" +"Nu puteti defini conturi secundare intr-un cont cu tipul intern diferit de " +"\"Vizualizare\"! " + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_analytic_journal +msgid "Analytic Journal" +msgstr "Jurnal Analitic" + +#. module: l10n_multilang +#: constraint:account.account.template:0 +msgid "Error ! You can not create recursive account templates." +msgstr "Eroare! Nu puteti crea sabloane de cont recurente." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_journal +msgid "Journal" +msgstr "Jurnal" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_chart_template +msgid "Templates for Account Chart" +msgstr "Sabloane pentru Planul de Conturi" + +#. module: l10n_multilang +#: sql_constraint:account.tax:0 +msgid "The description must be unique per company!" +msgstr "Descrierea trebuie sa fie unica pe companie!" + +#. module: l10n_multilang +#: constraint:account.tax.code.template:0 +msgid "Error ! You can not create recursive Tax Codes." +msgstr "Eroare ! Nu puteti crea Coduri fiscale recursive." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_tax_template +msgid "account.tax.template" +msgstr "sablon.taxa.cont" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_tax +msgid "account.tax" +msgstr "taxa.cont" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_account +msgid "Account" +msgstr "Cont" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_wizard_multi_charts_accounts +msgid "wizard.multi.charts.accounts" +msgstr "wizard.plan.de.conturi.multi" + +#. module: l10n_multilang +#: constraint:account.journal:0 +msgid "" +"Configuration error! The currency chosen should be shared by the default " +"accounts too." +msgstr "" +"Eroare de configurare! Moneda aleasa trebuie sa fie comuna si conturilor " +"predefinite." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_account_template +msgid "Templates for Accounts" +msgstr "Sabloane pentru Conturi" + +#. module: l10n_multilang +#: help:account.chart.template,spoken_languages:0 +msgid "" +"State here the languages for which the translations of templates could be " +"loaded at the time of installation of this localization module and copied in " +"the final object when generating them from templates. You must provide the " +"language codes separated by ';'" +msgstr "" +"Aici introduceti limbile pentru care pot fi incarcate traducerile " +"sabloanelor in momentul instalarii acestui modul de localizare si pot fi " +"copiate in obiectul final atunci cand le generati din sabloane. Trebuie sa " +"introduceti codurile limbilor separat cu ';'" + +#. module: l10n_multilang +#: constraint:account.account:0 +msgid "Error ! You can not create recursive accounts." +msgstr "Eroare ! Nu puteti crea conturi recursive." + +#. module: l10n_multilang +#: constraint:account.account:0 +msgid "" +"Configuration Error! \n" +"You can not select an account type with a deferral method different of " +"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! " +msgstr "" +"Eroare de configurare! \n" +"Nu puteti selecta un tip de cont cu o metoda de amanare diferita de " +"\"Nereconciliat\" pentru conturile cu tipul intern \"Plati/Incasari\"! " + +#. module: l10n_multilang +#: sql_constraint:account.journal:0 +msgid "The name of the journal must be unique per company !" +msgstr "Numele jurnalului trebuie sa fie unic per companie !" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_analytic_account +msgid "Analytic Account" +msgstr "Cont Analitic" + +#. module: l10n_multilang +#: sql_constraint:account.journal:0 +msgid "The code of the journal must be unique per company !" +msgstr "Codul jurnalului trebuie sa fie unic per companie !" + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "Pozitie fiscala" + +#. module: l10n_multilang +#: constraint:account.account:0 +msgid "" +"Configuration Error! \n" +"You can not define children to an account with internal type different of " +"\"View\"! " +msgstr "" +"Eroare de configurare! \n" +"Nu puteti defini conturi subordonate unui cont cu tipul intern diferit de " +"\"Vizualizare\"! " + +#. module: l10n_multilang +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "Eroare! Nu puteti crea conturi analitice recursive." + +#. module: l10n_multilang +#: model:ir.model,name:l10n_multilang.model_account_tax_code_template +msgid "Tax Code Template" +msgstr "Sablon Cod Taxa" + +#. module: l10n_multilang +#: field:account.chart.template,spoken_languages:0 +msgid "Spoken Languages" +msgstr "Limbi Vorbite" diff --git a/addons/l10n_syscohada/i18n/ro.po b/addons/l10n_syscohada/i18n/ro.po new file mode 100644 index 00000000000..4bd661a2da3 --- /dev/null +++ b/addons/l10n_syscohada/i18n/ro.po @@ -0,0 +1,123 @@ +# Romanian 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: 2011-12-23 09:56+0000\n" +"PO-Revision-Date: 2012-05-30 20:37+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Romanian <ro@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-05-31 04:54+0000\n" +"X-Generator: Launchpad (build 15322)\n" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_receivable +msgid "Receivable" +msgstr "Incasari" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_stocks +msgid "Actif circulant" +msgstr "Active" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_commitment +msgid "Engagements" +msgstr "Angajamente" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_expense +msgid "Expense" +msgstr "Cheltuiala" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_stock +msgid "Stocks" +msgstr "Actiuni" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_provision +msgid "Provisions" +msgstr "Clauze" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_income +msgid "Income" +msgstr "Venit" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_tax +msgid "Tax" +msgstr "Taxa" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_cash +msgid "Cash" +msgstr "Numerar" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_immobilisations +msgid "Immobilisations" +msgstr "Imobiliare" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_special +msgid "Comptes spéciaux" +msgstr "Conturi speciale" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_payable +msgid "Payable" +msgstr "Plati" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_asset +msgid "Asset" +msgstr "Active" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_view +msgid "View" +msgstr "Vizualizare" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_equity +msgid "Equity" +msgstr "Capital" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_cloture +msgid "Cloture" +msgstr "Inchidere" + +#. module: l10n_syscohada +#: model:account.account.type,name:l10n_syscohada.account_type_dettes +msgid "Dettes long terme" +msgstr "Datorii pe termen lung" + +#. module: l10n_syscohada +#: model:ir.actions.todo,note:l10n_syscohada.config_call_account_template_syscohada +msgid "" +"Generate Chart of Accounts from a SYSCOHADA Chart Template. You will be " +"asked to pass the name of the company, the chart template to follow, the no. " +"of digits to generate the code for your accounts and Bank account, currency " +"to create Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Creati Planul de Conturi dintr-un Sablon SYSCOHADA de planuri. Vi se va cere " +"sa introduceti numele companiei, sablonul de planuri de urmat, numarul de " +"cifre pentru crearea codului pentru conturile d-voastra si Contul Bancar, " +"moneda pentru a crea Jurnalele. Astfel, este creata copia originala a " +"Sablonului de planuri.\n" +"\t Acesta este acelasi wizard care ruleaza din Managementul " +"Financiar/Configurare/Contabilitate Financiara/Conturi Financiare/Creati " +"Planul de Conturi dintr-un Sablon de planuri." diff --git a/addons/lunch/i18n/ja.po b/addons/lunch/i18n/ja.po index 445a960e7cc..704bbcdc438 100644 --- a/addons/lunch/i18n/ja.po +++ b/addons/lunch/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-05-25 02:30+0000\n" +"PO-Revision-Date: 2012-06-08 02:44+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-05-25 04:40+0000\n" -"X-Generator: Launchpad (build 15288)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: lunch #: view:lunch.cashbox.clean:0 @@ -64,7 +64,7 @@ msgstr " 7日 " #. module: lunch #: view:lunch.cashmove:0 view:lunch.order:0 msgid "Today" -msgstr "今日" +msgstr "本日" #. module: lunch #: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 @@ -306,8 +306,8 @@ msgid "" "by supplier. It will be easier for the lunch manager to filter lunch orders " "by categories." msgstr "" -"従業員が昼食時間にオーダーできる全ての製品を定義して下さい。複数の場所で昼食をオーダーするなら、仕入先毎に分離した製品分類を使うことができます。これは昼食" -"マネジャにとって分類別に昼食オーダーをフィルタすることを容易にします。" +"従業員が昼食時間にオーダーできる全ての製品を定義します。複数の場所で昼食をオーダーするなら、仕入先毎に分離した製品分類を使うことができます。これは昼食マネ" +"ジャにとって分類別に昼食オーダーをフィルタすることを容易にします。" #. module: lunch #: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0 diff --git a/addons/lunch/lunch_view.xml b/addons/lunch/lunch_view.xml index adfccfc2041..57360829e19 100644 --- a/addons/lunch/lunch_view.xml +++ b/addons/lunch/lunch_view.xml @@ -24,14 +24,11 @@ <field name="model">lunch.order</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="%(action_lunch_order_confirm)d" string="Confirm Order" type="action" attrs="{'invisible':[('state','=','confirmed')]}"/> <button name="%(action_lunch_order_cancel)d" string="Cancel Order" type="action"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirmed"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,confirmed"/> + </header> <sheet string="Order" layout="auto"> <field name="user_id" select="1"/> <field name="date" select="1"/> @@ -60,16 +57,6 @@ <field name="category"/> <field name="price" sum="Total price"/> <field name="state"/> - <button colspan="1" - name="%(action_lunch_order_cancel)d" - string="Cancel Order" - type="action" states="confirmed" - icon="gtk-cancel" /> - <button colspan="1" - name="%(action_lunch_order_confirm)d" - string="Confirm Order" - type="action" states="draft" - icon="terp-gtk-go-back-rtl" /> </tree> </field> </record> @@ -340,7 +327,7 @@ <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Box Amount by User"> - <field name="date" invisible="1"/> + <field name="date" invisible="1"/> <field name="year" invisible="1"/> <field name="day" invisible="1"/> <field name="month" invisible="1"/> diff --git a/addons/mail/doc/index.rst.inc b/addons/mail/doc/index.rst.inc index 4679cd56fdf..822d855d5b4 100644 --- a/addons/mail/doc/index.rst.inc +++ b/addons/mail/doc/index.rst.inc @@ -9,3 +9,4 @@ Mail Module documentation topics mail_thread mail_openchatter_howto mail_needaction_howto + mail_partner diff --git a/addons/mail/doc/mail_openchatter_howto.rst b/addons/mail/doc/mail_openchatter_howto.rst index fe28017be83..7ca52348d99 100644 --- a/addons/mail/doc/mail_openchatter_howto.rst +++ b/addons/mail/doc/mail_openchatter_howto.rst @@ -38,7 +38,7 @@ Make your module inheriting from the ``mail.thread`` class. # inherit from mail.thread allows the use of OpenChatter _inherit = ['mail.thread'] -Use the thread viewer widget inside your form view by using the ThreadView widget on the message_ids_social field inherited from mail.thread. +Use the thread viewer widget inside your form view by using the ThreadView widget on the message_ids field inherited from mail.thread. :: @@ -50,7 +50,7 @@ Use the thread viewer widget inside your form view by using the ThreadView widge <field name="arch" type="xml"> <form> [...] - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </form> </field> </record> diff --git a/addons/mail/doc/mail_partner.rst b/addons/mail/doc/mail_partner.rst new file mode 100644 index 00000000000..a99246395d7 --- /dev/null +++ b/addons/mail/doc/mail_partner.rst @@ -0,0 +1,10 @@ +What is shown +============== + - for every module which are related to partner show apporopriate message in the partner view like opportunities, sale orders and invoices. + + +How it is done +=============== + - _inherit = 'mail.thread' + + - Override def message_load_ids(self, cr, uid, ids, limit=100, offset=0, domain=[], ascent=False, root_ids=[], context=None) search by the partner diff --git a/addons/mail/i18n/ja.po b/addons/mail/i18n/ja.po index 200fbab9ab8..479c783ca64 100644 --- a/addons/mail/i18n/ja.po +++ b/addons/mail/i18n/ja.po @@ -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-09 00:36+0000\n" -"PO-Revision-Date: 2012-05-25 04:29+0000\n" +"PO-Revision-Date: 2012-05-25 05:23+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-05-25 04:40+0000\n" +"X-Launchpad-Export-Date: 2012-05-26 05:07+0000\n" "X-Generator: Launchpad (build 15288)\n" #. module: mail @@ -156,7 +156,7 @@ msgstr "Eメールメッセージ" #. module: mail #: view:mail.compose.message:0 msgid "Send" -msgstr "" +msgstr "送信" #. module: mail #: view:mail.message:0 @@ -184,137 +184,137 @@ msgstr "送信済" msgid "" "Type of message, usually 'html' or 'plain', used to select plaintext or rich " "text contents accordingly" -msgstr "" +msgstr "メッセージのタイプ。通常はテキストあるいはリッチテキストを指定するための 「テキスト」あるいは「HTML」" #. module: mail #: view:mail.message:0 msgid "Recipients" -msgstr "" +msgstr "宛先" #. module: mail #: model:ir.model,name:mail.model_mail_compose_message msgid "E-mail composition wizard" -msgstr "" +msgstr "Eメール作成ウィザード" #. module: mail #: field:mail.compose.message,res_id:0 field:mail.message,res_id:0 #: field:mail.message.common,res_id:0 msgid "Related Document ID" -msgstr "" +msgstr "関連する文書ID" #. module: mail #: view:mail.message:0 msgid "Advanced" -msgstr "" +msgstr "高度" #. module: mail #: code:addons/mail/wizard/mail_compose_message.py:157 #, python-format msgid "Re:" -msgstr "" +msgstr "Re:" #. module: mail #: field:mail.compose.message,model:0 field:mail.message,model:0 #: field:mail.message.common,model:0 msgid "Related Document Model" -msgstr "" +msgstr "関連する文書モデル" #. module: mail #: view:mail.message:0 msgid "Month" -msgstr "" +msgstr "月" #. module: mail #: view:mail.message:0 msgid "Email Search" -msgstr "" +msgstr "Eメール検索" #. module: mail #: help:mail.message,original:0 msgid "Original version of the message, as it was sent on the network" -msgstr "" +msgstr "ネットワークで送信された場合のメッセージの原型" #. module: mail #: view:mail.message:0 msgid "Partner Name" -msgstr "" +msgstr "パートナ名" #. module: mail #: view:mail.message:0 msgid "Retry" -msgstr "" +msgstr "再試行" #. module: mail #: view:mail.message:0 selection:mail.message,state:0 msgid "Outgoing" -msgstr "" +msgstr "送信" #. module: mail #: view:mail.message:0 msgid "Send Now" -msgstr "" +msgstr "今すぐ送信" #. module: mail #: field:mail.message,partner_id:0 msgid "Related partner" -msgstr "" +msgstr "関係する取引先" #. module: mail #: view:mail.message:0 msgid "User" -msgstr "" +msgstr "ユーザ" #. module: mail #: field:mail.compose.message,date:0 field:mail.message,date:0 #: field:mail.message.common,date:0 msgid "Date" -msgstr "" +msgstr "日付" #. module: mail #: view:mail.message:0 msgid "Extended Filters..." -msgstr "" +msgstr "拡張フィルタ…" #. module: mail #: code:addons/mail/wizard/mail_compose_message.py:153 #, python-format msgid "%(sender_name)s wrote:" -msgstr "" +msgstr "%(sender_name)s さんの記述:" #. module: mail #: field:mail.compose.message,body_html:0 field:mail.message,body_html:0 #: field:mail.message.common,body_html:0 msgid "Rich-text Contents" -msgstr "" +msgstr "リッチテキストのコンテンツ" #. module: mail #: field:mail.message,original:0 msgid "Original" -msgstr "" +msgstr "原文" #. module: mail #: code:addons/mail/mail_thread.py:247 view:res.partner:0 #, python-format msgid "History" -msgstr "" +msgstr "履歴" #. module: mail #: field:mail.compose.message,message_id:0 field:mail.message,message_id:0 #: field:mail.message.common,message_id:0 msgid "Message-Id" -msgstr "" +msgstr "メッセージID" #. module: mail #: view:mail.compose.message:0 field:mail.compose.message,attachment_ids:0 #: view:mail.message:0 field:mail.message,attachment_ids:0 msgid "Attachments" -msgstr "" +msgstr "添付" #. module: mail #: field:mail.compose.message,email_cc:0 field:mail.message,email_cc:0 #: field:mail.message.common,email_cc:0 msgid "Cc" -msgstr "" +msgstr "写し(CC)" #. module: mail #: code:addons/mail/mail_message.py:159 @@ -325,28 +325,28 @@ msgstr "" #. module: mail #: help:mail.message,auto_delete:0 msgid "Permanently delete this email after sending it, to save space" -msgstr "" +msgstr "送信後、このEメールを削除(スペース節約のため)" #. module: mail #: field:mail.compose.message,references:0 field:mail.message,references:0 #: field:mail.message.common,references:0 msgid "References" -msgstr "" +msgstr "参照" #. module: mail #: field:mail.message,display_text:0 msgid "Display Text" -msgstr "" +msgstr "テキストの表示" #. module: mail #: view:mail.compose.message:0 view:mail.message:0 msgid "Cancel" -msgstr "" +msgstr "キャンセル" #. module: mail #: view:mail.message:0 msgid "Open" -msgstr "" +msgstr "開く" #. module: mail #: code:addons/mail/mail_thread.py:434 @@ -357,7 +357,7 @@ msgstr "" #. module: mail #: field:mail.message,user_id:0 msgid "Related User" -msgstr "" +msgstr "関連ユーザ" #. module: mail #: help:mail.compose.message,headers:0 help:mail.message,headers:0 @@ -365,29 +365,29 @@ msgstr "" msgid "" "Full message headers, e.g. SMTP session headers (usually available on " "inbound messages only)" -msgstr "" +msgstr "全メッセージヘッダー。例えばSMTPセッションのヘッダー(通常、受信メッセージのみ)。" #. module: mail #: view:mail.message:0 msgid "Creation Month" -msgstr "" +msgstr "作成月" #. module: mail #: field:mail.compose.message,email_to:0 field:mail.message,email_to:0 #: field:mail.message.common,email_to:0 msgid "To" -msgstr "" +msgstr "宛先" #. module: mail #: view:mail.message:0 msgid "Details" -msgstr "" +msgstr "詳細" #. module: mail #: model:ir.actions.act_window,name:mail.action_view_mailgate_thread #: view:mail.thread:0 msgid "Email Threads" -msgstr "" +msgstr "Eメールスレッド" #. module: mail #: help:mail.compose.message,email_from:0 help:mail.message,email_from:0 @@ -395,29 +395,29 @@ msgstr "" msgid "" "Message sender, taken from user preferences. If empty, this is not a mail " "but a message." -msgstr "" +msgstr "メッセージの差出人。ユーザの優先設定から持って来られます。空白にすると、Eメールではなく、メッセージになります。" #. module: mail #: view:mail.message:0 msgid "Body (Plain)" -msgstr "" +msgstr "本文(テキスト)" #. module: mail #: code:addons/mail/wizard/mail_compose_message.py:153 #, python-format msgid "You" -msgstr "" +msgstr "あなた" #. module: mail #: help:mail.compose.message,message_id:0 help:mail.message,message_id:0 #: help:mail.message.common,message_id:0 msgid "Message unique identifier" -msgstr "" +msgstr "メッセージ識別番号" #. module: mail #: view:mail.message:0 msgid "Body (Rich)" -msgstr "" +msgstr "本文(リッチテキスト)" #. module: mail #: code:addons/mail/mail_message.py:155 @@ -427,31 +427,34 @@ msgid "" " Subject: %s \n" "\t" msgstr "" +"%s が %s について記述:\n" +" 件名:%s \n" +"\t" #. module: mail #: model:ir.actions.act_window,name:mail.act_res_partner_emails #: view:mail.message:0 field:res.partner,emails:0 msgid "Emails" -msgstr "" +msgstr "Eメール" #. module: mail #: model:ir.actions.act_window,name:mail.action_view_mail_message #: model:ir.ui.menu,name:mail.menu_email_message #: field:mail.thread,message_ids:0 msgid "Messages" -msgstr "" +msgstr "メッセージ" #. module: mail #: field:mail.compose.message,headers:0 field:mail.message,headers:0 #: field:mail.message.common,headers:0 msgid "Message Headers" -msgstr "" +msgstr "メッセージヘッダー" #. module: mail #: field:mail.compose.message,email_bcc:0 field:mail.message,email_bcc:0 #: field:mail.message.common,email_bcc:0 msgid "Bcc" -msgstr "" +msgstr "BCC" #. module: mail #: model:ir.model,name:mail.model_mail_message_common @@ -462,47 +465,47 @@ msgstr "" #: help:mail.compose.message,references:0 help:mail.message,references:0 #: help:mail.message.common,references:0 msgid "Message references, such as identifiers of previous messages" -msgstr "" +msgstr "メッセージの参照。前のメッセージの識別番号など" #. module: mail #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "エラー。再帰的な関係となる会員を作ることはできません。" #. module: mail #: help:mail.compose.message,email_cc:0 help:mail.message,email_cc:0 #: help:mail.message.common,email_cc:0 msgid "Carbon copy message recipients" -msgstr "" +msgstr "CCメッセージの宛先" #. module: mail #: selection:mail.message,state:0 msgid "Delivery Failed" -msgstr "" +msgstr "配信に失敗しました。" #. module: mail #: model:ir.model,name:mail.model_mail_message msgid "Email Message" -msgstr "" +msgstr "Eメールメッセージ" #. module: mail #: model:ir.model,name:mail.model_mail_thread view:mail.thread:0 msgid "Email Thread" -msgstr "" +msgstr "Eメールスレッド" #. module: mail #: field:mail.compose.message,filter_id:0 msgid "Filters" -msgstr "" +msgstr "フィルタ" #. module: mail #: code:addons/mail/mail_thread.py:220 #, python-format msgid "Mail attachment" -msgstr "" +msgstr "メール添付" #. module: mail #: help:mail.compose.message,reply_to:0 help:mail.message,reply_to:0 #: help:mail.message.common,reply_to:0 msgid "Preferred response address for the message" -msgstr "" +msgstr "メッセージの優先返信アドレス" diff --git a/addons/mail/mail_group_view.xml b/addons/mail/mail_group_view.xml index 7258db2d9dc..67b2efc84a0 100644 --- a/addons/mail/mail_group_view.xml +++ b/addons/mail/mail_group_view.xml @@ -69,7 +69,8 @@ <label string="This group is visible by non members" colspan="2"/> </group> </group> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1" + options='{"thread_level": 1}'/> </form> </field> </record> diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 8cd8ef415c3..b1b6c68e4cc 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -61,29 +61,29 @@ class mail_thread(osv.osv): ''' _name = 'mail.thread' _description = 'Email Thread' - + def _get_message_ids(self, cr, uid, ids, name, arg, context=None): res = {} for id in ids: res[id] = self.message_load_ids(cr, uid, [id], context=context) return res - - # OpenChatter: message_ids_social is a dummy field that should not be used + + # OpenChatter: message_ids is a dummy field that should not be used _columns = { - 'message_ids_social': fields.function(_get_message_ids, method=True, + 'message_ids': fields.function(_get_message_ids, method=True, type='one2many', obj='mail.message', string='Temp messages', _fields_id = 'res_id'), } #------------------------------------------------------ # Automatic subscription when creating/reading #------------------------------------------------------ - + def create(self, cr, uid, vals, context=None): """Automatically subscribe the creator""" thread_id = super(mail_thread, self).create(cr, uid, vals, context=context); self.message_subscribe(cr, uid, [thread_id], [uid], context=context) return thread_id; - + def write(self, cr, uid, ids, vals, context=None): """Automatically subscribe the writer""" if isinstance(ids, (int, long)): @@ -92,7 +92,7 @@ class mail_thread(osv.osv): if write_res: self.message_subscribe(cr, uid, ids, [uid], context=context) return write_res; - + def unlink(self, cr, uid, ids, context=None): """Override unlink, to automatically delete - subscriptions @@ -111,13 +111,13 @@ class mail_thread(osv.osv): # delete notifications msg_to_del_ids = msg_obj.search(cr, uid, [('model', '=', self._name), ('res_id', 'in', ids)], context=context) msg_obj.unlink(cr, uid, msg_to_del_ids, context=context) - + return super(mail_thread, self).unlink(cr, uid, ids, context=context) - + #------------------------------------------------------ # Generic message api #------------------------------------------------------ - + def message_create(self, cr, uid, thread_id, vals, context=None): """OpenSocial: wrapper of mail.message create method - creates the mail.message @@ -131,15 +131,15 @@ class mail_thread(osv.osv): notification_obj = self.pool.get('mail.notification') res_users_obj = self.pool.get('res.users') body = vals.get('body_html', '') if vals.get('subtype', 'plain') == 'html' else vals.get('body_text', '') - + # automatically subscribe the writer of the message if vals['user_id']: self.message_subscribe(cr, uid, [thread_id], [vals['user_id']], context=context) - + # get users that will get a notification pushed user_to_push_ids = self.message_create_get_notification_user_ids(cr, uid, [thread_id], vals, context=context) user_to_push_from_parse_ids = self.message_parse_users(cr, uid, [thread_id], body, context=context) - + # set email_from and email_to for comments and notifications if vals.get('type', False) and vals['type'] == 'comment' or vals['type'] == 'notification': current_user = res_users_obj.browse(cr, uid, [uid], context=context)[0] @@ -159,24 +159,24 @@ class mail_thread(osv.osv): if email_to: vals['email_to'] = email_to vals['state'] = 'outgoing' - + # create message msg_id = message_obj.create(cr, uid, vals, context=context) - + # special: if install mode, do not push demo data if context.get('install_mode', False): return True - + # push to users for id in user_to_push_ids: notification_obj.create(cr, uid, {'user_id': id, 'message_id': msg_id}, context=context) - + return msg_id - + def message_create_get_notification_user_ids(self, cr, uid, thread_ids, new_msg_vals, context=None): if context is None: context = {} - + notif_user_ids = [] body = new_msg_vals.get('body_html', '') if new_msg_vals.get('subtype', 'plain') == 'html' else new_msg_vals.get('body_text', '') for thread_id in thread_ids: @@ -193,7 +193,7 @@ class mail_thread(osv.osv): parent_notif_ids = notif_obj.search(cr, uid, [('message_id', '=', new_msg_vals.get('parent_id'))], context=context) parent_notifs = notif_obj.read(cr, uid, parent_notif_ids, context=context) notif_user_ids += [parent_notif['user_id'][0] for parent_notif in parent_notifs] - + # remove duplicate entries notif_user_ids = list(set(notif_user_ids)) return notif_user_ids @@ -214,7 +214,7 @@ class mail_thread(osv.osv): for model_name in self.pool.obj_list(): model = self.pool.get(model_name) if 'mail.thread' in getattr(model, '_inherit', []): - ret_dict[model_name] = model._description + ret_dict[model_name] = model._description return ret_dict def message_append(self, cr, uid, threads, subject, body_text=None, body_html=None, @@ -259,7 +259,7 @@ class mail_thread(osv.osv): to determine the model of the thread to update (instead of the current model). """ - if context is None: + if context is None: context = {} if attachments is None: attachments = {} @@ -329,7 +329,7 @@ class mail_thread(osv.osv): 'headers': headers, 'reply_to': reply_to, 'original': original, }) - + new_msg_ids.append(self.message_create(cr, uid, thread.id, data, context=context)) return new_msg_ids @@ -390,7 +390,7 @@ class mail_thread(osv.osv): if (cur_iter > max_iter): _logger.warning("Possible infinite loop in _message_add_ancestor_ids. Note that this algorithm is intended to check for cycle in message graph.") return child_ids - + def message_load_ids(self, cr, uid, ids, limit=100, offset=0, domain=[], ascent=False, root_ids=[], context=None): """ OpenChatter feature: return thread messages ids. It searches in mail.messages where res_id = ids, (res_)model = current model. @@ -408,13 +408,15 @@ class mail_thread(osv.osv): limit=limit, offset=offset, context=context) if (ascent): msg_ids = self._message_add_ancestor_ids(cr, uid, ids, msg_ids, root_ids, context=context) return msg_ids - + def message_load(self, cr, uid, ids, limit=100, offset=0, domain=[], ascent=False, root_ids=[], context=None): """ OpenChatter feature: return thread messages """ msg_ids = self.message_load_ids(cr, uid, ids, limit, offset, domain, ascent, root_ids, context=context) - return self.pool.get('mail.message').read(cr, uid, msg_ids, context=context) - + msgs = self.pool.get('mail.message').read(cr, uid, msg_ids, context=context) + msgs = sorted(msgs, key=lambda d: (-d['id'])) + return msgs + def get_pushed_messages(self, cr, uid, ids, limit=100, offset=0, msg_search_domain=[], ascent=False, root_ids=[], context=None): """ OpenChatter: wall: get messages to display (=pushed notifications) :param domain: domain to add to the search; especially child_of @@ -442,7 +444,7 @@ class mail_thread(osv.osv): if (ascent): msg_ids = self._message_add_ancestor_ids(cr, uid, ids, msg_ids, root_ids, context=context) msgs = msg_obj.read(cr, uid, msg_ids, context=context) return msgs - + #------------------------------------------------------ # Email specific #------------------------------------------------------ @@ -534,7 +536,7 @@ class mail_thread(osv.osv): def message_new(self, cr, uid, msg_dict, custom_values=None, context=None): """Called by ``message_process`` when a new message is received - for a given thread model, if the message did not belong to + for a given thread model, if the message did not belong to an existing thread. The default behavior is to create a new record of the corresponding model (based on some very basic info extracted from the message), @@ -660,7 +662,7 @@ class mail_thread(osv.osv): The keys used in the returned dict are meant to map to usual names for relationships towards a partner and one of its addresses. - + :param email: email address for which a partner should be searched for. :rtype: dict @@ -685,7 +687,7 @@ class mail_thread(osv.osv): #------------------------------------------------------ # Note specific #------------------------------------------------------ - + def message_broadcast(self, cr, uid, ids, subject=None, body=None, parent_id=False, type='notification', subtype='html', context=None): if context is None: context = {} @@ -710,11 +712,11 @@ class mail_thread(osv.osv): for msg_id in msg_ids: notification_obj.create(cr, uid, {'user_id': user.id, 'message_id': msg_id}, context=context) return True - + def log(self, cr, uid, id, message, secondary=False, context=None): _logger.warning("log() is deprecated. Please use OpenChatter notification system instead of the res.log mechanism.") self.message_append_note(cr, uid, [id], 'res.log', message, context=context) - + def message_append_note(self, cr, uid, ids, subject=None, body=None, parent_id=False, type='notification', subtype='html', context=None): if subject is None: if type == 'notification': @@ -730,29 +732,29 @@ class mail_thread(osv.osv): body_html = body body_text = body return self.message_append(cr, uid, ids, subject, body_html=body_html, body_text=body_text, parent_id=parent_id, type=type, subtype=subtype, context=context) - + #------------------------------------------------------ # Subscription mechanism #------------------------------------------------------ - + def message_get_subscribers_ids(self, cr, uid, ids, context=None): subscr_obj = self.pool.get('mail.subscription') subscr_ids = subscr_obj.search(cr, uid, ['&', ('res_model', '=', self._name), ('res_id', 'in', ids)], context=context) subs = subscr_obj.read(cr, uid, subscr_ids, context=context) return [sub['user_id'][0] for sub in subs] - + def message_get_subscribers(self, cr, uid, ids, context=None): user_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context) users = self.pool.get('res.users').read(cr, uid, user_ids, fields=['id', 'name', 'avatar'], context=context) return users - + def message_is_subscriber(self, cr, uid, ids, user_id = None, context=None): users = self.message_get_subscribers(cr, uid, ids, context=context) sub_user_id = uid if user_id is None else user_id if sub_user_id in [user['id'] for user in users]: return True return False - + def message_subscribe(self, cr, uid, ids, user_ids = None, context=None): subscription_obj = self.pool.get('mail.subscription') to_subscribe_uids = [uid] if user_ids is None else user_ids @@ -776,7 +778,7 @@ class mail_thread(osv.osv): #------------------------------------------------------ # Notification API #------------------------------------------------------ - + def message_remove_pushed_notifications(self, cr, uid, ids, msg_ids, remove_childs=True, context=None): if context is None: context = {} diff --git a/addons/mail/res_partner.py b/addons/mail/res_partner.py index 637922ff75c..922f3e4b6ed 100644 --- a/addons/mail/res_partner.py +++ b/addons/mail/res_partner.py @@ -24,11 +24,32 @@ from osv import fields class res_partner(osv.osv): """ Inherits partner and adds CRM information in the partner form """ - _inherit = 'res.partner' + _name = "res.partner" + _inherit = ['res.partner', 'mail.thread'] _columns = { 'emails': fields.one2many('mail.message', 'partner_id', 'Emails', readonly=True, domain=[('email_from','!=',False)]), } + def message_load_ids(self, cr, uid, ids, limit=100, offset=0, domain=[], ascent=False, root_ids=[False], context=None): + """ Override of message_load_ids + partner discussion page : + - messages posted on res.partner, partner_id = partner.id + - messages directly sent to partner + """ + msg_obj = self.pool.get('mail.message') + msg_ids = [] + partner_ids=[] + for partner in self.browse(cr, uid, ids, context=context): + msg_ids += msg_obj.search(cr, uid, [ ('res_id', '=', partner.id), ('model', '=' ,self._name)] + domain, + limit=limit, offset=offset, context=context) + if self._name=='res.partner': + partner_ids=msg_obj.search(cr, uid, [ ('partner_id', 'in', ids)] + domain, + limit=limit, offset=offset, context=context) + if partner_ids : + msg_ids+= partner_ids + if (ascent): msg_ids = self._message_add_ancestor_ids(cr, uid, ids, msg_ids, root_ids, context=context) + return msg_ids + res_partner() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail/res_partner_view.xml b/addons/mail/res_partner_view.xml index 7fc001e4fd4..eb97b725fff 100644 --- a/addons/mail/res_partner_view.xml +++ b/addons/mail/res_partner_view.xml @@ -23,6 +23,10 @@ <page string="History" position="inside"> <field name="emails" colspan="4" nolabel="1"/> </page> + <xpath expr="/form/notebook" position="after"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1" + options='{"thread_level": 1}'/> + </xpath> </field> </record> diff --git a/addons/mail/res_users_view.xml b/addons/mail/res_users_view.xml index 0411bd418dc..7df155b13c0 100644 --- a/addons/mail/res_users_view.xml +++ b/addons/mail/res_users_view.xml @@ -28,7 +28,7 @@ </field> <xpath expr="/form/sheet" position="after"> <div class="oe_form_bottom"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </xpath> </data> diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css index d37a85de73f..f8975d67b78 100644 --- a/addons/mail/static/src/css/mail.css +++ b/addons/mail/static/src/css/mail.css @@ -1,3 +1,4 @@ + /* ------------------------------ */ /* Wall */ /* ------------------------------ */ diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index b565c7e73c0..905e95f3aef 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -476,10 +476,12 @@ openerp.mail = function(session) { // QWeb template to use when rendering the object template: 'RecordThread', - init: function() { + init: function() { this._super.apply(this, arguments); this.see_subscribers = true; this.thread = null; + this.params = this.get_definition_options(); + this.params.thread_level = this.params.thread_level || 0; // datasets this.ds = new session.web.DataSet(this, this.view.model); this.ds_users = new session.web.DataSet(this, 'res.users'); @@ -520,12 +522,8 @@ openerp.mail = function(session) { // create and render Thread widget this.$element.find('div.oe_mail_recthread_left').empty(); if (this.thread) this.thread.destroy(); - // hack: for groups and users - if (this.view.model == 'mail.group') thread_level = 1; - if (this.view.model == 'res.users') thread_level = 1; - else thread_level = 0; this.thread = new mail.Thread(this, {'res_model': this.view.model, 'res_id': this.view.datarecord.id, 'uid': this.session.uid, - 'thread_level': thread_level, 'show_post_comment': true, 'limit': 15}); + 'thread_level': this.params.thread_level, 'show_post_comment': true, 'limit': 15}); var thread_done = this.thread.appendTo(this.$element.find('div.oe_mail_recthread_left')); return fetch_sub_done && thread_done; }, diff --git a/addons/marketing/res_config_view.xml b/addons/marketing/res_config_view.xml index b7230aa65a7..7a36956a9dc 100644 --- a/addons/marketing/res_config_view.xml +++ b/addons/marketing/res_config_view.xml @@ -7,10 +7,10 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Marketing" layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Apply" type="object" name="execute"/> <button string="Cancel" special="cancel"/> - </div> + </header> <sheet layout="auto"> <separator string="Campaigns" colspan="4"/> <field name="module_marketing_campaign"/> diff --git a/addons/marketing_campaign/i18n/hi.po b/addons/marketing_campaign/i18n/hi.po new file mode 100644 index 00000000000..eb5bb64f495 --- /dev/null +++ b/addons/marketing_campaign/i18n/hi.po @@ -0,0 +1,1073 @@ +# Hindi translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-29 12:12+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Hindi <hi@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-05-30 05:21+0000\n" +"X-Generator: Launchpad (build 15316)\n" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +msgid "Manual Mode" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,activity_from_id:0 +msgid "Previous Activity" +msgstr "पिछली गतिविधि" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:818 +#, python-format +msgid "The current step for this item has no email or report to preview." +msgstr "" + +#. module: marketing_campaign +#: constraint:marketing.campaign.transition:0 +msgid "The To/From Activity of transition must be of the same Campaign " +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,trigger:0 +msgid "Time" +msgstr "समय" + +#. module: marketing_campaign +#: selection:marketing.campaign.activity,type:0 +msgid "Custom Action" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +#: view:marketing.campaign.workitem:0 +msgid "Group By..." +msgstr "इस आधार पर समूहीकृत" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,revenue:0 +msgid "" +"Set an expected revenue if you consider that every campaign item that has " +"reached this point has generated a certain revenue. You can get revenue " +"statistics in the Reporting section" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,trigger:0 +msgid "Trigger" +msgstr "" + +#. module: marketing_campaign +#: field:campaign.analysis,count:0 +msgid "# of Actions" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +msgid "Campaign Editor" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: view:marketing.campaign.workitem:0 +msgid "Today" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: selection:marketing.campaign,state:0 +#: view:marketing.campaign.segment:0 +#: selection:marketing.campaign.segment,state:0 +msgid "Running" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "March" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,object_id:0 +msgid "Object" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Sync mode: only records created after last sync" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,body_text:marketing_campaign.email_template_2 +msgid "" +"Hello, We are happy to announce that you now become our Silver Partner." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +msgid "Set to Draft" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,to_ids:0 +msgid "Next Activities" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Synchronization" +msgstr "" + +#. module: marketing_campaign +#: sql_constraint:marketing.campaign.transition:0 +msgid "The interval must be positive or zero" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:818 +#, python-format +msgid "No preview" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,date_run:0 +msgid "Launch Date" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,day:0 +msgid "Day" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Outgoing Transitions" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Reset" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign,object_id:0 +msgid "Choose the resource on which you want this campaign to be run" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,sync_last_date:0 +msgid "Last Synchronization" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:214 +#, python-format +msgid "You can not duplicate a campaign, it's not supported yet." +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Year(s)" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,sync_last_date:0 +msgid "" +"Date on which this segment was synchronized last time (automatically or " +"manually)" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,state:0 +#: selection:marketing.campaign,state:0 +#: selection:marketing.campaign.segment,state:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "Cancelled" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,trigger:0 +msgid "Automatic" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign,mode:0 +msgid "" +"Test - It creates and process all the activities directly (without waiting " +"for the delay on transitions) but does not send emails or produce reports.\n" +"Test in Realtime - It creates and processes all the activities directly but " +"does not send emails or produce reports.\n" +"With Manual Confirmation - the campaigns runs normally, but the user has to " +"validate all workitem manually.\n" +"Normal - the campaign runs normally and automatically sends all emails and " +"reports (be very careful with this mode, you're live!)" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,date_run:0 +msgid "Initial start date of this segment." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,campaign_id:0 +#: view:marketing.campaign:0 +#: field:marketing.campaign.activity,campaign_id:0 +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,campaign_id:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,campaign_id:0 +msgid "Campaign" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,subject:marketing_campaign.email_template_3 +msgid "Congratulation! You become our Gold Partner." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,segment_id:0 +#: view:marketing.campaign.segment:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,segment_id:0 +msgid "Segment" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Cost / Revenue" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,type:0 +msgid "" +"The type of action to execute when an item enters this activity, such as:\n" +" - Email: send an email using a predefined email template\n" +" - Report: print an existing Report defined on the resource item and save " +"it into a specific directory\n" +" - Custom Action: execute a predefined action, e.g. to modify the fields " +"of the resource record\n" +" " +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,date_next_sync:0 +msgid "Next time the synchronization job is scheduled to run automatically" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Month(s)" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,partner_id:0 +#: model:ir.model,name:marketing_campaign.model_res_partner +#: field:marketing.campaign.workitem,partner_id:0 +msgid "Partner" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Transitions" +msgstr "" + +#. module: marketing_campaign +#: model:ir.filters,name:marketing_campaign.filter0 +msgid "Partners" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,keep_if_condition_not_met:0 +msgid "Don't delete workitems" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,state:0 +#: view:marketing.campaign:0 +#: field:marketing.campaign,state:0 +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,state:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,state:0 +msgid "State" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +msgid "Marketing Reports" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign,state:0 +#: selection:marketing.campaign.segment,state:0 +msgid "New" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,type:0 +msgid "Type" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign,name:0 +#: field:marketing.campaign.activity,name:0 +#: field:marketing.campaign.segment,name:0 +#: field:marketing.campaign.transition,name:0 +msgid "Name" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.workitem,res_name:0 +msgid "Resource Name" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,sync_mode:0 +msgid "Synchronization mode" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +msgid "Run" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,from_ids:0 +msgid "Previous Activities" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,date_done:0 +msgid "Date this segment was last closed or cancelled." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Marketing Campaign Activities" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,error_msg:0 +msgid "Error Message" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_form +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_form +#: view:marketing.campaign:0 +msgid "Campaigns" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,interval_type:0 +msgid "Interval Unit" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:792 +#, python-format +msgid "Email Preview" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,report_id:0 +#: selection:marketing.campaign.activity,type:0 +msgid "Report" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "July" +msgstr "" + +#. module: marketing_campaign +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_configuration +msgid "Configuration" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,variable_cost:0 +msgid "" +"Set a variable cost if you consider that every campaign item that has " +"reached this point has entailed a certain cost. You can get cost statistics " +"in the Reporting section" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Hour(s)" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +msgid " Month-1 " +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_segment +msgid "Campaign Segment" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +#: view:marketing.campaign.workitem:0 +msgid "Cancel" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,keep_if_condition_not_met:0 +msgid "" +"By activating this option, workitems that aren't executed because the " +"condition is not met are marked as cancelled instead of being deleted." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +msgid "Exceptions" +msgstr "" + +#. module: marketing_campaign +#: field:res.partner,workitem_ids:0 +msgid "Workitems" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign,fixed_cost:0 +msgid "Fixed Cost" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,subject:marketing_campaign.email_template_2 +msgid "Congratulation! You become now our Silver Partner." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Newly Modified" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,interval_nbr:0 +msgid "Interval Value" +msgstr "" + +#. module: marketing_campaign +#: field:campaign.analysis,revenue:0 +#: field:marketing.campaign.activity,revenue:0 +msgid "Revenue" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "September" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "December" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign,partner_field_id:0 +msgid "" +"The generated workitems will be linked to the partner related to the record. " +"If the record is the partner itself leave this field empty. This is useful " +"for reporting purposes, via the Campaign Analysis or Campaign Follow-up " +"views." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,month:0 +msgid "Month" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,activity_to_id:0 +msgid "Next Activity" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_followup +msgid "Campaign Follow-up" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,email_template_id:0 +msgid "The e-mail to send when this activity is activated" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +msgid "Test Mode" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.segment,sync_mode:0 +msgid "Only records modified after last sync (no duplicates)" +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml +msgid "ir.actions.report.xml" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_stat +msgid "Campaign Statistics" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,server_action_id:0 +msgid "The action to perform when this activity is activated" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign,partner_field_id:0 +msgid "Partner Field" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: model:ir.actions.act_window,name:marketing_campaign.action_campaign_analysis_all +#: model:ir.model,name:marketing_campaign.model_campaign_analysis +#: model:ir.ui.menu,name:marketing_campaign.menu_action_campaign_analysis_all +msgid "Campaign Analysis" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,sync_mode:0 +msgid "" +"Determines an additional criterion to add to the filter when selecting new " +"records to inject in the campaign. \"No duplicates\" prevents selecting " +"records which have already entered the campaign previously.If the campaign " +"has a \"unique field\" set, \"no duplicates\" will also prevent selecting " +"records which have the same value for the unique field as other records that " +"already entered the campaign." +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "Test in Realtime" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "Test Directly" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,report_directory_id:0 +msgid "Directory" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +msgid "Draft" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Preview" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Related Resource" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "August" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "Normal" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,start:0 +msgid "This activity is launched when the campaign starts." +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,signal:0 +msgid "" +"An activity with a signal can be called programmatically. Be careful, the " +"workitem is always created when a signal is sent" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "June" +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_email_template +msgid "Email Templates" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Sync mode: all records" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.segment,sync_mode:0 +msgid "All records (no duplicates)" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Newly Created" +msgstr "" + +#. module: marketing_campaign +#: field:campaign.analysis,date:0 +#: view:marketing.campaign.workitem:0 +msgid "Date" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "November" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +#: field:marketing.campaign.activity,condition:0 +msgid "Condition" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,report_id:0 +msgid "The report to generate when this activity is activated" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:148 +#, python-format +msgid "" +"The campaign cannot be started: it doesn't have any starting activity. " +"Modify campaign's activities to mark one as the starting point." +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign,unique_field_id:0 +msgid "Unique Field" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,state:0 +#: view:marketing.campaign.workitem:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "Exception" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "October" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,email_template_id:0 +msgid "Email Template" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "January" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,date:0 +msgid "Execution Date" +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_workitem +msgid "Campaign Workitem" +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_activity +msgid "Campaign Activity" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,report_directory_id:0 +msgid "This folder is used to store the generated reports" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:136 +#: code:addons/marketing_campaign/marketing_campaign.py:148 +#: code:addons/marketing_campaign/marketing_campaign.py:158 +#, python-format +msgid "Error" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +#: field:marketing.campaign.activity,server_action_id:0 +msgid "Action" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:528 +#, python-format +msgid "Automatic transition" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,start:0 +msgid "Start" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +#: view:res.partner:0 +msgid "History" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Process" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:530 +#: selection:marketing.campaign.transition,trigger:0 +#, python-format +msgid "Cosmetic" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.transition,trigger:0 +msgid "How is the destination workitem triggered" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,help:marketing_campaign.action_marketing_campaign_form +msgid "" +"A marketing campaign is an event or activity that will help you manage and " +"reach your partners with specific messages. A campaign can have many " +"activities that will be triggered from a specific situation. One action " +"could be sending an email template that has previously been created in the " +"system." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: selection:campaign.analysis,state:0 +#: view:marketing.campaign:0 +#: selection:marketing.campaign,state:0 +#: selection:marketing.campaign.segment,state:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "Done" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:214 +#, python-format +msgid "Operation not supported" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,body_text:marketing_campaign.email_template_3 +msgid "Hello, We are happy to announce that you become our Gold Partner." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Close" +msgstr "" + +#. module: marketing_campaign +#: constraint:marketing.campaign.segment:0 +msgid "Model of filter must be same as resource model of Campaign " +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,condition:0 +msgid "" +"Python expression to decide whether the activity can be executed, otherwise " +"it will be deleted or cancelled.The expression may use the following " +"[browsable] variables:\n" +" - activity: the campaign activity\n" +" - workitem: the campaign workitem\n" +" - resource: the resource object this campaign item represents\n" +" - transitions: list of campaign transitions outgoing from this activity\n" +"...- re: Python regular expression module" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Synchronize Manually" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,res_id:0 +msgid "Resource ID" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:136 +#, python-format +msgid "The campaign cannot be started: there are no activities in it." +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_transition +msgid "Campaign Transition" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: selection:campaign.analysis,state:0 +#: view:marketing.campaign.workitem:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "To Do" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Campaign Step" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_segment_form +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_segment_form +#: view:marketing.campaign.segment:0 +msgid "Segments" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_segment_opened +msgid "All Segments" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Incoming Transitions" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.activity,type:0 +msgid "E-mail" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Day(s)" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign,activity_ids:0 +#: view:marketing.campaign.activity:0 +msgid "Activities" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "May" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign,unique_field_id:0 +msgid "" +"If set, this field will help segments that work in \"no duplicates\" mode to " +"avoid selecting similar records twice. Similar records are records that have " +"the same value for this unique field. For example by choosing the " +"\"email_from\" field for CRM Leads you would prevent sending the same " +"campaign to the same email address again. If not set, the \"no duplicates\" " +"segments will only avoid selecting the same record again if it entered the " +"campaign previously. Only easily comparable fields like textfields, " +"integers, selections or single relationships may be used." +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:529 +#, python-format +msgid "After %(interval_nbr)d %(interval_type)s" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,subject:marketing_campaign.email_template_1 +msgid "Welcome in OpenERP Partner Channel!" +msgstr "" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign +msgid "Marketing Campaign" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,date_done:0 +msgid "End Date" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "February" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,res_id:0 +#: view:marketing.campaign:0 +#: field:marketing.campaign,object_id:0 +#: field:marketing.campaign.segment,object_id:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,object_id:0 +msgid "Resource" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign,fixed_cost:0 +msgid "" +"Fixed cost for running this campaign. You may also specify variable cost and " +"revenue on each campaign activity. Cost and Revenue statistics are included " +"in Campaign Reporting." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Sync mode: only records updated after last sync" +msgstr "" + +#. module: marketing_campaign +#: field:campaign.analysis,country_id:0 +msgid "Country" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,signal:0 +msgid "Signal" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.workitem,date:0 +msgid "If date is not set, this workitem has to be run manually" +msgstr "" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "April" +msgstr "" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:158 +#, python-format +msgid "The campaign cannot be marked as done before all segments are closed." +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: field:marketing.campaign,mode:0 +msgid "Mode" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,activity_id:0 +#: view:marketing.campaign.activity:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,activity_id:0 +msgid "Activity" +msgstr "" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,ir_filter_id:0 +msgid "" +"Filter to select the matching resource records that belong to this segment. " +"New filters can be created and saved using the advanced search on the list " +"view of the Resource. If no filter is set, all records are selected without " +"filtering. The synchronization mode may also add a criterion to the filter." +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" +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,date_next_sync:0 +msgid "Next Synchronization" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,ir_filter_id:0 +msgid "Filter" +msgstr "" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "All" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign.segment,sync_mode:0 +msgid "Only records created after last sync" +msgstr "" + +#. module: marketing_campaign +#: constraint:res.partner:0 +msgid "Error ! You cannot create recursive associated members." +msgstr "" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,variable_cost:0 +msgid "Variable Cost" +msgstr "" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "With Manual Confirmation" +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,total_cost:0 +#: view:marketing.campaign:0 +msgid "Cost" +msgstr "" + +#. module: marketing_campaign +#: model:email.template,body_text:marketing_campaign.email_template_1 +msgid "Hello, We are very happy to send Welcome message." +msgstr "" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,year:0 +msgid "Year" +msgstr "" diff --git a/addons/marketing_campaign/i18n/ja.po b/addons/marketing_campaign/i18n/ja.po new file mode 100644 index 00000000000..032a844abe4 --- /dev/null +++ b/addons/marketing_campaign/i18n/ja.po @@ -0,0 +1,1106 @@ +# Japanese translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-08 02:46+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-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +msgid "Manual Mode" +msgstr "手動モード" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,activity_from_id:0 +msgid "Previous Activity" +msgstr "前のアクティビティ" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:818 +#, python-format +msgid "The current step for this item has no email or report to preview." +msgstr "この項目の現在の手順は、プレビューすべきEメールやレポートを持ちません。" + +#. module: marketing_campaign +#: constraint:marketing.campaign.transition:0 +msgid "The To/From Activity of transition must be of the same Campaign " +msgstr "トランザクションのTo / Fromアクティビティは同じキャンペーンである必要があります。 " + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,trigger:0 +msgid "Time" +msgstr "時刻" + +#. module: marketing_campaign +#: selection:marketing.campaign.activity,type:0 +msgid "Custom Action" +msgstr "カスタムアクション" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +#: view:marketing.campaign.workitem:0 +msgid "Group By..." +msgstr "グループ化…" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,revenue:0 +msgid "" +"Set an expected revenue if you consider that every campaign item that has " +"reached this point has generated a certain revenue. You can get revenue " +"statistics in the Reporting section" +msgstr "全てのキャンペーン項目が生成するであろう、期待される売上を設定します。売上統計はレポートセクションで取得できます。" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,trigger:0 +msgid "Trigger" +msgstr "トリガー" + +#. module: marketing_campaign +#: field:campaign.analysis,count:0 +msgid "# of Actions" +msgstr "アクションの数" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +msgid "Campaign Editor" +msgstr "キャンペーンエディタ" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: view:marketing.campaign.workitem:0 +msgid "Today" +msgstr "本日" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: selection:marketing.campaign,state:0 +#: view:marketing.campaign.segment:0 +#: selection:marketing.campaign.segment,state:0 +msgid "Running" +msgstr "実行中" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "March" +msgstr "3月" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,object_id:0 +msgid "Object" +msgstr "オブジェクト" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Sync mode: only records created after last sync" +msgstr "同期モード:最終同期後に生成されたレコードのみ" + +#. module: marketing_campaign +#: model:email.template,body_text:marketing_campaign.email_template_2 +msgid "" +"Hello, We are happy to announce that you now become our Silver Partner." +msgstr "拝啓、このたび御社は、弊社のシルバーパートナとなられたことをご報告申し上げます。" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +msgid "Set to Draft" +msgstr "ドラフトに設定" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,to_ids:0 +msgid "Next Activities" +msgstr "次のアクティビティ" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Synchronization" +msgstr "同期" + +#. module: marketing_campaign +#: sql_constraint:marketing.campaign.transition:0 +msgid "The interval must be positive or zero" +msgstr "間隔は正または0である必要があります。" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:818 +#, python-format +msgid "No preview" +msgstr "プレビューなし" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,date_run:0 +msgid "Launch Date" +msgstr "起動日" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,day:0 +msgid "Day" +msgstr "日" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Outgoing Transitions" +msgstr "外向き遷移" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Reset" +msgstr "リセット" + +#. module: marketing_campaign +#: help:marketing.campaign,object_id:0 +msgid "Choose the resource on which you want this campaign to be run" +msgstr "このキャンペーンを実行するリソースを選択して下さい。" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,sync_last_date:0 +msgid "Last Synchronization" +msgstr "最終同期" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:214 +#, python-format +msgid "You can not duplicate a campaign, it's not supported yet." +msgstr "キャンペーンの重複はできません。これはまだサポートされていません。" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Year(s)" +msgstr "年" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,sync_last_date:0 +msgid "" +"Date on which this segment was synchronized last time (automatically or " +"manually)" +msgstr "このセグメントが最後に同期された(自動または手動)日付" + +#. module: marketing_campaign +#: selection:campaign.analysis,state:0 +#: selection:marketing.campaign,state:0 +#: selection:marketing.campaign.segment,state:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "Cancelled" +msgstr "キャンセル済" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,trigger:0 +msgid "Automatic" +msgstr "自動" + +#. module: marketing_campaign +#: help:marketing.campaign,mode:0 +msgid "" +"Test - It creates and process all the activities directly (without waiting " +"for the delay on transitions) but does not send emails or produce reports.\n" +"Test in Realtime - It creates and processes all the activities directly but " +"does not send emails or produce reports.\n" +"With Manual Confirmation - the campaigns runs normally, but the user has to " +"validate all workitem manually.\n" +"Normal - the campaign runs normally and automatically sends all emails and " +"reports (be very careful with this mode, you're live!)" +msgstr "" +"テスト - 全てのアクティビティを直接作成し実行します(遷移の遅延を待たずに)が、Eメール送信やレポート生成はしません。\n" +"リアルタイムテスト - 全てのアクティビティを直接作成し実行しますが、Eメール送信やレポート生成はしません。\n" +"手動確認 - キャンペーンは正常に実行されますが、ユーザは全ての作業項目を手動で検証する必要があります。\n" +"通常 - キャンペーンは正常に実行され、自動的に全てのEメールが送信されレポートされます(まさに本物。このモードはとても慎重に)。" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,date_run:0 +msgid "Initial start date of this segment." +msgstr "このセグメントの最初の開始日" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,campaign_id:0 +#: view:marketing.campaign:0 +#: field:marketing.campaign.activity,campaign_id:0 +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,campaign_id:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,campaign_id:0 +msgid "Campaign" +msgstr "キャンペーン" + +#. module: marketing_campaign +#: model:email.template,subject:marketing_campaign.email_template_3 +msgid "Congratulation! You become our Gold Partner." +msgstr "おめでとうございます。あなたはゴールドパートナとなりました。" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,segment_id:0 +#: view:marketing.campaign.segment:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,segment_id:0 +msgid "Segment" +msgstr "セグメント" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Cost / Revenue" +msgstr "経費 / 売上" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,type:0 +msgid "" +"The type of action to execute when an item enters this activity, such as:\n" +" - Email: send an email using a predefined email template\n" +" - Report: print an existing Report defined on the resource item and save " +"it into a specific directory\n" +" - Custom Action: execute a predefined action, e.g. to modify the fields " +"of the resource record\n" +" " +msgstr "" +"項目がこのアクティブティに入った時に実行するアクションのタイプです。例:\n" +" ・ Eメール:Eメールテンプレートで事前定義されたEメールを送信します。\n" +" ・ レポート:リソース項目に定義された既存のレポートを印刷し、特定のディレクトリに保存します。\n" +" ・ カスタムアクション:事前定義されたアクションを実行します。例えば、リソースレコードの項目を変更します。\n" +" " + +#. module: marketing_campaign +#: help:marketing.campaign.segment,date_next_sync:0 +msgid "Next time the synchronization job is scheduled to run automatically" +msgstr "次回は同期ジョブが自動的に実行されるようにスケジュールされます。" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Month(s)" +msgstr "月" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,partner_id:0 +#: model:ir.model,name:marketing_campaign.model_res_partner +#: field:marketing.campaign.workitem,partner_id:0 +msgid "Partner" +msgstr "パートナ" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Transitions" +msgstr "遷移" + +#. module: marketing_campaign +#: model:ir.filters,name:marketing_campaign.filter0 +msgid "Partners" +msgstr "パートナ" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,keep_if_condition_not_met:0 +msgid "Don't delete workitems" +msgstr "作業項目を削除しないで下さい。" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,state:0 +#: view:marketing.campaign:0 +#: field:marketing.campaign,state:0 +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,state:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,state:0 +msgid "State" +msgstr "状態" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +msgid "Marketing Reports" +msgstr "マーケティングレポート" + +#. module: marketing_campaign +#: selection:marketing.campaign,state:0 +#: selection:marketing.campaign.segment,state:0 +msgid "New" +msgstr "新規" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,type:0 +msgid "Type" +msgstr "タイプ" + +#. module: marketing_campaign +#: field:marketing.campaign,name:0 +#: field:marketing.campaign.activity,name:0 +#: field:marketing.campaign.segment,name:0 +#: field:marketing.campaign.transition,name:0 +msgid "Name" +msgstr "名前" + +#. module: marketing_campaign +#: field:marketing.campaign.workitem,res_name:0 +msgid "Resource Name" +msgstr "リソース名" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,sync_mode:0 +msgid "Synchronization mode" +msgstr "同期モード" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +msgid "Run" +msgstr "実行" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,from_ids:0 +msgid "Previous Activities" +msgstr "前のアクティビティ" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,date_done:0 +msgid "Date this segment was last closed or cancelled." +msgstr "このセグメントが最後に閉じたあるいはキャンセルされた日付" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Marketing Campaign Activities" +msgstr "マーケティングキャンペーンアクティビティ" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,error_msg:0 +msgid "Error Message" +msgstr "エラーメッセージ" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_form +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_form +#: view:marketing.campaign:0 +msgid "Campaigns" +msgstr "キャンペーン" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,interval_type:0 +msgid "Interval Unit" +msgstr "間隔の単位" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:792 +#, python-format +msgid "Email Preview" +msgstr "Eメールプレビュー" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,report_id:0 +#: selection:marketing.campaign.activity,type:0 +msgid "Report" +msgstr "レポート" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "July" +msgstr "7月" + +#. module: marketing_campaign +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_configuration +msgid "Configuration" +msgstr "設定" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,variable_cost:0 +msgid "" +"Set a variable cost if you consider that every campaign item that has " +"reached this point has entailed a certain cost. You can get cost statistics " +"in the Reporting section" +msgstr "全てのキャンペーン項目が必要とするであろう、変動経費を設定します。経費統計はレポートセクションで取得できます。" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Hour(s)" +msgstr "時" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +msgid " Month-1 " +msgstr " 月-1 " + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_segment +msgid "Campaign Segment" +msgstr "キャンペーンセグメント" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +#: view:marketing.campaign.workitem:0 +msgid "Cancel" +msgstr "キャンセル" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,keep_if_condition_not_met:0 +msgid "" +"By activating this option, workitems that aren't executed because the " +"condition is not met are marked as cancelled instead of being deleted." +msgstr "このオプションを有効にすることで、作業項目は実行されません。なぜなら、削除の代りにキャンセルされたとしてマークされた条件となるためです。" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +msgid "Exceptions" +msgstr "例外" + +#. module: marketing_campaign +#: field:res.partner,workitem_ids:0 +msgid "Workitems" +msgstr "作業項目" + +#. module: marketing_campaign +#: field:marketing.campaign,fixed_cost:0 +msgid "Fixed Cost" +msgstr "固定経費" + +#. module: marketing_campaign +#: model:email.template,subject:marketing_campaign.email_template_2 +msgid "Congratulation! You become now our Silver Partner." +msgstr "おめでとうございます。あなたはシルバーパートナとなりました。" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Newly Modified" +msgstr "新規に修正" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,interval_nbr:0 +msgid "Interval Value" +msgstr "間隔の値" + +#. module: marketing_campaign +#: field:campaign.analysis,revenue:0 +#: field:marketing.campaign.activity,revenue:0 +msgid "Revenue" +msgstr "売上" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "September" +msgstr "9月" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "December" +msgstr "12月" + +#. module: marketing_campaign +#: help:marketing.campaign,partner_field_id:0 +msgid "" +"The generated workitems will be linked to the partner related to the record. " +"If the record is the partner itself leave this field empty. This is useful " +"for reporting purposes, via the Campaign Analysis or Campaign Follow-up " +"views." +msgstr "" +"生成された作業項目はパートナに関連したレコードとリンクされます。レコードがパートナ自身である場合、この項目を空のままとします。これは、キャンペーンの分析や" +"キャンペーンのフォローアップビューを介して、レポート目的のために役立ちます。" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,month:0 +msgid "Month" +msgstr "月" + +#. module: marketing_campaign +#: field:marketing.campaign.transition,activity_to_id:0 +msgid "Next Activity" +msgstr "次のアクティビティ" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_followup +msgid "Campaign Follow-up" +msgstr "キャンペーンフォローアップ" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,email_template_id:0 +msgid "The e-mail to send when this activity is activated" +msgstr "このアクティビティが有効化されたときにEメールを送信します。" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +msgid "Test Mode" +msgstr "テストモード" + +#. module: marketing_campaign +#: selection:marketing.campaign.segment,sync_mode:0 +msgid "Only records modified after last sync (no duplicates)" +msgstr "最終同期後に変更されたレコードのみ(重複なし)" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_ir_actions_report_xml +msgid "ir.actions.report.xml" +msgstr "" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_stat +msgid "Campaign Statistics" +msgstr "キャンペーン統計値" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,server_action_id:0 +msgid "The action to perform when this activity is activated" +msgstr "このアクティビティが有効化された時にアクションを実行します。" + +#. module: marketing_campaign +#: field:marketing.campaign,partner_field_id:0 +msgid "Partner Field" +msgstr "パートナ項目" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: model:ir.actions.act_window,name:marketing_campaign.action_campaign_analysis_all +#: model:ir.model,name:marketing_campaign.model_campaign_analysis +#: model:ir.ui.menu,name:marketing_campaign.menu_action_campaign_analysis_all +msgid "Campaign Analysis" +msgstr "キャンペーンの分析" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,sync_mode:0 +msgid "" +"Determines an additional criterion to add to the filter when selecting new " +"records to inject in the campaign. \"No duplicates\" prevents selecting " +"records which have already entered the campaign previously.If the campaign " +"has a \"unique field\" set, \"no duplicates\" will also prevent selecting " +"records which have the same value for the unique field as other records that " +"already entered the campaign." +msgstr "" +"キャンペーンに入れる新しいレコードの選択時に、フィルタに追加する追加基準を決定します。重複なしは既に以前のキャンペーンに入れたレコードを選択するのを避けま" +"す。キャンペーンが固有項目セットと重複なしである場合、固有項目であるために同じ値を持つれレコードや既にキャンペーンで入力されたレコードを選択するのを避けま" +"す。" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "Test in Realtime" +msgstr "リアルタイムテスト" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "Test Directly" +msgstr "直接テスト" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,report_directory_id:0 +msgid "Directory" +msgstr "ディレクトリ" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: view:marketing.campaign.segment:0 +msgid "Draft" +msgstr "ドラフト" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Preview" +msgstr "プレビュー" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Related Resource" +msgstr "関連するリソース" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "August" +msgstr "8月" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "Normal" +msgstr "通常" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,start:0 +msgid "This activity is launched when the campaign starts." +msgstr "キャンペーンが開始された時に、このアクティビティは起動します。" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,signal:0 +msgid "" +"An activity with a signal can be called programmatically. Be careful, the " +"workitem is always created when a signal is sent" +msgstr "シグナルのアクティビティはプログラム化と呼ばれます。シグナルが送信された時に、作業項目はいつも作成されることに注意して下さい。" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "June" +msgstr "6月" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_email_template +msgid "Email Templates" +msgstr "Eメールテンプレート" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Sync mode: all records" +msgstr "同期モード:全レコード" + +#. module: marketing_campaign +#: selection:marketing.campaign.segment,sync_mode:0 +msgid "All records (no duplicates)" +msgstr "全レコード(重複なし)" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Newly Created" +msgstr "新規に作成" + +#. module: marketing_campaign +#: field:campaign.analysis,date:0 +#: view:marketing.campaign.workitem:0 +msgid "Date" +msgstr "日付" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "November" +msgstr "11月" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +#: field:marketing.campaign.activity,condition:0 +msgid "Condition" +msgstr "条件" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,report_id:0 +msgid "The report to generate when this activity is activated" +msgstr "このアクティビティが有効化された時に、レポートは生成されます。" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:148 +#, python-format +msgid "" +"The campaign cannot be started: it doesn't have any starting activity. " +"Modify campaign's activities to mark one as the starting point." +msgstr "" +"このキャンペーンは開始できません:これは開始アクティビティを何も持っていません。キャンペーンのアクティビティのひとつを開始点としてマークする修正を加えて下" +"さい。" + +#. module: marketing_campaign +#: field:marketing.campaign,unique_field_id:0 +msgid "Unique Field" +msgstr "固有項目" + +#. module: marketing_campaign +#: selection:campaign.analysis,state:0 +#: view:marketing.campaign.workitem:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "Exception" +msgstr "例外" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "October" +msgstr "10月" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,email_template_id:0 +msgid "Email Template" +msgstr "Eメールテンプレート" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "January" +msgstr "1月" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,date:0 +msgid "Execution Date" +msgstr "実行日" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_workitem +msgid "Campaign Workitem" +msgstr "キャンペーン作業項目" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_activity +msgid "Campaign Activity" +msgstr "キャンペーンアクティビティ" + +#. module: marketing_campaign +#: help:marketing.campaign.activity,report_directory_id:0 +msgid "This folder is used to store the generated reports" +msgstr "このフォルダは生成されたレポートを保存するのに使用されます。" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:136 +#: code:addons/marketing_campaign/marketing_campaign.py:148 +#: code:addons/marketing_campaign/marketing_campaign.py:158 +#, python-format +msgid "Error" +msgstr "エラー" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +#: field:marketing.campaign.activity,server_action_id:0 +msgid "Action" +msgstr "アクション" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:528 +#, python-format +msgid "Automatic transition" +msgstr "自動翻訳" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,start:0 +msgid "Start" +msgstr "開始" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +#: view:res.partner:0 +msgid "History" +msgstr "履歴" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Process" +msgstr "処理" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:530 +#: selection:marketing.campaign.transition,trigger:0 +#, python-format +msgid "Cosmetic" +msgstr "化粧" + +#. module: marketing_campaign +#: help:marketing.campaign.transition,trigger:0 +msgid "How is the destination workitem triggered" +msgstr "引き金となる宛先の作業項目の状態" + +#. module: marketing_campaign +#: model:ir.actions.act_window,help:marketing_campaign.action_marketing_campaign_form +msgid "" +"A marketing campaign is an event or activity that will help you manage and " +"reach your partners with specific messages. A campaign can have many " +"activities that will be triggered from a specific situation. One action " +"could be sending an email template that has previously been created in the " +"system." +msgstr "" +"マーケットキャンペーンは管理を助け、特定のメッセージをパートナに届けるイベントやアクティビティです。キャンペーンは特定の事態をきっかけとする多くのアクティ" +"ビティを持ちます。あるアクションは以前にシステムに作られたEメールテンプレートを送信できます。" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: selection:campaign.analysis,state:0 +#: view:marketing.campaign:0 +#: selection:marketing.campaign,state:0 +#: selection:marketing.campaign.segment,state:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "Done" +msgstr "完了" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:214 +#, python-format +msgid "Operation not supported" +msgstr "操作はサポートされていません。" + +#. module: marketing_campaign +#: model:email.template,body_text:marketing_campaign.email_template_3 +msgid "Hello, We are happy to announce that you become our Gold Partner." +msgstr "拝啓、このたび御社は、弊社のゴールドパートナとなられたことをご報告申し上げます。" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Close" +msgstr "閉じる" + +#. module: marketing_campaign +#: constraint:marketing.campaign.segment:0 +msgid "Model of filter must be same as resource model of Campaign " +msgstr "フィルタのモデルはキャンペーンのリソースモデルと同じである必要があります。 " + +#. module: marketing_campaign +#: help:marketing.campaign.activity,condition:0 +msgid "" +"Python expression to decide whether the activity can be executed, otherwise " +"it will be deleted or cancelled.The expression may use the following " +"[browsable] variables:\n" +" - activity: the campaign activity\n" +" - workitem: the campaign workitem\n" +" - resource: the resource object this campaign item represents\n" +" - transitions: list of campaign transitions outgoing from this activity\n" +"...- re: Python regular expression module" +msgstr "" +"アクティビティが実行できるかどうかを決定するPython式です。それ以外はそれは削除されるかキャンセルされます。式は次のような変数(参照可能)を許します:" +"\n" +" ・ activity:キャンペーンのアクティビティ\n" +" ・ workitem:キャンペーンの作業項目\n" +" ・ resource:このキャンペーン項目を代表するリソースオブジェクト\n" +" ・ transitions:このアクティビティから外向きのキャンペーン遷移のリスト\n" +" ・ re:Pythonの一般的な式のモジュール" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Synchronize Manually" +msgstr "手動同期" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,res_id:0 +msgid "Resource ID" +msgstr "リソースID" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:136 +#, python-format +msgid "The campaign cannot be started: there are no activities in it." +msgstr "キャンペーンは開始できません:アクティビティがありません。" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign_transition +msgid "Campaign Transition" +msgstr "キャンペーン遷移" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: selection:campaign.analysis,state:0 +#: view:marketing.campaign.workitem:0 +#: selection:marketing.campaign.workitem,state:0 +msgid "To Do" +msgstr "ToDo" + +#. module: marketing_campaign +#: view:marketing.campaign.workitem:0 +msgid "Campaign Step" +msgstr "キャンペーン手順" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.action_marketing_campaign_segment_form +#: model:ir.ui.menu,name:marketing_campaign.menu_marketing_campaign_segment_form +#: view:marketing.campaign.segment:0 +msgid "Segments" +msgstr "セグメント" + +#. module: marketing_campaign +#: model:ir.actions.act_window,name:marketing_campaign.act_marketing_campaing_segment_opened +msgid "All Segments" +msgstr "全セグメント" + +#. module: marketing_campaign +#: view:marketing.campaign.activity:0 +msgid "Incoming Transitions" +msgstr "内向き遷移" + +#. module: marketing_campaign +#: selection:marketing.campaign.activity,type:0 +msgid "E-mail" +msgstr "Eメール" + +#. module: marketing_campaign +#: selection:marketing.campaign.transition,interval_type:0 +msgid "Day(s)" +msgstr "日" + +#. module: marketing_campaign +#: field:marketing.campaign,activity_ids:0 +#: view:marketing.campaign.activity:0 +msgid "Activities" +msgstr "アクティビティ" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "May" +msgstr "5月" + +#. module: marketing_campaign +#: help:marketing.campaign,unique_field_id:0 +msgid "" +"If set, this field will help segments that work in \"no duplicates\" mode to " +"avoid selecting similar records twice. Similar records are records that have " +"the same value for this unique field. For example by choosing the " +"\"email_from\" field for CRM Leads you would prevent sending the same " +"campaign to the same email address again. If not set, the \"no duplicates\" " +"segments will only avoid selecting the same record again if it entered the " +"campaign previously. Only easily comparable fields like textfields, " +"integers, selections or single relationships may be used." +msgstr "" +"設定した場合、この項目は類似レコードが2回選択されることを避ける重複なしモードをセグメントに適用するのに役立ちます。類似レコードはこの固有項目に同じ値を持" +"つレコードのことです。例えば、CRMのリードのEメール送信者項目を選択すると、同じキャンペーンを同じEメールアドレスに再度送信することを防止します。設定し" +"ない場合、重複なしセグメントは以前のキャンペーンで入れられた同じレコードが再び選択されるのを防ぐのみとなります。テキスト、整数といった項目のみと簡単に比較" +"可能で、選択または単一の関連を持つもので使用できます。" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:529 +#, python-format +msgid "After %(interval_nbr)d %(interval_type)s" +msgstr "%(interval_nbr)d %(interval_type)s 後" + +#. module: marketing_campaign +#: model:email.template,subject:marketing_campaign.email_template_1 +msgid "Welcome in OpenERP Partner Channel!" +msgstr "OpenERPパートナチャネルへ、ようこそおいで下さいました。" + +#. module: marketing_campaign +#: model:ir.model,name:marketing_campaign.model_marketing_campaign +msgid "Marketing Campaign" +msgstr "マーケティングキャンペーン" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,date_done:0 +msgid "End Date" +msgstr "終了日" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "February" +msgstr "2月" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,res_id:0 +#: view:marketing.campaign:0 +#: field:marketing.campaign,object_id:0 +#: field:marketing.campaign.segment,object_id:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,object_id:0 +msgid "Resource" +msgstr "リソース" + +#. module: marketing_campaign +#: help:marketing.campaign,fixed_cost:0 +msgid "" +"Fixed cost for running this campaign. You may also specify variable cost and " +"revenue on each campaign activity. Cost and Revenue statistics are included " +"in Campaign Reporting." +msgstr "" +"実行中のこのキャンペーンのための固定経費。各キャンペーンアクティビティに変動経費と売上を定義することができます。経費と売上統計はキャンペーンレポートに含ま" +"れます。" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "Sync mode: only records updated after last sync" +msgstr "同期モード:最終同期後の更新レコードのみ" + +#. module: marketing_campaign +#: field:campaign.analysis,country_id:0 +msgid "Country" +msgstr "国" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,signal:0 +msgid "Signal" +msgstr "シグナル" + +#. module: marketing_campaign +#: help:marketing.campaign.workitem,date:0 +msgid "If date is not set, this workitem has to be run manually" +msgstr "日付が設定されない場合、この作業項目は手動で実行する必要があります。" + +#. module: marketing_campaign +#: selection:campaign.analysis,month:0 +msgid "April" +msgstr "4月" + +#. module: marketing_campaign +#: code:addons/marketing_campaign/marketing_campaign.py:158 +#, python-format +msgid "The campaign cannot be marked as done before all segments are closed." +msgstr "全セグメントが閉じない限り、このキャンペーンは完了とはマークされません。" + +#. module: marketing_campaign +#: view:marketing.campaign:0 +#: field:marketing.campaign,mode:0 +msgid "Mode" +msgstr "モード" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,activity_id:0 +#: view:marketing.campaign.activity:0 +#: view:marketing.campaign.workitem:0 +#: field:marketing.campaign.workitem,activity_id:0 +msgid "Activity" +msgstr "アクティビティ" + +#. module: marketing_campaign +#: help:marketing.campaign.segment,ir_filter_id:0 +msgid "" +"Filter to select the matching resource records that belong to this segment. " +"New filters can be created and saved using the advanced search on the list " +"view of the Resource. If no filter is set, all records are selected without " +"filtering. The synchronization mode may also add a criterion to the filter." +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" +msgstr "キャンペーンフォローアップ" + +#. module: marketing_campaign +#: field:marketing.campaign.segment,date_next_sync:0 +msgid "Next Synchronization" +msgstr "次の同期" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +#: field:marketing.campaign.segment,ir_filter_id:0 +msgid "Filter" +msgstr "フィルタ" + +#. module: marketing_campaign +#: view:marketing.campaign.segment:0 +msgid "All" +msgstr "全て" + +#. module: marketing_campaign +#: selection:marketing.campaign.segment,sync_mode:0 +msgid "Only records created after last sync" +msgstr "最終同期後に作成されたレコードのみ" + +#. module: marketing_campaign +#: constraint:res.partner:0 +msgid "Error ! You cannot create recursive associated members." +msgstr "エラー。再帰的な関係となる会員を作ることはできません。" + +#. module: marketing_campaign +#: field:marketing.campaign.activity,variable_cost:0 +msgid "Variable Cost" +msgstr "変動経費" + +#. module: marketing_campaign +#: selection:marketing.campaign,mode:0 +msgid "With Manual Confirmation" +msgstr "手動確認" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,total_cost:0 +#: view:marketing.campaign:0 +msgid "Cost" +msgstr "経費" + +#. module: marketing_campaign +#: model:email.template,body_text:marketing_campaign.email_template_1 +msgid "Hello, We are very happy to send Welcome message." +msgstr "こんにちは。これは歓迎メッセージです。" + +#. module: marketing_campaign +#: view:campaign.analysis:0 +#: field:campaign.analysis,year:0 +msgid "Year" +msgstr "年" diff --git a/addons/marketing_campaign/marketing_campaign_view.xml b/addons/marketing_campaign/marketing_campaign_view.xml index 4f401b386ef..9be08469cf4 100644 --- a/addons/marketing_campaign/marketing_campaign_view.xml +++ b/addons/marketing_campaign/marketing_campaign_view.xml @@ -16,16 +16,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="state_running_set" string="Run" states="draft"/> <button name="state_done_set" string="Done" states="running"/> <button name="state_draft_set" string="Set to Draft" states="done,cancelled"/> <button name="state_cancel_set" string="Cancel" states="running"/> - <div class="oe_right"> - <field name="state" readonly="1" widget="statusbar" nolabel="1" statusbar_visible="draft,running,done"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/> + </header> <sheet string="Campaign" layout="auto"> <group colspan="4" col="6"> <group colspan="2" col="2"> @@ -140,16 +137,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="state_running_set" string="Run" states="draft"/> <button name="state_done_set" string="Close" states="running"/> <button name="state_draft_set" string="Set to Draft" states="done,cancelled"/> <button name="state_cancel_set" string="Cancel" states="running"/> - <div class="oe_right"> - <field name="state" readonly="1" nolabel="1" widget="statusbar" statusbar_visible="draft,running,done"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/> + </header> <sheet string="Segments" layout="auto"> <group colspan="2" col="2"> <separator string="Segment" colspan="4"/> @@ -189,7 +183,6 @@ <field name="campaign_id"/> <field name="date_run"/> <field name="sync_last_date"/> - <button string="Synchronize Manually" states="running" name="synchroniz" icon="terp-project" type="object"/> <field name="state" /> </tree> </field> @@ -365,15 +358,12 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Process" states="todo" name="process" type="object"/> <button string="Reset" states="exception,cancelled" name="button_draft" type="object"/> <button string="Cancel" states="todo,exception" name="button_cancel" type="object"/> - <div class="oe_right"> - <field name="state" readonly="True" nolabel="1" widget="statusbar" statusbar_visible="todo,done" statusbar_colors='{"exception":"red"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" readonly="True" widget="statusbar" statusbar_visible="todo,done" statusbar_colors='{"exception":"red"}'/> + </header> <sheet string="Marketing Campaign Activities" layout="auto"> <group colspan="4" col="6"> <group colspan="2" col="2"> diff --git a/addons/marketing_campaign_crm_demo/i18n/ja.po b/addons/marketing_campaign_crm_demo/i18n/ja.po new file mode 100644 index 00000000000..dcf5982da3b --- /dev/null +++ b/addons/marketing_campaign_crm_demo/i18n/ja.po @@ -0,0 +1,187 @@ +# Japanese translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-25 22:02+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-05-26 05:07+0000\n" +"X-Generator: Launchpad (build 15288)\n" + +#. module: marketing_campaign_crm_demo +#: model:ir.actions.report.xml,name:marketing_campaign_crm_demo.mc_crm_lead_demo_report +msgid "Marketing campaign demo report" +msgstr "マーケティングキャンペーンデモレポート" + +#. module: marketing_campaign_crm_demo +#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_1 +msgid "" +"Hello,Thanks for generous interest you have shown in the " +"openERP.Regards,OpenERP Team," +msgstr "拝啓、OpenERPにご興味を持っていただき、ありがとうございます。OpenERPチーム一同、" + +#. module: marketing_campaign_crm_demo +#: report:crm.lead.demo:0 +msgid "Company :" +msgstr "会社:" + +#. module: marketing_campaign_crm_demo +#: model:email.template,subject:marketing_campaign_crm_demo.email_template_4 +msgid "Thanks for buying the OpenERP book" +msgstr "OpenERPブックのお買い上げのお礼" + +#. module: marketing_campaign_crm_demo +#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_6 +msgid "" +"Hello, We have very good offer that might suit you.\n" +" For our silver partners,We are paid technical training on " +"june,2010.\n" +" If any further information required kindly revert back.\n" +" I really appreciate your co-operation on this.\n" +" Regards,OpenERP Team," +msgstr "" +"拝啓、私どもは御社に適合した最適な提案を各種用意いたしております。\n" +" シルバーパートナの皆様に、2010年6月に有料の技術トレーニングを開催いたします。\n" +" より詳しい情報につきましては、どうぞお問い合わせ下さい。\n" +" それではよろしくお願いいたします。\n" +" OpenERPチーム一同、" + +#. module: marketing_campaign_crm_demo +#: model:email.template,subject:marketing_campaign_crm_demo.email_template_5 +msgid "Propose a free technical training to Gold partners" +msgstr "ゴールドパートナの皆様へのに無料の技術トレーニングのご提案" + +#. module: marketing_campaign_crm_demo +#: model:email.template,subject:marketing_campaign_crm_demo.email_template_3 +msgid "Thanks for subscribing to the OpenERP Discovery Day" +msgstr "OpenERPディスカバリーディにご参加のお礼" + +#. module: marketing_campaign_crm_demo +#: model:ir.actions.server,name:marketing_campaign_crm_demo.action_dummy +msgid "Dummy Action" +msgstr "ダミーアクション" + +#. module: marketing_campaign_crm_demo +#: report:crm.lead.demo:0 +msgid "Partner :" +msgstr "パートナ:" + +#. module: marketing_campaign_crm_demo +#: model:email.template,subject:marketing_campaign_crm_demo.email_template_1 +msgid "Thanks for showing interest in OpenERP" +msgstr "OpenERPにご興味を持っていただき、ありがとうございます。" + +#. module: marketing_campaign_crm_demo +#: model:email.template,subject:marketing_campaign_crm_demo.email_template_2 +msgid "Propose to subscribe to the OpenERP Discovery Day on May 2010" +msgstr "2010年5月開催のOpenERPディスカバリーディへの登録のご提案" + +#. module: marketing_campaign_crm_demo +#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_7 +msgid "" +"Hello, We have very good offer that might suit you.\n" +" For our silver partners,We are offering Gold partnership.\n" +" If any further information required kindly revert back.\n" +" I really appreciate your co-operation on this.\n" +" Regards,OpenERP Team," +msgstr "" +"拝啓、私どもは御社に適合した最適な提案を各種用意いたしております。\n" +" シルバーパートナの皆様に、ゴールドパートナシップをご提案させていただきます。\n" +" より詳しい情報につきましては、どうぞお問い合わせ下さい。\n" +" それではよろしくお願いいたします。\n" +" OpenERPチーム一同、" + +#. module: marketing_campaign_crm_demo +#: model:email.template,subject:marketing_campaign_crm_demo.email_template_7 +msgid "Propose gold partnership to silver partners" +msgstr "シルバーパートナの皆様にゴールドパートナシップのご提案" + +#. module: marketing_campaign_crm_demo +#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_4 +msgid "" +"Hello,Thanks for showing intrest and buying the OpenERP book.\n" +" If any further information required kindly revert back.\n" +" I really appreciate your co-operation on this.\n" +" Regards,OpenERP Team," +msgstr "" +"拝啓、このたびはOpenERPブックのご購入、ありがとうございました。\n" +" より詳しい情報につきましては、どうぞお問い合わせ下さい。\n" +" それではよろしくお願いいたします。\n" +" OpenERPチーム一同、" + +#. module: marketing_campaign_crm_demo +#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_5 +msgid "" +"Hello, We have very good offer that might suit you.\n" +" For our gold partners,We are arranging free technical training " +"on june,2010.\n" +" If any further information required kindly revert back.\n" +" I really appreciate your co-operation on this.\n" +" Regards,OpenERP Team," +msgstr "" +"拝啓、私どもは御社に適合した最適な提案を各種用意いたしております。\n" +" ゴールドパートナの皆様に、2010年6月に、無料の技術トレーニングを企画いたしました。\n" +" より詳しい情報は、どうぞお問い合わせ下さい。\n" +" それではよろしくお願いいたします。\n" +" OpenERPチーム一同、" + +#. module: marketing_campaign_crm_demo +#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_3 +msgid "" +"Hello,Thanks for showing intrest and for subscribing to the OpenERP " +"Discovery Day.\n" +" If any further information required kindly revert back.\n" +" I really appreciate your co-operation on this.\n" +" Regards,OpenERP Team," +msgstr "" +"拝啓、このたびはOpenERPディスカバリーディへのご登録をいただき、ありがとうございます。\n" +" より詳しい情報につきましては、どうぞお問い合わせ下さい。\n" +" それではよろしくお願いいたします。\n" +" OpenERPチーム一同、" + +#. module: marketing_campaign_crm_demo +#: model:email.template,subject:marketing_campaign_crm_demo.email_template_8 +msgid "Thanks for subscribing to technical training" +msgstr "技術トレーニング参加のお礼" + +#. module: marketing_campaign_crm_demo +#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_2 +msgid "" +"Hello,We have very good offer that might suit you.\n" +" We propose you to subscribe to the OpenERP Discovery Day on May " +"2010.\n" +" If any further information required kindly revert back.\n" +" We really appreciate your co-operation on this.\n" +" Regards,OpenERP Team," +msgstr "" +"拝啓、私どもは御社に適合した最適な提案を各種用意いたしております。\n" +" 私どもは、2010年5月に開催される、OpenERPディスカバリーディへのご参加をご案内申し上げます。\n" +" より詳しい情報につきましては、どうぞお問い合わせ下さい。\n" +" それではよろしくお願いいたします。\n" +" OpenERPチーム一同、" + +#. module: marketing_campaign_crm_demo +#: model:email.template,body_text:marketing_campaign_crm_demo.email_template_8 +msgid "" +"Hello, Thanks for showing intrest and for subscribing to technical " +"training.If any further information required kindly revert back.I really " +"appreciate your co-operation on this.\n" +" Regards,OpenERP Team," +msgstr "" +"拝啓、このたびは技術トレーニングにご登録いただき、ありがとうございました。より詳しい情報につきましては、どうぞお問い合わせ下さい。それではよろしくお願いい" +"たします。\n" +" OenERPチーム一同、" + +#. module: marketing_campaign_crm_demo +#: model:email.template,subject:marketing_campaign_crm_demo.email_template_6 +msgid "Propose paid training to Silver partners" +msgstr "シルバーパートナの皆様に有料トレーニングのご提案" diff --git a/addons/membership/i18n/ja.po b/addons/membership/i18n/ja.po new file mode 100644 index 00000000000..d32ca79deee --- /dev/null +++ b/addons/membership/i18n/ja.po @@ -0,0 +1,888 @@ +# Japanese translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-07 17:00+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-08 04:39+0000\n" +"X-Generator: Launchpad (build 15376)\n" + +#. module: membership +#: model:process.transition,name:membership.process_transition_invoicetoassociate0 +msgid "invoice to associate" +msgstr "準会員への請求書" + +#. module: membership +#: model:process.process,name:membership.process_process_membershipprocess0 +msgid "Membership Process" +msgstr "会員処理" + +#. module: membership +#: selection:membership.membership_line,state:0 +#: selection:report.membership,membership_state:0 +#: selection:res.partner,membership_state:0 +msgid "Paid Member" +msgstr "支払済会員" + +#. module: membership +#: view:report.membership:0 +#: view:res.partner:0 +msgid "Group By..." +msgstr "グループ化…" + +#. module: membership +#: field:report.membership,num_paid:0 +msgid "# Paid" +msgstr "支払済数" + +#. module: membership +#: field:report.membership,tot_earned:0 +msgid "Earned Amount" +msgstr "獲得金額" + +#. module: membership +#: model:ir.model,name:membership.model_report_membership +msgid "Membership Analysis" +msgstr "会員分析" + +#. module: membership +#: selection:report.membership,month:0 +msgid "March" +msgstr "3月" + +#. module: membership +#: model:process.node,note:membership.process_node_setassociation0 +msgid "Set an associate member of partner." +msgstr "パートナの準会員として設定" + +#. module: membership +#: model:process.transition,note:membership.process_transition_invoicetopaid0 +msgid "Invoice is be paid." +msgstr "請求書は支払済です。" + +#. module: membership +#: field:membership.membership_line,company_id:0 +#: view:report.membership:0 +#: field:report.membership,company_id:0 +msgid "Company" +msgstr "会社" + +#. module: membership +#: view:res.partner:0 +msgid "Ending Date Of Membership" +msgstr "会員の終了日" + +#. module: membership +#: field:product.product,membership_date_to:0 +msgid "Date to" +msgstr "終了日" + +#. module: membership +#: model:process.transition,name:membership.process_transition_waitingtoinvoice0 +msgid "Waiting to invoice" +msgstr "請求書待機中" + +#. module: membership +#: view:report.membership:0 +msgid "This will display paid, old and total earned columns" +msgstr "これは支払済、古い合計収入列を表示します。" + +#. module: membership +#: view:res.partner:0 +msgid "Suppliers" +msgstr "仕入先" + +#. module: membership +#: selection:membership.membership_line,state:0 +#: selection:report.membership,membership_state:0 +#: selection:res.partner,membership_state:0 +msgid "Non Member" +msgstr "非会員" + +#. module: membership +#: model:product.template,name:membership.membership_2_product_template +msgid "Basic Membership" +msgstr "基本会員" + +#. module: membership +#: view:res.partner:0 +msgid "All Members" +msgstr "全会員" + +#. module: membership +#: field:res.partner,membership_stop:0 +msgid "Stop membership date" +msgstr "脱退日" + +#. module: membership +#: model:process.transition,name:membership.process_transition_producttomember0 +msgid "Product to member" +msgstr "会員への製品" + +#. module: membership +#: view:res.partner:0 +msgid "Join Membership" +msgstr "会員への参加" + +#. module: membership +#: field:res.partner,associate_member:0 +msgid "Associate member" +msgstr "準会員" + +#. module: membership +#: model:process.node,note:membership.process_node_associatedmember0 +msgid "Member is associated." +msgstr "会員は関連付けられました。" + +#. module: membership +#: view:report.membership:0 +msgid " Month " +msgstr " 月 " + +#. module: membership +#: field:report.membership,tot_pending:0 +msgid "Pending Amount" +msgstr "保留中金額" + +#. module: membership +#: model:process.transition,note:membership.process_transition_associationpartner0 +msgid "Associated partner." +msgstr "関連パートナ" + +#. module: membership +#: view:res.partner:0 +msgid "Supplier Partners" +msgstr "仕入先パートナ" + +#. module: membership +#: field:report.membership,num_invoiced:0 +msgid "# Invoiced" +msgstr "請求済数" + +#. module: membership +#: constraint:account.invoice:0 +msgid "Invalid BBA Structured Communication !" +msgstr "無効なBBA(ブロードバンドアクセス)構造の通信" + +#. module: membership +#: model:ir.actions.act_window,name:membership.action_report_membership_tree +#: model:ir.ui.menu,name:membership.menu_report_membership +msgid "Members Analysis" +msgstr "会員分析" + +#. module: membership +#: view:res.partner:0 +msgid "End Membership Date" +msgstr "会員の終了日" + +#. module: membership +#: field:product.product,membership_date_from:0 +msgid "Date from" +msgstr "開始日" + +#. module: membership +#: code:addons/membership/membership.py:414 +#, python-format +msgid "Partner doesn't have an address to make the invoice." +msgstr "パートナは請求書を作成するための住所を持っていません。" + +#. module: membership +#: model:ir.model,name:membership.model_res_partner +#: field:membership.membership_line,partner:0 +msgid "Partner" +msgstr "パートナ" + +#. module: membership +#: model:process.transition,name:membership.process_transition_invoicetopaid0 +msgid "Invoice to paid" +msgstr "支払請求書" + +#. module: membership +#: view:res.partner:0 +msgid "Customer Partners" +msgstr "顧客パートナ" + +#. module: membership +#: view:res.partner:0 +msgid "Partners" +msgstr "パートナ" + +#. module: membership +#: field:membership.membership_line,date_from:0 +msgid "From" +msgstr "送信者" + +#. module: membership +#: constraint:membership.membership_line:0 +msgid "Error, this membership product is out of date" +msgstr "エラー。この会員製品は期間外です。" + +#. module: membership +#: help:res.partner,membership_state:0 +msgid "" +"It indicates the membership state.\n" +" -Non Member: A member who has not applied for any " +"membership.\n" +" -Cancelled Member: A member who has cancelled his " +"membership.\n" +" -Old Member: A member whose membership date has " +"expired.\n" +" -Waiting Member: A member who has applied for the " +"membership and whose invoice is going to be created.\n" +" -Invoiced Member: A member whose invoice has been " +"created.\n" +" -Paid Member: A member who has paid the membership " +"amount." +msgstr "" +"会員の状態を次のように表します。\n" +" ・ 非会員:どの会員にも申し込んでいない\n" +" ・ キャンセル会員:会員をキャンセルした\n" +" ・ 旧会員:会員の有効期限切れ\n" +" ・ 待機会員:会員に申込を行い、請求書が作成される予定\n" +" ・ 請求済会員:請求書を作成済\n" +" ・ 支払済会員:会員金額を支払済" + +#. module: membership +#: model:process.transition.action,name:membership.process_transition_action_create0 +msgid "Create" +msgstr "作成" + +#. module: membership +#: view:product.product:0 +msgid "Membership products" +msgstr "会員製品" + +#. module: membership +#: model:ir.model,name:membership.model_membership_membership_line +msgid "Member line" +msgstr "会員行" + +#. module: membership +#: help:report.membership,date_from:0 +#: field:res.partner,membership_start:0 +msgid "Start membership date" +msgstr "会員開始日" + +#. module: membership +#: view:report.membership:0 +msgid "Events created in current month" +msgstr "今月、作成したイベント" + +#. module: membership +#: view:report.membership:0 +msgid "This will display waiting, invoiced and total pending columns" +msgstr "これは待機中、請求済の合計保留中列を表示します。" + +#. module: membership +#: code:addons/membership/membership.py:410 +#: code:addons/membership/membership.py:413 +#, python-format +msgid "Error !" +msgstr "エラー" + +#. module: membership +#: model:process.node,name:membership.process_node_paidmember0 +msgid "Paid member" +msgstr "支払番号" + +#. module: membership +#: view:report.membership:0 +msgid " Month-1 " +msgstr " 月-1 " + +#. module: membership +#: view:report.membership:0 +msgid "Events created in last month" +msgstr "先月、作成したイベント" + +#. module: membership +#: field:report.membership,num_waiting:0 +msgid "# Waiting" +msgstr "待機数" + +#. module: membership +#: view:report.membership:0 +msgid "Events created in current year" +msgstr "今年度に作成したイベント" + +#. module: membership +#: model:ir.actions.act_window,name:membership.action_membership_members +#: model:ir.ui.menu,name:membership.menu_members +#: view:res.partner:0 +msgid "Members" +msgstr "会員" + +#. module: membership +#: view:res.partner:0 +msgid "Invoiced/Paid/Free" +msgstr "請求済 / 支払済 / 無料" + +#. module: membership +#: model:process.node,note:membership.process_node_invoicedmember0 +msgid "Open invoice." +msgstr "請求書を開く" + +#. module: membership +#: selection:report.membership,month:0 +msgid "July" +msgstr "7月" + +#. module: membership +#: model:product.template,name:membership.membership_0_product_template +msgid "Golden Membership" +msgstr "ゴールド会員" + +#. module: membership +#: help:res.partner,associate_member:0 +msgid "" +"A member with whom you want to associate your membership.It will consider " +"the membership state of the associated member." +msgstr "あなたが関連付けたい会員。それは会員の関係性の会員状態を考慮します。" + +#. module: membership +#: field:membership.membership_line,membership_id:0 +#: view:report.membership:0 +#: field:report.membership,membership_id:0 +msgid "Membership Product" +msgstr "会員の製品" + +#. module: membership +#: model:process.transition,note:membership.process_transition_producttomember0 +msgid "Define product for membership." +msgstr "会員のための製品を定義して下さい。" + +#. module: membership +#: model:process.transition,note:membership.process_transition_invoicetoassociate0 +msgid "Invoiced member may be Associated member." +msgstr "請求済会員は会員と関係付けることができます。" + +#. module: membership +#: view:membership.invoice:0 +msgid "Join" +msgstr "参加" + +#. module: membership +#: help:product.product,membership_date_to:0 +#: help:res.partner,membership_stop:0 +msgid "Date until which membership remains active." +msgstr "会員の有効期限となる日付です。" + +#. module: membership +#: field:res.partner,membership_cancel:0 +msgid "Cancel membership date" +msgstr "会員キャンセル日" + +#. module: membership +#: field:membership.membership_line,date:0 +msgid "Join Date" +msgstr "参加日" + +#. module: membership +#: help:res.partner,free_member:0 +msgid "Select if you want to give membership free of cost." +msgstr "無料で与えたい会員を選択して下さい。" + +#. module: membership +#: model:process.node,name:membership.process_node_setassociation0 +msgid "Set association" +msgstr "関連を設定" + +#. module: membership +#: view:res.partner:0 +msgid " Membership State" +msgstr " 会員状態" + +#. module: membership +#: view:res.partner:0 +msgid "Memberships" +msgstr "会員" + +#. module: membership +#: model:process.node,note:membership.process_node_paidmember0 +msgid "Membership invoice paid." +msgstr "会員請求書は支払済です。" + +#. module: membership +#: model:ir.model,name:membership.model_product_template +msgid "Product Template" +msgstr "製品テンプレート" + +#. module: membership +#: selection:report.membership,month:0 +msgid "September" +msgstr "9月" + +#. module: membership +#: selection:report.membership,month:0 +msgid "December" +msgstr "12月" + +#. module: membership +#: model:ir.model,name:membership.model_account_invoice_line +msgid "Invoice Line" +msgstr "請求書行" + +#. module: membership +#: help:membership.membership_line,state:0 +msgid "" +"It indicates the membership state.\n" +" -Non Member: A member who has not applied for any " +"membership.\n" +" -Cancelled Member: A member who has cancelled his " +"membership.\n" +" -Old Member: A member whose membership date has " +"expired.\n" +" -Waiting Member: A member who has applied for the " +"membership and whose invoice is going to be created.\n" +" -Invoiced Member: A member whose invoice has been " +"created.\n" +" -Paid Member: A member who has paid the membership " +"amount." +msgstr "" +"会員の状態を次のように表します。\n" +" ・ 非会員:どの会員にも申し込んでいない\n" +" ・ キャンセル会員:会員をキャンセルした\n" +" ・ 旧会員:会員の有効期限切れ\n" +" ・ 待機会員:会員に申込を行い、請求書が作成される予定\n" +" ・ 請求済会員:請求書を作成済\n" +" ・ 支払済会員:会員金額を支払済" + +#. module: membership +#: view:report.membership:0 +#: field:report.membership,month:0 +msgid "Month" +msgstr "月" + +#. module: membership +#: view:product.product:0 +msgid "Group by..." +msgstr "グル―プ化…" + +#. module: membership +#: code:addons/membership/membership.py:411 +#, python-format +msgid "Partner is a free Member." +msgstr "パートナは無料会員です。" + +#. module: membership +#: model:product.pricelist,name:membership.list1m +msgid "Member Sale Pricelist" +msgstr "会員販売価格表" + +#. module: membership +#: field:report.membership,associate_member_id:0 +#: view:res.partner:0 +msgid "Associate Member" +msgstr "関連会員" + +#. module: membership +#: help:product.product,membership_date_from:0 +#: help:res.partner,membership_start:0 +msgid "Date from which membership becomes active." +msgstr "会員として有効になる日付です。" + +#. module: membership +#: view:report.membership:0 +msgid "Associated Partner" +msgstr "関連パートナ" + +#. module: membership +#: model:ir.model,name:membership.model_membership_invoice +#: view:membership.invoice:0 +msgid "Membership Invoice" +msgstr "会員請求書" + +#. module: membership +#: view:report.membership:0 +#: field:report.membership,user_id:0 +#: view:res.partner:0 +msgid "Salesman" +msgstr "販売員" + +#. module: membership +#: model:process.node,note:membership.process_node_membershipproduct0 +msgid "Define membership product." +msgstr "会員製品を定義して下さい。" + +#. module: membership +#: view:product.product:0 +msgid "Category" +msgstr "分類" + +#. module: membership +#: selection:membership.membership_line,state:0 +#: selection:report.membership,membership_state:0 +#: selection:res.partner,membership_state:0 +msgid "Free Member" +msgstr "無料会員" + +#. module: membership +#: model:product.pricelist.version,name:membership.ver1m +msgid "Member Sale Pricelist Version" +msgstr "会員販売価格表バージョン" + +#. module: membership +#: constraint:product.template:0 +msgid "" +"Error: The default UOM and the purchase UOM must be in the same category." +msgstr "エラー:デフォルトの単位と仕入単位は同じ分類でなければいけません。" + +#. module: membership +#: view:report.membership:0 +msgid "Forecast" +msgstr "予測" + +#. module: membership +#: field:report.membership,partner_id:0 +msgid "Member" +msgstr "会員" + +#. module: membership +#: view:product.product:0 +msgid "Date From" +msgstr "開始日" + +#. module: membership +#: model:process.node,name:membership.process_node_associatedmember0 +msgid "Associated member" +msgstr "関連会員" + +#. module: membership +#: view:product.product:0 +msgid "Accounting Info" +msgstr "会計情報" + +#. module: membership +#: help:report.membership,date_to:0 +msgid "End membership date" +msgstr "会員終了日" + +#. module: membership +#: view:res.partner:0 +msgid "Customers" +msgstr "顧客" + +#. module: membership +#: selection:report.membership,month:0 +msgid "August" +msgstr "8月" + +#. module: membership +#: model:ir.actions.act_window,name:membership.action_membership_products +#: model:ir.ui.menu,name:membership.menu_membership_products +#: view:product.product:0 +msgid "Membership Products" +msgstr "会員製品" + +#. module: membership +#: selection:report.membership,month:0 +msgid "June" +msgstr "6月" + +#. module: membership +#: model:ir.ui.menu,name:membership.menu_membership +#: field:membership.invoice,product_id:0 +#: view:product.product:0 +#: field:product.product,membership:0 +#: view:report.membership:0 +#: view:res.partner:0 +#: field:res.partner,member_lines:0 +msgid "Membership" +msgstr "会員" + +#. module: membership +#: selection:membership.membership_line,state:0 +#: selection:report.membership,membership_state:0 +#: selection:res.partner,membership_state:0 +msgid "Invoiced Member" +msgstr "請求済会員" + +#. module: membership +#: help:membership.membership_line,date:0 +msgid "Date on which member has joined the membership" +msgstr "会員となった日付" + +#. module: membership +#: selection:membership.membership_line,state:0 +#: selection:report.membership,membership_state:0 +#: selection:res.partner,membership_state:0 +msgid "Waiting Member" +msgstr "待機会員" + +#. module: membership +#: model:process.transition,name:membership.process_transition_associationpartner0 +msgid "Association Partner" +msgstr "関連パートナ" + +#. module: membership +#: field:report.membership,date_from:0 +#: view:res.partner:0 +msgid "Start Date" +msgstr "開始日" + +#. module: membership +#: selection:report.membership,month:0 +msgid "November" +msgstr "11月" + +#. module: membership +#: help:product.product,membership:0 +msgid "Select if a product is a membership product." +msgstr "製品が会員製品の時に選択して下さい。" + +#. module: membership +#: field:membership.membership_line,state:0 +msgid "Membership State" +msgstr "会員状態" + +#. module: membership +#: selection:report.membership,month:0 +msgid "October" +msgstr "10月" + +#. module: membership +#: view:product.product:0 +msgid "Sale Description" +msgstr "販売説明" + +#. module: membership +#: selection:report.membership,month:0 +msgid "January" +msgstr "1月" + +#. module: membership +#: view:res.partner:0 +msgid "Membership Partners" +msgstr "会員パートナ" + +#. module: membership +#: view:product.product:0 +msgid "Membership Fee" +msgstr "会員料金" + +#. module: membership +#: field:res.partner,membership_amount:0 +msgid "Membership amount" +msgstr "会員金額" + +#. module: membership +#: help:res.partner,membership_amount:0 +msgid "The price negotiated by the partner" +msgstr "パートナ別交渉価格" + +#. module: membership +#: sql_constraint:account.invoice:0 +msgid "Invoice Number must be unique per Company!" +msgstr "請求書番号は会社ごとに固有である必要があります。" + +#. module: membership +#: view:res.partner:0 +msgid "None/Canceled/Old/Waiting" +msgstr "非 / キャンセル / 旧 / 待機" + +#. module: membership +#: selection:membership.membership_line,state:0 +#: selection:report.membership,membership_state:0 +#: selection:res.partner,membership_state:0 +msgid "Old Member" +msgstr "旧会員" + +#. module: membership +#: field:membership.membership_line,date_to:0 +msgid "To" +msgstr "終了" + +#. module: membership +#: view:report.membership:0 +#: field:report.membership,membership_state:0 +#: field:res.partner,membership_state:0 +msgid "Current Membership State" +msgstr "現在の会員状態" + +#. module: membership +#: view:product.product:0 +msgid "General" +msgstr "一般" + +#. module: membership +#: model:process.transition,note:membership.process_transition_waitingtoinvoice0 +msgid "Draft invoice is now open." +msgstr "ドラフト請求書が今、開かれました。" + +#. module: membership +#: view:product.product:0 +msgid "Inactive" +msgstr "非アクティブ" + +#. module: membership +#: model:ir.model,name:membership.model_account_invoice +#: field:membership.membership_line,account_invoice_id:0 +msgid "Invoice" +msgstr "請求書" + +#. module: membership +#: view:membership.invoice:0 +msgid "Close" +msgstr "閉じる" + +#. module: membership +#: view:res.partner:0 +msgid "All non Members" +msgstr "全非会員" + +#. module: membership +#: view:product.product:0 +msgid "Information" +msgstr "情報" + +#. module: membership +#: field:membership.membership_line,account_invoice_line:0 +msgid "Account Invoice line" +msgstr "アカウント請求書行" + +#. module: membership +#: view:product.product:0 +msgid "Categorization" +msgstr "分類化" + +#. module: membership +#: model:process.node,note:membership.process_node_waitingmember0 +msgid "Draft invoice for membership." +msgstr "会員のためのドラフト請求書" + +#. module: membership +#: field:membership.invoice,member_price:0 +#: field:membership.membership_line,member_price:0 +#: model:product.price.type,name:membership.product_price_type_memberprice +#: field:product.template,member_price:0 +msgid "Member Price" +msgstr "会員価格" + +#. module: membership +#: view:product.product:0 +msgid "Purchase Description" +msgstr "仕入説明" + +#. module: membership +#: model:ir.model,name:membership.model_product_product +msgid "Product" +msgstr "製品" + +#. module: membership +#: view:product.product:0 +msgid "Description" +msgstr "説明" + +#. module: membership +#: field:res.partner,free_member:0 +msgid "Free member" +msgstr "無料会員" + +#. module: membership +#: selection:report.membership,month:0 +msgid "May" +msgstr "5月" + +#. module: membership +#: model:product.template,name:membership.membership_1_product_template +msgid "Silver Membership" +msgstr "シルバー会員" + +#. module: membership +#: view:product.product:0 +msgid "Sale Taxes" +msgstr "消費税" + +#. module: membership +#: field:report.membership,date_to:0 +#: view:res.partner:0 +msgid "End Date" +msgstr "終了日" + +#. module: membership +#: selection:report.membership,month:0 +msgid "February" +msgstr "2月" + +#. module: membership +#: model:process.node,name:membership.process_node_invoicedmember0 +msgid "Invoiced member" +msgstr "請求済会員" + +#. module: membership +#: selection:report.membership,month:0 +msgid "April" +msgstr "4月" + +#. module: membership +#: view:res.partner:0 +msgid "Starting Date Of Membership" +msgstr "会員の開始日" + +#. module: membership +#: help:res.partner,membership_cancel:0 +msgid "Date on which membership has been cancelled" +msgstr "会員をキャンセルした日付" + +#. module: membership +#: field:membership.membership_line,date_cancel:0 +msgid "Cancel date" +msgstr "キャンセル日" + +#. module: membership +#: model:process.node,name:membership.process_node_waitingmember0 +msgid "Waiting member" +msgstr "待機会員" + +#. module: membership +#: model:ir.actions.act_window,name:membership.action_membership_invoice_view +msgid "Invoice Membership" +msgstr "請求会員" + +#. module: membership +#: model:process.node,name:membership.process_node_membershipproduct0 +msgid "Membership product" +msgstr "会員製粉" + +#. module: membership +#: help:membership.membership_line,member_price:0 +msgid "Amount for the membership" +msgstr "会員金額" + +#. module: membership +#: constraint:res.partner:0 +msgid "Error ! You cannot create recursive associated members." +msgstr "エラー。再帰的な関係となる会員を作ることはできません。" + +#. module: membership +#: selection:membership.membership_line,state:0 +#: selection:report.membership,membership_state:0 +#: selection:res.partner,membership_state:0 +msgid "Cancelled Member" +msgstr "キャンセル済会員" + +#. module: membership +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "エラー:無効な商品識別番号です。" + +#. module: membership +#: view:report.membership:0 +#: field:report.membership,year:0 +msgid "Year" +msgstr "年" + +#. module: membership +#: view:report.membership:0 +msgid "Revenue Done" +msgstr "売上完了" diff --git a/addons/mrp/i18n/ja.po b/addons/mrp/i18n/ja.po new file mode 100644 index 00000000000..6e7bca6bef6 --- /dev/null +++ b/addons/mrp/i18n/ja.po @@ -0,0 +1,2272 @@ +# Japanese 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:49+0000\n" +"PO-Revision-Date: 2012-06-08 02:52+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-08 04:39+0000\n" +"X-Generator: Launchpad (build 15376)\n" + +#. module: mrp +#: view:mrp.routing.workcenter:0 +msgid "Routing Work Centers" +msgstr "経路作業センタ" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_production_action +msgid "" +"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." +msgstr "" +"製造オーダーは通常はOpenERPにより部品表と調達ルールに基づき自動的に提案されます 。しかし、製造オーダーを手動で作成することもできます。OpenER" +"Pはオーダーが処理される時に、原材料の消費(在庫減少)と最終製品の製造(在庫増加)を処理します。" + +#. module: mrp +#: help:mrp.production,location_src_id:0 +msgid "Location where the system will look for components." +msgstr "システムが構成部品を探す場所" + +#. module: mrp +#: field:mrp.production,workcenter_lines:0 +msgid "Work Centers Utilisation" +msgstr "作業センタ活用" + +#. module: mrp +#: model:product.template,name:mrp.product_sugar_product_template +msgid "Sugar" +msgstr "砂糖" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "No. Of Cycles" +msgstr "サイクル数" + +#. module: mrp +#: field:mrp.routing.workcenter,cycle_nbr:0 +msgid "Number of Cycles" +msgstr "サイクル数" + +#. module: mrp +#: model:product.uom.categ,name:mrp.product_uom_categ_fluid +msgid "Fluid" +msgstr "流体" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_minimumstockprocure0 +msgid "" +"The 'Minimum stock rule' allows the system to create procurement orders " +"automatically as soon as the minimum stock is reached." +msgstr "最小在庫ルールは最小在庫に達すると、システムが直ちに自動的に調達オーダーを作成します。" + +#. module: mrp +#: field:mrp.production,picking_id:0 +msgid "Picking list" +msgstr "集荷リスト" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#, python-format +msgid "Hourly Cost" +msgstr "時間コスト" + +#. module: mrp +#: code:addons/mrp/report/price.py:139 +#, python-format +msgid "Cost Price per Uom" +msgstr "単位当りのコスト価格" + +#. module: mrp +#: view:mrp.production:0 +msgid "Scrap Products" +msgstr "スクラップ製品" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_routing_action +#: model:ir.ui.menu,name:mrp.menu_mrp_routing_action +msgid "Routings" +msgstr "経路" + +#. module: mrp +#: field:mrp.workcenter,product_id:0 +msgid "Work Center Product" +msgstr "作業センタ製品" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Search Bill Of Material" +msgstr "部品表の検索" + +#. module: mrp +#: model:process.node,note:mrp.process_node_stockproduct1 +msgid "For stockable products and consumables" +msgstr "在庫可能製品と売り切り品" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_stockproduction0 +msgid "To Produce" +msgstr "生産する" + +#. module: mrp +#: help:mrp.routing.workcenter,cycle_nbr:0 +msgid "" +"Number of iterations this work center has to do in the specified operation " +"of the routing." +msgstr "この作業センタは経路の特定の操作の中で反復回数実行される必要があります。" + +#. module: mrp +#: view:mrp.bom:0 +#: field:mrp.bom,code:0 +#: view:mrp.production:0 +#: field:mrp.production,name:0 +msgid "Reference" +msgstr "参照" + +#. module: mrp +#: view:mrp.production:0 +msgid "Finished Products" +msgstr "完成した製品" + +#. module: mrp +#: view:mrp.production:0 +msgid "Manufacturing Orders which are currently in production." +msgstr "現在製造中の製造オーダー" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_servicerfq0 +#: model:process.transition,name:mrp.process_transition_stockrfq0 +msgid "To Buy" +msgstr "購入のため" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_purchaseprocure0 +msgid "The system launches automatically a RFQ to the preferred supplier." +msgstr "システムは優先仕入先にRFQ(見積依頼)を自動的に起こします。" + +#. module: mrp +#: view:mrp.production:0 +msgid "Products to Finish" +msgstr "終了する製品" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "Set / Pack" +msgstr "設定する / 包む" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,state:0 +msgid "State" +msgstr "状態" + +#. module: mrp +#: field:mrp.workcenter,costs_hour:0 +msgid "Cost per hour" +msgstr "時間当りのコスト" + +#. module: mrp +#: model:product.template,name:mrp.product_orange_product_template +msgid "Orange" +msgstr "オレンジ" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicemts0 +msgid "" +"This is used in case of a service without any impact in the system, a " +"training session for instance." +msgstr "これは例えばトレーニングセッションといった、システムに何の影響も与えないでサービスをする場合に使用されます。" + +#. module: mrp +#: view:mrp.production:0 +msgid "UOM" +msgstr "単位" + +#. module: mrp +#: field:change.production.qty,product_qty:0 +#: field:mrp.bom,product_qty:0 +#: field:mrp.production,product_qty:0 +#: field:mrp.production.product.line,product_qty:0 +msgid "Product Qty" +msgstr "製品数量" + +#. module: mrp +#: help:mrp.workcenter,product_id:0 +msgid "" +"Fill this product to track easily your production costs in the analytic " +"accounting." +msgstr "分析会計の中で製造コストを簡単に追跡するため、この製品を埋めて下さい。" + +#. module: mrp +#: model:process.node,note:mrp.process_node_purchaseprocure0 +msgid "For purchased material" +msgstr "仕入済材料" + +#. module: mrp +#: field:mrp.bom.revision,indice:0 +msgid "Revision" +msgstr "改訂" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.product_form_config_action +msgid "" +"Create a product form for everything you buy or sell. Specify a supplier if " +"the product can be purchased." +msgstr "購入または販売する全ての製品フォームを作成して下さい。製品を仕入れることができる場合、仕入先を指定して下さい。" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.next_id_77 +msgid "Reporting" +msgstr "レポート" + +#. module: mrp +#: field:mrp.workcenter,costs_cycle_account_id:0 +msgid "Cycle Account" +msgstr "サイクルアカウント" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#, python-format +msgid "Work Cost" +msgstr "作業コスト" + +#. module: mrp +#: report:bom.structure:0 +msgid "[" +msgstr "[" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_procureserviceproduct0 +msgid "Procurement of services" +msgstr "サービスの調達" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Capacity Information" +msgstr "容量情報" + +#. module: mrp +#: field:mrp.production,move_created_ids2:0 +msgid "Produced Products" +msgstr "生産される製品" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Destination Location" +msgstr "宛先場所" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_bom +msgid "Master Data" +msgstr "マスターデータ" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockmts0 +msgid "" +"The system waits for the products to be available in the stock. These " +"products are typically procured manually or through a minimum stock rule." +msgstr "システムは在庫にするための製品を待っています。これらの製品は一般的には手動でまたは最低在庫ルールを通して調達されます。" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Partner Ref" +msgstr "パートナ参照" + +#. module: mrp +#: field:mrp.production,origin:0 +#: report:mrp.production.order:0 +msgid "Source Document" +msgstr "基となるドキュメント" + +#. module: mrp +#: field:mrp.production,product_lines:0 +msgid "Scheduled goods" +msgstr "予定済製品" + +#. module: mrp +#: selection:mrp.bom,type:0 +msgid "Sets / Phantom" +msgstr "設定 / 模型" + +#. module: mrp +#: help:mrp.bom,position:0 +msgid "Reference to a position in an external plan." +msgstr "外部計画の中への参照" + +#. module: mrp +#: constraint:stock.move:0 +msgid "You try to assign a lot which is not from the same product" +msgstr "違う製品のロットを割り当てることはできません。" + +#. module: mrp +#: model:product.template,name:mrp.product_cloth_product_template +msgid "Cloth" +msgstr "生地" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_product_produce +msgid "Product Produce" +msgstr "製品生産" + +#. module: mrp +#: constraint:mrp.bom:0 +msgid "Error ! You cannot create recursive BoM." +msgstr "エラー。再帰的な部品表を作ることはできません。" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_routing_workcenter +msgid "Work Center Usage" +msgstr "作業センタの用途" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_procurestockableproduct0 +msgid "Procurement of stockable Product" +msgstr "在庫可能製品の調達" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Default UOM" +msgstr "デフォルト単位" + +#. module: mrp +#: sql_constraint:mrp.production:0 +#: sql_constraint:stock.picking:0 +msgid "Reference must be unique per Company!" +msgstr "参照は会社ごとに固有でなければいけません。" + +#. module: mrp +#: code:addons/mrp/report/price.py:139 +#: report:bom.structure:0 +#: field:mrp.product_price,number:0 +#: report:mrp.production.order:0 +#, python-format +msgid "Quantity" +msgstr "数量" + +#. module: mrp +#: field:mrp.production.workcenter.line,hour:0 +msgid "Nbr of hours" +msgstr "時間数" + +#. module: mrp +#: view:mrp.production:0 +msgid "Confirm Production" +msgstr "製造確認" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockproduct0 +msgid "" +"The system creates an order (production or purchased) depending on the sold " +"quantity and the products parameters." +msgstr "システムは販売数量そして製品のパラメータに応じてオーダー(製造または仕入)を作成します。" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockproduction0 +msgid "" +"In case the Supply method of the product is Produce, the system creates a " +"production order." +msgstr "製品の供給方法が製造である場合は、システムは製造オーダーを作成します。" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_property_action +msgid "" +"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." +msgstr "" +"同じ製品で異なった構築方法を持つ場合、OpenERPの属性は製品製造のための正しい部品表を選択するのに使用されます。それぞれの部品表には幾つかの属性を割り" +"当てることができます。販売員が受注オーダーを作成した時、彼はそれを幾つかの属性に関連付けることができ、そして、OpenERPは要求によって使用する部品表を" +"自動的に選択します。" + +#. module: mrp +#: help:mrp.production,picking_id:0 +msgid "" +"This is the Internal Picking List that brings the finished product to the " +"production plan" +msgstr "これは製造計画のために完成した製品を持ってくる内部の集荷リストです。" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_search_mrp +msgid "Working Time" +msgstr "作業時間" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_report_in_out_picking_tree +msgid "Weekly Stock Value Variation" +msgstr "週次在庫価値変動" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,date_planned_date:0 +#: report:mrp.production.order:0 +msgid "Scheduled Date" +msgstr "予定日" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Component Product" +msgstr "構成部品の製品" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Bill Of Material" +msgstr "部品表" + +#. module: mrp +#: help:mrp.routing,location_id:0 +msgid "" +"Keep empty if you produce at the location where the finished products are " +"needed.Set a location if you produce at a fixed location. This can be a " +"partner location if you subcontract the manufacturing operations." +msgstr "" +"完成した製品が必要とされる場所で生産する場合は空のままとして下さい。固定の場所で生産する場合は場所を設定して下さい。製造業務を外注する場合は、パートナの場" +"所として下さい。" + +#. module: mrp +#: view:board.board:0 +msgid "Stock Value Variation" +msgstr "在庫価値変動" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action2 +msgid "Bill of Materials Structure" +msgstr "構造の部品表" + +#. module: mrp +#: model:process.node,note:mrp.process_node_serviceproduct0 +msgid "Product type is service" +msgstr "製品タイプはサービスです。" + +#. module: mrp +#: sql_constraint:res.company:0 +msgid "The company name must be unique !" +msgstr "会社名は固有でなければいけません。" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_property_group_action +msgid "" +"Define specific property groups that can be assigned to the properties of " +"your bill of materials." +msgstr "部品表の属性に割り当てることができる特定の属性グループを定義して下さい。" + +#. module: mrp +#: help:mrp.workcenter,costs_cycle:0 +msgid "Specify Cost of Work Center per cycle." +msgstr "サイクル当りの作業センタのコストを指定して下さい。" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_bom0 +msgid "Manufacturing decomposition" +msgstr "製造分解" + +#. module: mrp +#: model:process.node,note:mrp.process_node_serviceproduct1 +msgid "For Services." +msgstr "サービス用" + +#. module: mrp +#: field:mrp.bom.revision,date:0 +msgid "Modification Date" +msgstr "修正日" + +#. module: mrp +#: help:mrp.workcenter,costs_cycle_account_id:0 +#: help:mrp.workcenter,costs_hour_account_id:0 +msgid "" +"Complete this only if you want automatic analytic accounting entries on " +"production orders." +msgstr "製造オーダーの自動分析会計行を望む場合は、これのみを完了して下さい。" + +#. module: mrp +#: field:mrp.production.workcenter.line,cycle:0 +msgid "Nbr of cycles" +msgstr "サイクル数" + +#. module: mrp +#: model:process.node,note:mrp.process_node_orderrfq0 +#: model:process.node,note:mrp.process_node_rfq0 +msgid "Request for Quotation." +msgstr "見積要求" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_billofmaterialrouting0 +msgid "" +"The Bill of Material is linked to a routing, i.e. the succession of work " +"centers." +msgstr "部品表は経路、すなわち作業センタの連携とリンクしています。" + +#. module: mrp +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "エラー:無効な商品識別番号です。" + +#. module: mrp +#: field:mrp.production,move_created_ids:0 +msgid "Products to Produce" +msgstr "生産する製品" + +#. module: mrp +#: view:mrp.routing:0 +#: field:mrp.routing,location_id:0 +msgid "Production Location" +msgstr "製造場所" + +#. module: mrp +#: view:mrp.production:0 +msgid "Change Qty" +msgstr "数量の変更" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_configure_workcenter +msgid "Configure your work centers" +msgstr "作業センタの設定" + +#. module: mrp +#: view:mrp.production:0 +msgid "Force Reservation" +msgstr "強制予約" + +#. module: mrp +#: field:mrp.bom.revision,author_id:0 +msgid "Author" +msgstr "著者" + +#. module: mrp +#: field:report.mrp.inout,value:0 +msgid "Stock value" +msgstr "在庫価値" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_product_bom_structure +msgid "Product BoM Structure" +msgstr "製品部品表構成" + +#. module: mrp +#: view:mrp.production:0 +msgid "Search Production" +msgstr "製造の検索" + +#. module: mrp +#: code:addons/mrp/report/price.py:139 +#, python-format +msgid "Supplier Price per Uom" +msgstr "単位当りの仕入価格" + +#. module: mrp +#: help:mrp.routing.workcenter,sequence:0 +msgid "" +"Gives the sequence order when displaying a list of routing Work Centers." +msgstr "作業センタの経路のリストを表示する時の順序を与えます。" + +#. module: mrp +#: constraint:stock.move:0 +msgid "You can not move products from or to a location of the type view." +msgstr "タイプビューの場所から、あるいは場所へは製品を動かすことはできません。" + +#. module: mrp +#: field:mrp.bom,child_complete_ids:0 +msgid "BoM Hierarchy" +msgstr "部品表の階層" + +#. module: mrp +#: field:mrp.bom,product_uom:0 +#: field:mrp.production,product_uom:0 +#: field:mrp.production.product.line,product_uom:0 +msgid "Product UOM" +msgstr "製品の単位" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Picking Exception" +msgstr "例外の集荷" + +#. module: mrp +#: field:mrp.bom,bom_lines:0 +msgid "BoM Lines" +msgstr "部品表ライン" + +#. module: mrp +#: field:mrp.workcenter,time_start:0 +msgid "Time before prod." +msgstr "製造前の時間" + +#. module: mrp +#: help:mrp.routing,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the routing " +"without removing it." +msgstr "このアクティブ項目をFalseに設定すると、経路は削除することなく非表示にすることができます。" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_billofmaterialrouting0 +msgid "Material Routing" +msgstr "材料の経路" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,move_lines2:0 +#: report:mrp.production.order:0 +msgid "Consumed Products" +msgstr "消費製品" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_mrp_workcenter_load_wizard +#: model:ir.model,name:mrp.model_mrp_workcenter_load +#: model:ir.model,name:mrp.model_report_workcenter_load +msgid "Work Center Load" +msgstr "作業センタの負荷" + +#. module: mrp +#: code:addons/mrp/procurement.py:43 +#, python-format +msgid "No BoM defined for this product !" +msgstr "この製品のための部品表が定義されていません。" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action2 +#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action2 +msgid "Bill of Material Components" +msgstr "構成部品の部品表" + +#. module: mrp +#: model:ir.model,name:mrp.model_stock_move +msgid "Stock Move" +msgstr "在庫移動" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_planning +msgid "Planning" +msgstr "計画" + +#. module: mrp +#: view:mrp.production:0 +msgid "Ready" +msgstr "準備完了" + +#. module: mrp +#: model:product.template,name:mrp.product_buttons_product_template +msgid "Shirt Buttons" +msgstr "シャツのボタン" + +#. module: mrp +#: help:mrp.production,routing_id:0 +msgid "" +"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." +msgstr "" +"完成した製品を製造するための操作のリスト(作業センタのリスト)。経路は操作の間の作業センタのコストを計算し、製造計画化を基本とする作業センタの将来の負荷を" +"計画するために主に利用されます。" + +#. module: mrp +#: help:mrp.workcenter,time_cycle:0 +msgid "Time in hours for doing one cycle." +msgstr "1サイクルの時間(時)" + +#. module: mrp +#: constraint:mrp.bom:0 +msgid "BoM line product should not be same as BoM product." +msgstr "部品表のライン製品は部品表製品と同じではいけません。" + +#. module: mrp +#: view:mrp.production:0 +msgid "In Production" +msgstr "製造中" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_property +msgid "Master Bill of Materials" +msgstr "マスター部品表" + +#. module: mrp +#: help:mrp.bom,product_uos:0 +msgid "" +"Product UOS (Unit of Sale) is the unit of measurement for the invoicing and " +"promotion of stock." +msgstr "製品の販売単位は請求、そして在庫の販売促進の単位です。" + +#. module: mrp +#: view:mrp.product_price:0 +#: view:mrp.workcenter.load:0 +msgid "Print" +msgstr "印刷" + +#. module: mrp +#: view:mrp.bom:0 +#: view:mrp.workcenter:0 +msgid "Type" +msgstr "タイプ" + +#. module: mrp +#: model:process.node,note:mrp.process_node_minimumstockrule0 +msgid "Linked to the 'Minimum stock rule' supplying method." +msgstr "供給方法の最小在庫ルールとリンクしています。" + +#. module: mrp +#: selection:mrp.workcenter.load,time_unit:0 +msgid "Per month" +msgstr "月毎" + +#. module: mrp +#: code:addons/mrp/wizard/change_production_qty.py:78 +#: code:addons/mrp/wizard/change_production_qty.py:83 +#, python-format +msgid "Couldn't find bill of material for product" +msgstr "製品のための部品表がありません。" + +#. module: mrp +#: report:bom.structure:0 +msgid "Product Name" +msgstr "製品名" + +#. module: mrp +#: code:addons/mrp/mrp.py:503 +#, python-format +msgid "Invalid action !" +msgstr "無効なアクションです。" + +#. module: mrp +#: help:mrp.bom,product_efficiency:0 +msgid "A factor of 0.9 means a loss of 10% within the production process." +msgstr "0.9の数は製造過程の中での10%の損失を意味します。" + +#. module: mrp +#: code:addons/mrp/mrp.py:734 +#: code:addons/mrp/mrp.py:762 +#, python-format +msgid "Warning!" +msgstr "警告" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Printing date" +msgstr "印刷日" + +#. module: mrp +#: model:process.node,name:mrp.process_node_orderrfq0 +#: model:process.node,name:mrp.process_node_rfq0 +msgid "RFQ" +msgstr "見積依頼" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_producttostockrules0 +msgid "Procurement rule" +msgstr "調達ルール" + +#. module: mrp +#: view:mrp.production:0 +msgid "Partial" +msgstr "部分" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "WorkCenter" +msgstr "作業センタ" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_procureserviceproduct0 +msgid "" +"Depending on the chosen method to 'supply' the service, the procurement " +"order creates a RFQ for a subcontracting purchase order or waits until the " +"service is done (= the delivery of the products)." +msgstr "" +"サービス提供のための選択された方法に応じて、調達オーダーは下請け発注オーダーのための見積依頼を作成するか、またはサービスが完了(製品の配達)するまで待ちま" +"す。" + +#. module: mrp +#: selection:mrp.production,priority:0 +msgid "Urgent" +msgstr "緊急" + +#. module: mrp +#: view:mrp.production:0 +msgid "Manufacturing Orders which are waiting for raw materials." +msgstr "原材料を待っている製造オーダーです。" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_workcenter_action +msgid "" +"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." +msgstr "" +"作業センタは製造ユニットを作成し管理します。それらは容量と計画予測のユニットとして考えられる作業員と機械により構成されます。労働時間とリソースの休暇は作業" +"センタの時間計算で考慮されないことに留意して下さい。" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production +msgid "Manufacturing Order" +msgstr "製造オーダー" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_productionprocureproducts0 +msgid "Procurement of raw material" +msgstr "原材料の調達" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,cycle_total:0 +msgid "Total Cycles" +msgstr "合計サイクル" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Ready to Produce" +msgstr "生産準備完了" + +#. module: mrp +#: field:mrp.bom.revision,name:0 +msgid "Modification name" +msgstr "変更の名前" + +#. module: mrp +#: view:mrp.bom:0 +#: view:mrp.production:0 +msgid "Date" +msgstr "日付" + +#. module: mrp +#: field:mrp.bom,type:0 +msgid "BoM Type" +msgstr "部品表タイプ" + +#. module: mrp +#: code:addons/mrp/procurement.py:45 +#, python-format +msgid "" +"Procurement '%s' has an exception: 'No BoM defined for this product !'" +msgstr "調達 %s は例外があります:この製品の部品表が定義されていません。" + +#. module: mrp +#: view:mrp.property:0 +msgid "Search" +msgstr "検索" + +#. module: mrp +#: code:addons/mrp/mrp.py:626 +#, python-format +msgid "Could not cancel manufacturing order !" +msgstr "製造オーダーはキャンセルできません。" + +#. module: mrp +#: field:report.workcenter.load,cycle:0 +msgid "Nbr of cycle" +msgstr "サイクル数" + +#. module: mrp +#: model:ir.model,name:mrp.model_res_company +msgid "Companies" +msgstr "会社" + +#. module: mrp +#: code:addons/mrp/mrp.py:627 +#, python-format +msgid "" +"You must first cancel related internal picking attached to this " +"manufacturing order." +msgstr "最初に、この製造オーダーに付属している内部集荷の関連をキャンセルする必要があります。" + +#. module: mrp +#: model:process.node,name:mrp.process_node_minimumstockrule0 +#: model:process.node,name:mrp.process_node_productminimumstockrule0 +msgid "Minimum Stock" +msgstr "最小在庫" + +#. module: mrp +#: code:addons/mrp/mrp.py:503 +#, python-format +msgid "Cannot delete a manufacturing order in state '%s'" +msgstr "製造オーダーは %s 状態であるため削除できません。" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menus_dash_mrp +msgid "Dashboard" +msgstr "ダッシュボード" + +#. module: mrp +#: code:addons/mrp/report/price.py:160 +#: code:addons/mrp/report/price.py:211 +#, python-format +msgid "Total Cost of %s %s" +msgstr "合計コスト %s %s" + +#. module: mrp +#: model:process.node,name:mrp.process_node_stockproduct0 +#: model:process.node,name:mrp.process_node_stockproduct1 +#: model:process.process,name:mrp.process_process_stockableproductprocess0 +msgid "Stockable Product" +msgstr "在庫可能製品" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#, python-format +msgid "Work Center name" +msgstr "作業センタ名" + +#. module: mrp +#: field:mrp.routing,code:0 +msgid "Code" +msgstr "コード" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "No. Of Hours" +msgstr "時間数" + +#. module: mrp +#: view:mrp.property:0 +#: view:mrp.property.group:0 +msgid "Property Group" +msgstr "属性グループ" + +#. module: mrp +#: view:mrp.production:0 +msgid "Qty" +msgstr "数量" + +#. module: mrp +#: model:process.node,note:mrp.process_node_production0 +msgid "Manufacturing Plan." +msgstr "製造計画" + +#. module: mrp +#: view:mrp.routing:0 +#: view:mrp.workcenter:0 +msgid "Inactive" +msgstr "非アクティブ" + +#. module: mrp +#: view:change.production.qty:0 +#: view:mrp.product.produce:0 +#: view:mrp.product_price:0 +#: view:mrp.production:0 +#: view:mrp.workcenter.load:0 +msgid "Cancel" +msgstr "キャンセル" + +#. module: mrp +#: code:addons/mrp/wizard/change_production_qty.py:63 +#, python-format +msgid "Active Id is not found" +msgstr "アクティブIDが存在しません。" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicerfq0 +msgid "" +"If the service has a 'Buy' supply method, this creates a RFQ, a " +"subcontracting demand for instance." +msgstr "サービスが供給方法として購入の場合、これは、例えば下請けへの見積依頼を作成します。" + +#. module: mrp +#: field:mrp.production,move_prod_id:0 +msgid "Move product" +msgstr "移動製品" + +#. module: mrp +#: view:mrp.production:0 +msgid "Late" +msgstr "遅延" + +#. module: mrp +#: model:process.node,name:mrp.process_node_servicemts0 +msgid "Make to stock" +msgstr "在庫作成" + +#. module: mrp +#: report:bom.structure:0 +msgid "BOM Name" +msgstr "部品表名" + +#. module: mrp +#: view:mrp.production:0 +msgid "Start Production" +msgstr "製造の開始" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.open_board_manufacturing +#: model:ir.ui.menu,name:mrp.menu_board_manufacturing +msgid "Production Dashboard" +msgstr "製造のダッシュボード" + +#. module: mrp +#: model:res.groups,name:mrp.group_mrp_manager +msgid "Manager" +msgstr "マネジャ" + +#. module: mrp +#: view:mrp.production:0 +msgid "Source Loc." +msgstr "元の場所" + +#. module: mrp +#: field:mrp.bom,position:0 +msgid "Internal Reference" +msgstr "内部参照" + +#. module: mrp +#: model:process.node,note:mrp.process_node_billofmaterial0 +msgid "Product's structure" +msgstr "製品の構成" + +#. module: mrp +#: field:mrp.bom,name:0 +#: report:mrp.production.order:0 +#: field:mrp.production.product.line,name:0 +#: field:mrp.routing,name:0 +#: field:mrp.routing.workcenter,name:0 +msgid "Name" +msgstr "名前" + +#. module: mrp +#: field:mrp.product.produce,mode:0 +msgid "Mode" +msgstr "モード" + +#. module: mrp +#: report:bom.structure:0 +msgid "]" +msgstr "]" + +#. module: mrp +#: field:mrp.workcenter.load,measure_unit:0 +msgid "Amount measuring unit" +msgstr "単位量" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_production_action_planning +msgid "" +"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." +msgstr "" +"製造オーダーは実行される必要がある操作と各生産段階で原材料の用途について説明しています。仕様(部品表)は原材料の要求と完成製品のための製造オーダーの必要と" +"される処理のために使われます。部品表が定義されると、OpenERPは会社のニーズに依存した製造経路を自動的に決める能力を持っています。" + +#. module: mrp +#: model:ir.actions.todo.category,name:mrp.category_mrp_config +msgid "MRP Management" +msgstr "MRP管理" + +#. module: mrp +#: help:mrp.workcenter,costs_hour:0 +msgid "Specify Cost of Work Center per hour." +msgstr "時間当りの作業センタコストを指定して下さい。" + +#. module: mrp +#: help:mrp.workcenter,capacity_per_cycle:0 +msgid "" +"Number of operations this Work Center can do in parallel. If this Work " +"Center represents a team of 5 workers, the capacity per cycle is 5." +msgstr "この作業センタが並列に処理できる操作の数。この作業センタが5人の作業員のチームを表すなら、サイクル当りの容量は5となります。" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action3 +msgid "Manufacturing Orders in Progress" +msgstr "製造オーダーは進行中です。" + +#. module: mrp +#: view:mrp.bom:0 +#: view:mrp.production:0 +#: view:mrp.property:0 +#: view:mrp.routing:0 +#: view:mrp.workcenter:0 +msgid "Group By..." +msgstr "グループ化…" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#, python-format +msgid "Cycles Cost" +msgstr "サイクルコスト" + +#. module: mrp +#: selection:mrp.workcenter.load,measure_unit:0 +msgid "Amount in cycles" +msgstr "サイクルの量" + +#. module: mrp +#: field:mrp.production,location_dest_id:0 +msgid "Finished Products Location" +msgstr "完成した製品の場所" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_pm_resources_config +msgid "Resources" +msgstr "リソース" + +#. module: mrp +#: help:mrp.routing.workcenter,hour_nbr:0 +msgid "" +"Time in hours for this Work Center to achieve the operation of the specified " +"routing." +msgstr "特定経路の操作を達成するためのこの作業センタの時間(時)" + +#. module: mrp +#: field:mrp.workcenter,costs_journal_id:0 +msgid "Analytic Journal" +msgstr "分析仕訳帳" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_workcenter_action +#: model:ir.ui.menu,name:mrp.menu_view_resource_search_mrp +#: field:mrp.routing,workcenter_lines:0 +msgid "Work Centers" +msgstr "作業センタ" + +#. module: mrp +#: selection:mrp.workcenter.load,time_unit:0 +msgid "Per week" +msgstr "週毎" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_routing_action +msgid "" +"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." +msgstr "" +"経路は製品の生産のための作業センタの中で行わなければならない製造操作の作成と管理を行います。それには要求された原材料を定義した部品表が添付されます。" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.product_form_config_action +msgid "Create or Import Products" +msgstr "製品を作成またはインポート" + +#. module: mrp +#: field:report.workcenter.load,hour:0 +msgid "Nbr of hour" +msgstr "時間数" + +#. module: mrp +#: view:mrp.routing:0 +msgid "Work Center Operations" +msgstr "作業センタ操作" + +#. module: mrp +#: view:mrp.routing:0 +msgid "Notes" +msgstr "注記" + +#. module: mrp +#: view:mrp.production:0 +msgid "Manufacturing Orders which are ready to start production." +msgstr "製造開始準備ができた製造オーダーです。" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_bom +#: view:mrp.bom:0 +#: field:mrp.production,bom_id:0 +#: model:process.node,name:mrp.process_node_billofmaterial0 +msgid "Bill of Material" +msgstr "部品表" + +#. module: mrp +#: view:mrp.workcenter.load:0 +msgid "Select time unit" +msgstr "時間の単位の選択" + +#. module: mrp +#: view:report.workcenter.load:0 +msgid "Work Center load" +msgstr "作業センタの負荷" + +#. module: mrp +#: help:mrp.production,location_dest_id:0 +msgid "Location where the system will stock the finished products." +msgstr "システムが完成した製品を在庫する場所です。" + +#. module: mrp +#: help:mrp.routing.workcenter,routing_id:0 +msgid "" +"Routing indicates all the Work Centers used, for how long and/or cycles.If " +"Routing is indicated then,the third tab of a production order (Work Centers) " +"will be automatically pre-completed." +msgstr "" +"経路は全ての作業センタが長さとサイクルがどのくらい使われるかを示します。経路が示される場合、製造オーダー(作業センタ)の第3のタブは自動的に事前完了します" +"。" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_producttostockrules0 +msgid "" +"The Minimum Stock Rule is an automatic procurement rule based on a mini and " +"maxi quantity. It's available in the Inventory management menu and " +"configured by product." +msgstr "最小在庫ルールは最小と最大の量に基づき自動調達するルールです。これは在庫管理メニューで利用可能で製品ごとに設定できます。" + +#. module: mrp +#: code:addons/mrp/report/price.py:187 +#, python-format +msgid "Components Cost of %s %s" +msgstr "%s %s の構成部品コスト" + +#. module: mrp +#: selection:mrp.workcenter.load,time_unit:0 +msgid "Day by day" +msgstr "日々" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Revisions" +msgstr "改訂" + +#. module: mrp +#: model:product.template,name:mrp.product_shirt_product_template +msgid "Shirt" +msgstr "シャツ" + +#. module: mrp +#: field:mrp.production,priority:0 +msgid "Priority" +msgstr "優先度" + +#. module: mrp +#: model:ir.model,name:mrp.model_stock_picking +msgid "Picking List" +msgstr "集荷リスト" + +#. module: mrp +#: code:addons/mrp/mrp.py:1000 +#, python-format +msgid "Manufacturing order '%s' is scheduled for the %s." +msgstr "製造オーダー %s は %s に予定されています。" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Production Order N° :" +msgstr "製造オーダー番号:" + +#. module: mrp +#: code:addons/mrp/mrp.py:647 +#, python-format +msgid "Manufacturing order '%s' is ready to produce." +msgstr "製造オーダー %s は生産する準備ができています。" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production_product_line +msgid "Production Scheduled Product" +msgstr "製造予定済製品" + +#. module: mrp +#: code:addons/mrp/report/price.py:204 +#, python-format +msgid "Work Cost of %s %s" +msgstr "作業コスト %s %s" + +#. module: mrp +#: help:res.company,manufacturing_lead:0 +msgid "Security days for each manufacturing operation." +msgstr "各製造操作の安全保障の日" + +#. module: mrp +#: model:product.template,name:mrp.product_water_product_template +msgid "Water" +msgstr "水" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Component Name" +msgstr "構成部品名" + +#. module: mrp +#: model:process.node,name:mrp.process_node_mts0 +#: model:process.transition,name:mrp.process_transition_servicemts0 +#: model:process.transition,name:mrp.process_transition_stockmts0 +msgid "Make to Stock" +msgstr "在庫の作成" + +#. module: mrp +#: constraint:mrp.production:0 +msgid "Order quantity cannot be negative or zero!" +msgstr "オーダー数量は負または0にはできません。" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_bom_form_action +msgid "" +"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." +msgstr "" +"マスター部品表は完成品を作るために使用される必要な原材料のリストを作成し管理します。OpenERPは製品のニーズに応じて製造オーダーを自動的に提案するため" +"にそれらの部品表を使用します。特定の製造手順の定義や、単一の多層部品表の定義のために部品表を作成できます。" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockrfq0 +msgid "" +"In case the Supply method of the product is Buy, the system creates a " +"purchase order." +msgstr "製品の供給方法が購入の場合、システムは発注オーダーを作成します。" + +#. module: mrp +#: model:ir.model,name:mrp.model_procurement_order +msgid "Procurement" +msgstr "調達" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_view_mrp_product_price_wizard +#: view:mrp.product_price:0 +msgid "Product Cost Structure" +msgstr "製品のコスト構造" + +#. module: mrp +#: code:addons/mrp/report/price.py:139 +#, python-format +msgid "Components suppliers" +msgstr "構成部品仕入先" + +#. module: mrp +#: view:mrp.production:0 +msgid "Production Work Centers" +msgstr "製造作業センタ" + +#. module: mrp +#: view:mrp.production:0 +msgid "Split in production lots" +msgstr "製造ロットに分割" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Search for mrp workcenter" +msgstr "MRP作業センタの検索" + +#. module: mrp +#: view:mrp.bom:0 +msgid "BoM Structure" +msgstr "部品表の構造" + +#. module: mrp +#: field:mrp.production,date_start:0 +msgid "Start Date" +msgstr "開始日" + +#. module: mrp +#: field:mrp.workcenter,costs_hour_account_id:0 +msgid "Hour Account" +msgstr "時間アカウント" + +#. module: mrp +#: view:mrp.production:0 +msgid "Destination Loc." +msgstr "目的地" + +#. module: mrp +#: field:mrp.bom,method:0 +msgid "Method" +msgstr "方法" + +#. module: mrp +#: view:mrp.production:0 +msgid "Pending" +msgstr "保留中" + +#. module: mrp +#: code:addons/mrp/mrp.py:603 +#, python-format +msgid "Couldn't find a bill of material for this product." +msgstr "この製品のための部品表がありません。" + +#. module: mrp +#: field:mrp.bom,active:0 +#: field:mrp.routing,active:0 +msgid "Active" +msgstr "アクティブ" + +#. module: mrp +#: model:process.node,name:mrp.process_node_procureproducts0 +msgid "Procure Products" +msgstr "調達製品" + +#. module: mrp +#: view:report.workcenter.load:0 +msgid "Work Center Loads" +msgstr "作業センタの負荷" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_bom_revision +msgid "Bill of Material Revision" +msgstr "部品表の改訂" + +#. module: mrp +#: help:mrp.production,origin:0 +msgid "" +"Reference of the document that generated this production order request." +msgstr "この製造オーダー要求を生成したドキュメントへの参照" + +#. module: mrp +#: sql_constraint:mrp.bom:0 +msgid "" +"All product quantities must be greater than 0.\n" +"You should install the mrp_subproduct module if you want to manage extra " +"products on BoMs !" +msgstr "" +"全製品の数量は0より大きい必要があります。\n" +"部品表上で追加の製品を管理したい場合は、mrp_subproductモジュールをインストールする必要があります。" + +#. module: mrp +#: view:mrp.production:0 +msgid "Extra Information" +msgstr "追加情報" + +#. module: mrp +#: model:ir.model,name:mrp.model_change_production_qty +msgid "Change Quantity of Products" +msgstr "製品の数量変更" + +#. module: mrp +#: model:process.node,note:mrp.process_node_productionorder0 +msgid "Drives the procurement orders for raw material." +msgstr "原材料の調達オーダーを起こす" + +#. module: mrp +#: field:mrp.workcenter,costs_general_account_id:0 +msgid "General Account" +msgstr "一般アカウント" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "SO Number" +msgstr "受注番号" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Done" +msgstr "完了" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action4 +msgid "Manufacturing Orders Waiting Products" +msgstr "製造オーダー待ち製品" + +#. module: mrp +#: selection:mrp.production,priority:0 +msgid "Not urgent" +msgstr "緊急外" + +#. module: mrp +#: field:mrp.production,user_id:0 +msgid "Responsible" +msgstr "担当" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action2 +msgid "Manufacturing Orders To Start" +msgstr "製造オーダー開始" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_workcenter +#: field:mrp.production.workcenter.line,workcenter_id:0 +#: field:mrp.routing.workcenter,workcenter_id:0 +#: view:mrp.workcenter:0 +#: field:report.workcenter.load,workcenter_id:0 +msgid "Work Center" +msgstr "作業センタ" + +#. module: mrp +#: field:mrp.workcenter,capacity_per_cycle:0 +msgid "Capacity per Cycle" +msgstr "サイクル当りの容量" + +#. module: mrp +#: model:ir.model,name:mrp.model_product_product +#: view:mrp.bom:0 +#: field:mrp.bom,product_id:0 +#: view:mrp.production:0 +#: field:mrp.production,product_id:0 +#: report:mrp.production.order:0 +#: field:mrp.production.product.line,product_id:0 +msgid "Product" +msgstr "製品" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,hour_total:0 +msgid "Total Hours" +msgstr "合計時間" + +#. module: mrp +#: field:mrp.production,location_src_id:0 +msgid "Raw Materials Location" +msgstr "原材料の場所" + +#. module: mrp +#: view:mrp.product_price:0 +msgid "Print Cost Structure of Product." +msgstr "製品のコスト構造の印刷" + +#. module: mrp +#: field:mrp.bom,product_uos:0 +#: field:mrp.production.product.line,product_uos:0 +msgid "Product UOS" +msgstr "製品販売単位" + +#. module: mrp +#: view:mrp.production:0 +msgid "Consume Products" +msgstr "消費製品" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.act_mrp_product_produce +#: view:mrp.product.produce:0 +#: view:mrp.production:0 +msgid "Produce" +msgstr "製造" + +#. module: mrp +#: model:process.node,name:mrp.process_node_stock0 +#: model:process.transition,name:mrp.process_transition_servicemto0 +#: model:process.transition,name:mrp.process_transition_stockproduct0 +msgid "Make to Order" +msgstr "オーダーの作成" + +#. module: mrp +#: code:addons/mrp/mrp.py:358 +#, python-format +msgid "Copy" +msgstr "コピー" + +#. module: mrp +#: help:mrp.workcenter,note:0 +msgid "" +"Description of the Work Center. Explain here what's a cycle according to " +"this Work Center." +msgstr "作業センタの説明。この作業センタは何がサイクルであるかをここで説明して下さい。" + +#. module: mrp +#: view:mrp.production.lot.line:0 +msgid "Production Products" +msgstr "製造製品" + +#. module: mrp +#: field:mrp.production,date_finished:0 +msgid "End Date" +msgstr "終了日" + +#. module: mrp +#: field:mrp.workcenter,resource_id:0 +msgid "Resource" +msgstr "リソース" + +#. module: mrp +#: help:mrp.bom,date_start:0 +#: help:mrp.bom,date_stop:0 +msgid "Validity of this BoM or component. Keep empty if it's always valid." +msgstr "部品表や構成部品の妥当性。常に有効な場合は空のままとして下さい。" + +#. module: mrp +#: field:mrp.production,product_uos:0 +msgid "Product UoS" +msgstr "製品販売単位" + +#. module: mrp +#: selection:mrp.production,priority:0 +msgid "Very Urgent" +msgstr "非常に緊急" + +#. module: mrp +#: help:mrp.bom,routing_id:0 +msgid "" +"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 " +"planning." +msgstr "" +"完成した製品を製造するための操作のリスト(作業センタのリスト)。経路は操作の間の作業センタのコストを計算し、製造計画化を基本とする作業センタの将来の負荷を" +"計画するために主に利用されます。" + +#. module: mrp +#: view:change.production.qty:0 +msgid "Approve" +msgstr "承認" + +#. module: mrp +#: view:mrp.property.group:0 +msgid "Properties categories" +msgstr "属性の分類" + +#. module: mrp +#: help:mrp.production.workcenter.line,sequence:0 +msgid "Gives the sequence order when displaying a list of work orders." +msgstr "作業オーダーリストの表示の際には並びの順序を与えます。" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Source Location" +msgstr "元の場所" + +#. module: mrp +#: view:mrp.production:0 +#: view:mrp.production.product.line:0 +msgid "Scheduled Products" +msgstr "予定済製品" + +#. module: mrp +#: view:mrp.production.lot.line:0 +msgid "Production Products Consommation" +msgstr "製造製品の消費" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.act_product_manufacturing_open +#: model:ir.actions.act_window,name:mrp.mrp_production_action +#: model:ir.actions.act_window,name:mrp.mrp_production_action_planning +#: model:ir.ui.menu,name:mrp.menu_mrp_production_action +#: model:ir.ui.menu,name:mrp.menu_mrp_production_order_action +#: view:mrp.production:0 +msgid "Manufacturing Orders" +msgstr "製造オーダー" + +#. module: mrp +#: help:mrp.product.produce,mode:0 +msgid "" +"'Consume only' mode will only consume the products with the quantity " +"selected.\n" +"'Consume & Produce' mode will consume as well as produce the products with " +"the quantity selected and it will finish the production order when total " +"ordered quantities are produced." +msgstr "" +"消費のみモードでは、製品は選択した量だけを消費します。\n" +"消費と生産モードでは、製品を選択した数量製造すると同様に消費もされます。そして合計注文量が製造された時に製造オーダーが終わります。" + +#. module: mrp +#: view:mrp.production:0 +#: report:mrp.production.order:0 +msgid "Work Orders" +msgstr "作業オーダー" + +#. module: mrp +#: field:mrp.workcenter,costs_cycle:0 +msgid "Cost per cycle" +msgstr "サイクル当りのコスト" + +#. module: mrp +#: model:process.node,name:mrp.process_node_serviceproduct0 +#: model:process.node,name:mrp.process_node_serviceproduct1 +msgid "Service" +msgstr "サービス" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Cancelled" +msgstr "キャンセル済" + +#. module: mrp +#: help:mrp.bom,product_uom:0 +msgid "" +"UoM (Unit of Measure) is the unit of measurement for the inventory control" +msgstr "UOMは在庫管理のための単位です。" + +#. module: mrp +#: code:addons/mrp/mrp.py:734 +#, python-format +msgid "" +"You are going to consume total %s quantities of \"%s\".\n" +"But you can only consume up to total %s quantities." +msgstr "" +"合計 %s のうち %s を消費しようとしています。\n" +"しかし、あなたは合計 %s の量までのみ使用することができます。" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_bom0 +msgid "" +"The Bill of Material is the product's decomposition. The components (that " +"are products themselves) can also have their own Bill of Material (multi-" +"level)." +msgstr "部品表は製品を分解したものである。構成部品(それ自身が製品)は自分自身の部品表(多層)を持ちます。" + +#. module: mrp +#: field:mrp.bom,company_id:0 +#: field:mrp.production,company_id:0 +#: field:mrp.routing,company_id:0 +#: field:mrp.routing.workcenter,company_id:0 +#: view:mrp.workcenter:0 +msgid "Company" +msgstr "会社" + +#. module: mrp +#: selection:mrp.workcenter.load,measure_unit:0 +msgid "Amount in hours" +msgstr "時間の量" + +#. module: mrp +#: field:mrp.workcenter,time_cycle:0 +msgid "Time for 1 cycle (hour)" +msgstr "サイクル当りの時間(時)" + +#. module: mrp +#: model:ir.actions.report.xml,name:mrp.report_mrp_production_report +#: field:mrp.production.product.line,production_id:0 +#: field:mrp.production.workcenter.line,production_id:0 +#: model:process.node,name:mrp.process_node_production0 +#: model:process.node,name:mrp.process_node_productionorder0 +msgid "Production Order" +msgstr "製造オーダー" + +#. module: mrp +#: model:process.node,note:mrp.process_node_productminimumstockrule0 +msgid "Automatic procurement rule" +msgstr "自動調達ルール" + +#. module: mrp +#: view:mrp.production:0 +msgid "Compute Data" +msgstr "データ計算" + +#. module: mrp +#: field:mrp.production,product_uos_qty:0 +msgid "Product UoS Qty" +msgstr "製品販売単位数量" + +#. module: mrp +#: code:addons/mrp/report/price.py:139 +#: view:mrp.bom:0 +#, python-format +msgid "Components" +msgstr "構成部品" + +#. module: mrp +#: report:bom.structure:0 +#: model:ir.actions.report.xml,name:mrp.report_bom_structure +msgid "BOM Structure" +msgstr "部品表構造" + +#. module: mrp +#: field:mrp.bom,date_stop:0 +msgid "Valid Until" +msgstr "失効日" + +#. module: mrp +#: field:mrp.bom,date_start:0 +msgid "Valid From" +msgstr "発効日" + +#. module: mrp +#: selection:mrp.bom,type:0 +msgid "Normal BoM" +msgstr "通常部品表" + +#. module: mrp +#: field:res.company,manufacturing_lead:0 +msgid "Manufacturing Lead Time" +msgstr "製造リードタイム" + +#. module: mrp +#: field:mrp.bom,product_uos_qty:0 +#: field:mrp.production.product.line,product_uos_qty:0 +msgid "Product UOS Qty" +msgstr "製品販売単位数量" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.action_report_in_out_picking_tree +msgid "" +"Weekly Stock Value Variation enables you to track the stock value evolution " +"linked to manufacturing activities, receptions of products and delivery " +"orders." +msgstr "週次在庫価値変動は生産活動、製品の受付と配達オーダーと関連付けられている在庫価値の変化を追跡できます。" + +#. module: mrp +#: view:mrp.product.produce:0 +msgid "Confirm" +msgstr "確認" + +#. module: mrp +#: field:mrp.bom,product_efficiency:0 +msgid "Manufacturing Efficiency" +msgstr "製造の効率化" + +#. module: mrp +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "エラー。再帰的な関係となる会社を作ることはできません。" + +#. module: mrp +#: help:mrp.bom,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the bills of " +"material without removing it." +msgstr "アクティブな項目をFalseに設定すると、部品表は削除することなく非表示にできます。" + +#. module: mrp +#: field:mrp.bom,product_rounding:0 +msgid "Product Rounding" +msgstr "製品の丸め" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "New" +msgstr "新規" + +#. module: mrp +#: selection:mrp.product.produce,mode:0 +msgid "Consume Only" +msgstr "消費のみ" + +#. module: mrp +#: view:mrp.production:0 +msgid "Recreate Picking" +msgstr "集荷の再作成" + +#. module: mrp +#: help:mrp.bom,type:0 +msgid "" +"If a sub-product is used in several products, it can be useful to create its " +"own BoM. Though if you don't want separated production orders for this sub-" +"product, select Set/Phantom as BoM type. If a Phantom BoM is used for a root " +"product, it will be sold and shipped as a set of components, instead of " +"being produced." +msgstr "" +"サブ製品が複数の製品の中で使われている場合、それ自身の部品表を作成すると便利です。このサブ製品のために分離された製造オーダーを望まない場合、部品表タイプに" +"設定 / 模型を選択します。模型部品表が根幹の製品に使われる場合、製造される代わりに構成部品のセットとして販売され、出荷されます。" + +#. module: mrp +#: help:mrp.production,state:0 +msgid "" +"When the production order is created the state is set to 'Draft'.\n" +" If the order is confirmed the state is set to 'Waiting Goods'.\n" +" If any exceptions are there, the state is set to 'Picking Exception'. " +" \n" +"If the stock is available then the state is set to 'Ready to Produce'.\n" +" When the production gets started then the state is set to 'In Production'.\n" +" When the production is over, the state is set to 'Done'." +msgstr "" +"製造オーダーが作成された時、状態はドラフトに設定されます。\n" +" オーダーが確認されると、状態は商品待ちに設定されます。\n" +" 何か例外がある場合は、状態は集荷例外に設定されます。\n" +"在庫が使用可能になった時に、状態は製造準備完了に設定されます。\n" +" 製造が開始されると、状態は製造中に設定されます。\n" +" 製造が終了すると、状態は完了に設定されます。" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "On Order" +msgstr "注文中" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_configuration +#: view:res.company:0 +msgid "Configuration" +msgstr "設定" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Starting Date" +msgstr "開始日" + +#. module: mrp +#: field:mrp.workcenter,time_stop:0 +msgid "Time after prod." +msgstr "生産後の時間" + +#. module: mrp +#: field:mrp.workcenter.load,time_unit:0 +msgid "Type of period" +msgstr "期間のタイプ" + +#. module: mrp +#: view:mrp.production:0 +msgid "Total Qty" +msgstr "合計数量" + +#. module: mrp +#: field:mrp.routing.workcenter,hour_nbr:0 +msgid "Number of Hours" +msgstr "時間数" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Costing Information" +msgstr "コスト情報" + +#. module: mrp +#: model:process.node,name:mrp.process_node_purchaseprocure0 +msgid "Procurement Orders" +msgstr "調達オーダー" + +#. module: mrp +#: help:mrp.bom,product_rounding:0 +msgid "Rounding applied on the product quantity." +msgstr "丸めは製品数量に適用されます。" + +#. module: mrp +#: model:process.node,note:mrp.process_node_stock0 +msgid "Assignment from Production or Purchase Order." +msgstr "製造または発注オーダーから割り当てます。" + +#. module: mrp +#: field:mrp.routing.workcenter,routing_id:0 +msgid "Parent Routing" +msgstr "親経路" + +#. module: mrp +#: help:mrp.workcenter,time_start:0 +msgid "Time in hours for the setup." +msgstr "設定のための時間(時)" + +#. module: mrp +#: model:product.template,name:mrp.product_orangejuice_product_template +msgid "Orange Juice" +msgstr "オレンジジュース" + +#. module: mrp +#: field:mrp.bom.revision,bom_id:0 +#: field:procurement.order,bom_id:0 +msgid "BoM" +msgstr "部品表" + +#. module: mrp +#: model:ir.model,name:mrp.model_report_mrp_inout +#: view:report.mrp.inout:0 +msgid "Stock value variation" +msgstr "在庫価値変動" + +#. module: mrp +#: model:process.node,note:mrp.process_node_mts0 +#: model:process.node,note:mrp.process_node_servicemts0 +msgid "Assignment from stock." +msgstr "在庫から割当" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Waiting Goods" +msgstr "待機商品" + +#. module: mrp +#: field:mrp.bom.revision,last_indice:0 +msgid "last indice" +msgstr "最終インデックス" + +#. module: mrp +#: field:mrp.bom,revision_ids:0 +#: view:mrp.bom.revision:0 +msgid "BoM Revisions" +msgstr "部品表改訂" + +#. module: mrp +#: field:report.mrp.inout,date:0 +#: field:report.workcenter.load,name:0 +msgid "Week" +msgstr "週" + +#. module: mrp +#: selection:mrp.production,priority:0 +msgid "Normal" +msgstr "通常" + +#. module: mrp +#: view:mrp.production:0 +msgid "Production started late" +msgstr "製造は遅れて開始" + +#. module: mrp +#: model:process.node,note:mrp.process_node_routing0 +msgid "Manufacturing Steps." +msgstr "製造工程" + +#. module: mrp +#: code:addons/mrp/report/price.py:146 +#: model:ir.actions.report.xml,name:mrp.report_cost_structure +#, python-format +msgid "Cost Structure" +msgstr "コスト構造" + +#. module: mrp +#: model:res.groups,name:mrp.group_mrp_user +msgid "User" +msgstr "ユーザ" + +#. module: mrp +#: selection:mrp.product.produce,mode:0 +msgid "Consume & Produce" +msgstr "消費と生産" + +#. module: mrp +#: field:mrp.bom,bom_id:0 +msgid "Parent BoM" +msgstr "親部品表" + +#. module: mrp +#: report:bom.structure:0 +msgid "BOM Ref" +msgstr "部品表参照" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_bom_form_action2 +msgid "" +"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." +msgstr "" +"構成部品の部品表はマスター部品表を作成するために使われる構成部品とサブ製品です。特定の構成部品が使われている部品表を検索するにはこのメニューを使います。" + +#. module: mrp +#: model:product.uom,name:mrp.product_uom_litre +msgid "Litre" +msgstr "リットル" + +#. module: mrp +#: code:addons/mrp/mrp.py:762 +#, python-format +msgid "" +"You are going to produce total %s quantities of \"%s\".\n" +"But you can only produce up to total %s quantities." +msgstr "" +"合計 %s の %s を生産しようとしています。\n" +"しかし、あなたは合計 %s の量までのみ生産することができます。" + +#. module: mrp +#: model:process.node,note:mrp.process_node_stockproduct0 +msgid "Product type is Stockable or Consumable." +msgstr "製品タイプは在庫可能または売り切り品です。" + +#. module: mrp +#: code:addons/mrp/mrp.py:603 +#: code:addons/mrp/wizard/change_production_qty.py:78 +#: code:addons/mrp/wizard/change_production_qty.py:83 +#, python-format +msgid "Error" +msgstr "エラー" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Production Started" +msgstr "製造開始済" + +#. module: mrp +#: field:mrp.product.produce,product_qty:0 +msgid "Select Quantity" +msgstr "数量選択" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.act_product_product_2_mrp_bom +#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action +#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action +#: field:product.product,bom_ids:0 +msgid "Bill of Materials" +msgstr "部品表" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_property_action +#: model:ir.ui.menu,name:mrp.menu_mrp_property_action +#: view:mrp.bom:0 +#: field:mrp.bom,property_ids:0 +#: view:mrp.property:0 +#: view:procurement.order:0 +#: field:procurement.order,property_ids:0 +msgid "Properties" +msgstr "属性" + +#. module: mrp +#: view:mrp.routing.workcenter:0 +#: view:mrp.workcenter:0 +msgid "General Information" +msgstr "一般情報" + +#. module: mrp +#: view:mrp.production:0 +msgid "Productions" +msgstr "製造" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_routing +#: view:mrp.bom:0 +#: field:mrp.bom,routing_id:0 +#: view:mrp.production:0 +#: field:mrp.production,routing_id:0 +#: view:mrp.routing:0 +#: model:process.node,name:mrp.process_node_routing0 +msgid "Routing" +msgstr "経路" + +#. module: mrp +#: field:mrp.production,date_planned:0 +msgid "Scheduled date" +msgstr "予定日" + +#. module: mrp +#: constraint:stock.move:0 +msgid "You must assign a production lot for this product" +msgstr "この製品に製造ロットを割り当てる必要があります。" + +#. module: mrp +#: field:stock.move,production_id:0 +msgid "Production" +msgstr "製造" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production_workcenter_line +#: field:mrp.production.workcenter.line,name:0 +msgid "Work Order" +msgstr "作業オーダー" + +#. module: mrp +#: view:board.board:0 +msgid "Procurements in Exception" +msgstr "調達の例外" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_minimumstockprocure0 +msgid "'Minimum stock rule' material" +msgstr "材料の最小在庫ルール" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_product_price +msgid "Product Price" +msgstr "製品価格" + +#. module: mrp +#: model:ir.model,name:mrp.model_stock_move_split +msgid "Split in Production lots" +msgstr "製造ロットに分割" + +#. module: mrp +#: view:change.production.qty:0 +msgid "Change Quantity" +msgstr "数量変更" + +#. module: mrp +#: view:change.production.qty:0 +#: model:ir.actions.act_window,name:mrp.action_change_production_qty +msgid "Change Product Qty" +msgstr "製品数量変更" + +#. module: mrp +#: view:mrp.bom.revision:0 +#: field:mrp.bom.revision,description:0 +#: view:mrp.property:0 +#: view:mrp.property.group:0 +#: field:mrp.routing,note:0 +#: view:mrp.routing.workcenter:0 +#: field:mrp.routing.workcenter,note:0 +#: view:mrp.workcenter:0 +#: field:mrp.workcenter,note:0 +msgid "Description" +msgstr "説明" + +#. module: mrp +#: view:board.board:0 +msgid "Manufacturing board" +msgstr "製造ボード" + +#. module: mrp +#: field:mrp.production,date_planned_end:0 +msgid "Scheduled End Date" +msgstr "終了予定日" + +#. module: mrp +#: model:process.node,note:mrp.process_node_procureproducts0 +msgid "The way to procurement depends on the product type." +msgstr "調達方法は製品タイプに依存します。" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_manufacturing +msgid "Manufacturing" +msgstr "製造" + +#. module: mrp +#: view:board.board:0 +msgid "Next Production Orders" +msgstr "次の製造オーダー" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_property_group_action +#: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action +msgid "Property Groups" +msgstr "属性グループ" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_procurestockableproduct0 +msgid "" +"Depending on the chosen method to supply the stockable products, the " +"procurement order creates a RFQ, a production order, ... " +msgstr "在庫可能製品の供給をするために選択された方法にしたがって、調達オーダーは見積依頼や製造オーダーなどを作成します。 " + +#. module: mrp +#: code:addons/mrp/mrp.py:874 +#: code:addons/mrp/mrp.py:929 +#: code:addons/mrp/mrp.py:954 +#, python-format +msgid "PROD: %s" +msgstr "生産:%s" + +#. module: mrp +#: help:mrp.workcenter,time_stop:0 +msgid "Time in hours for the cleaning." +msgstr "清掃のための時間(時)" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_purchaseprocure0 +msgid "Automatic RFQ" +msgstr "自動見積依頼" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicemto0 +msgid "" +"If the service has a 'Produce' supply method, this creates a task in the " +"project management module of OpenERP." +msgstr "サービスが提供方法として生産であるなら、これはOpenERPのプロジェクト管理モジュールの中にタスクを生成します。" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_productionprocureproducts0 +msgid "" +"In order to supply raw material (to be purchased or produced), the " +"production order creates as much procurement orders as components listed in " +"the BOM, through a run of the schedulers (MRP)." +msgstr "" +"原料を供給するために(仕入または製造される)、製造オーダーはMRPスケジューラを実行することを通して、部品表にリストされている構成部品と同様の調達オーダー" +"を作成します。" + +#. module: mrp +#: help:mrp.product_price,number:0 +msgid "" +"Specify quantity of products to produce or buy. Report of Cost structure " +"will be displayed base on this quantity." +msgstr "製造あるいは購入する製品の数量を指定します。コスト構造のレポートはこの数量を元にして表示されます。" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "On Stock" +msgstr "在庫" + +#. module: mrp +#: field:mrp.bom,sequence:0 +#: report:mrp.production.order:0 +#: field:mrp.production.workcenter.line,sequence:0 +#: field:mrp.routing.workcenter,sequence:0 +msgid "Sequence" +msgstr "順序" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_leaves_search_mrp +msgid "Resource Leaves" +msgstr "リソースの休暇" + +#. module: mrp +#: help:mrp.bom,sequence:0 +msgid "Gives the sequence order when displaying a list of bills of material." +msgstr "部品表のリストを表示する際には並び順を与えます。" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,move_lines:0 +#: report:mrp.production.order:0 +msgid "Products to Consume" +msgstr "消費製品" diff --git a/addons/mrp/i18n/lv.po b/addons/mrp/i18n/lv.po new file mode 100644 index 00000000000..a259910f655 --- /dev/null +++ b/addons/mrp/i18n/lv.po @@ -0,0 +1,2231 @@ +# Latvian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:49+0000\n" +"PO-Revision-Date: 2012-05-28 13:58+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Latvian <lv@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-29 04:45+0000\n" +"X-Generator: Launchpad (build 15316)\n" + +#. module: mrp +#: view:mrp.routing.workcenter:0 +msgid "Routing Work Centers" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_production_action +msgid "" +"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." +msgstr "" + +#. module: mrp +#: help:mrp.production,location_src_id:0 +msgid "Location where the system will look for components." +msgstr "" + +#. module: mrp +#: field:mrp.production,workcenter_lines:0 +msgid "Work Centers Utilisation" +msgstr "" + +#. module: mrp +#: model:product.template,name:mrp.product_sugar_product_template +msgid "Sugar" +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "No. Of Cycles" +msgstr "" + +#. module: mrp +#: field:mrp.routing.workcenter,cycle_nbr:0 +msgid "Number of Cycles" +msgstr "" + +#. module: mrp +#: model:product.uom.categ,name:mrp.product_uom_categ_fluid +msgid "Fluid" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_minimumstockprocure0 +msgid "" +"The 'Minimum stock rule' allows the system to create procurement orders " +"automatically as soon as the minimum stock is reached." +msgstr "" + +#. module: mrp +#: field:mrp.production,picking_id:0 +msgid "Picking list" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#, python-format +msgid "Hourly Cost" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:139 +#, python-format +msgid "Cost Price per Uom" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Scrap Products" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_routing_action +#: model:ir.ui.menu,name:mrp.menu_mrp_routing_action +msgid "Routings" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,product_id:0 +msgid "Work Center Product" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Search Bill Of Material" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_stockproduct1 +msgid "For stockable products and consumables" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_stockproduction0 +msgid "To Produce" +msgstr "" + +#. module: mrp +#: help:mrp.routing.workcenter,cycle_nbr:0 +msgid "" +"Number of iterations this work center has to do in the specified operation " +"of the routing." +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +#: field:mrp.bom,code:0 +#: view:mrp.production:0 +#: field:mrp.production,name:0 +msgid "Reference" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Finished Products" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Manufacturing Orders which are currently in production." +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_servicerfq0 +#: model:process.transition,name:mrp.process_transition_stockrfq0 +msgid "To Buy" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_purchaseprocure0 +msgid "The system launches automatically a RFQ to the preferred supplier." +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Products to Finish" +msgstr "" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "Set / Pack" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,state:0 +msgid "State" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_hour:0 +msgid "Cost per hour" +msgstr "" + +#. module: mrp +#: model:product.template,name:mrp.product_orange_product_template +msgid "Orange" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicemts0 +msgid "" +"This is used in case of a service without any impact in the system, a " +"training session for instance." +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "UOM" +msgstr "" + +#. module: mrp +#: field:change.production.qty,product_qty:0 +#: field:mrp.bom,product_qty:0 +#: field:mrp.production,product_qty:0 +#: field:mrp.production.product.line,product_qty:0 +msgid "Product Qty" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,product_id:0 +msgid "" +"Fill this product to track easily your production costs in the analytic " +"accounting." +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_purchaseprocure0 +msgid "For purchased material" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,indice:0 +msgid "Revision" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.product_form_config_action +msgid "" +"Create a product form for everything you buy or sell. Specify a supplier if " +"the product can be purchased." +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.next_id_77 +msgid "Reporting" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_cycle_account_id:0 +msgid "Cycle Account" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#, python-format +msgid "Work Cost" +msgstr "" + +#. module: mrp +#: report:bom.structure:0 +msgid "[" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_procureserviceproduct0 +msgid "Procurement of services" +msgstr "" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Capacity Information" +msgstr "" + +#. module: mrp +#: field:mrp.production,move_created_ids2:0 +msgid "Produced Products" +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Destination Location" +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_bom +msgid "Master Data" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockmts0 +msgid "" +"The system waits for the products to be available in the stock. These " +"products are typically procured manually or through a minimum stock rule." +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Partner Ref" +msgstr "" + +#. module: mrp +#: field:mrp.production,origin:0 +#: report:mrp.production.order:0 +msgid "Source Document" +msgstr "" + +#. module: mrp +#: field:mrp.production,product_lines:0 +msgid "Scheduled goods" +msgstr "" + +#. module: mrp +#: selection:mrp.bom,type:0 +msgid "Sets / Phantom" +msgstr "" + +#. module: mrp +#: help:mrp.bom,position:0 +msgid "Reference to a position in an external plan." +msgstr "" + +#. module: mrp +#: constraint:stock.move:0 +msgid "You try to assign a lot which is not from the same product" +msgstr "" + +#. module: mrp +#: model:product.template,name:mrp.product_cloth_product_template +msgid "Cloth" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_product_produce +msgid "Product Produce" +msgstr "" + +#. module: mrp +#: constraint:mrp.bom:0 +msgid "Error ! You cannot create recursive BoM." +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_routing_workcenter +msgid "Work Center Usage" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_procurestockableproduct0 +msgid "Procurement of stockable Product" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Default UOM" +msgstr "" + +#. module: mrp +#: sql_constraint:mrp.production:0 +#: sql_constraint:stock.picking:0 +msgid "Reference must be unique per Company!" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:139 +#: report:bom.structure:0 +#: field:mrp.product_price,number:0 +#: report:mrp.production.order:0 +#, python-format +msgid "Quantity" +msgstr "" + +#. module: mrp +#: field:mrp.production.workcenter.line,hour:0 +msgid "Nbr of hours" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Confirm Production" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockproduct0 +msgid "" +"The system creates an order (production or purchased) depending on the sold " +"quantity and the products parameters." +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockproduction0 +msgid "" +"In case the Supply method of the product is Produce, the system creates a " +"production order." +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_property_action +msgid "" +"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." +msgstr "" + +#. module: mrp +#: help:mrp.production,picking_id:0 +msgid "" +"This is the Internal Picking List that brings the finished product to the " +"production plan" +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_search_mrp +msgid "Working Time" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_report_in_out_picking_tree +msgid "Weekly Stock Value Variation" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,date_planned_date:0 +#: report:mrp.production.order:0 +msgid "Scheduled Date" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Component Product" +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Bill Of Material" +msgstr "" + +#. module: mrp +#: help:mrp.routing,location_id:0 +msgid "" +"Keep empty if you produce at the location where the finished products are " +"needed.Set a location if you produce at a fixed location. This can be a " +"partner location if you subcontract the manufacturing operations." +msgstr "" + +#. module: mrp +#: view:board.board:0 +msgid "Stock Value Variation" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action2 +msgid "Bill of Materials Structure" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_serviceproduct0 +msgid "Product type is service" +msgstr "" + +#. module: mrp +#: sql_constraint:res.company:0 +msgid "The company name must be unique !" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_property_group_action +msgid "" +"Define specific property groups that can be assigned to the properties of " +"your bill of materials." +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,costs_cycle:0 +msgid "Specify Cost of Work Center per cycle." +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_bom0 +msgid "Manufacturing decomposition" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_serviceproduct1 +msgid "For Services." +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,date:0 +msgid "Modification Date" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,costs_cycle_account_id:0 +#: help:mrp.workcenter,costs_hour_account_id:0 +msgid "" +"Complete this only if you want automatic analytic accounting entries on " +"production orders." +msgstr "" + +#. module: mrp +#: field:mrp.production.workcenter.line,cycle:0 +msgid "Nbr of cycles" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_orderrfq0 +#: model:process.node,note:mrp.process_node_rfq0 +msgid "Request for Quotation." +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_billofmaterialrouting0 +msgid "" +"The Bill of Material is linked to a routing, i.e. the succession of work " +"centers." +msgstr "" + +#. module: mrp +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "" + +#. module: mrp +#: field:mrp.production,move_created_ids:0 +msgid "Products to Produce" +msgstr "" + +#. module: mrp +#: view:mrp.routing:0 +#: field:mrp.routing,location_id:0 +msgid "Production Location" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Change Qty" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_configure_workcenter +msgid "Configure your work centers" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Force Reservation" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,author_id:0 +msgid "Author" +msgstr "" + +#. module: mrp +#: field:report.mrp.inout,value:0 +msgid "Stock value" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_product_bom_structure +msgid "Product BoM Structure" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Search Production" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:139 +#, python-format +msgid "Supplier Price per Uom" +msgstr "" + +#. module: mrp +#: help:mrp.routing.workcenter,sequence:0 +msgid "" +"Gives the sequence order when displaying a list of routing Work Centers." +msgstr "" + +#. module: mrp +#: constraint:stock.move:0 +msgid "You can not move products from or to a location of the type view." +msgstr "" + +#. module: mrp +#: field:mrp.bom,child_complete_ids:0 +msgid "BoM Hierarchy" +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_uom:0 +#: field:mrp.production,product_uom:0 +#: field:mrp.production.product.line,product_uom:0 +msgid "Product UOM" +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Picking Exception" +msgstr "" + +#. module: mrp +#: field:mrp.bom,bom_lines:0 +msgid "BoM Lines" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,time_start:0 +msgid "Time before prod." +msgstr "" + +#. module: mrp +#: help:mrp.routing,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the routing " +"without removing it." +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_billofmaterialrouting0 +msgid "Material Routing" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,move_lines2:0 +#: report:mrp.production.order:0 +msgid "Consumed Products" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_mrp_workcenter_load_wizard +#: model:ir.model,name:mrp.model_mrp_workcenter_load +#: model:ir.model,name:mrp.model_report_workcenter_load +msgid "Work Center Load" +msgstr "" + +#. module: mrp +#: code:addons/mrp/procurement.py:43 +#, python-format +msgid "No BoM defined for this product !" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action2 +#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action2 +msgid "Bill of Material Components" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_stock_move +msgid "Stock Move" +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_planning +msgid "Planning" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Ready" +msgstr "" + +#. module: mrp +#: model:product.template,name:mrp.product_buttons_product_template +msgid "Shirt Buttons" +msgstr "" + +#. module: mrp +#: help:mrp.production,routing_id:0 +msgid "" +"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." +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,time_cycle:0 +msgid "Time in hours for doing one cycle." +msgstr "" + +#. module: mrp +#: constraint:mrp.bom:0 +msgid "BoM line product should not be same as BoM product." +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "In Production" +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_property +msgid "Master Bill of Materials" +msgstr "" + +#. module: mrp +#: help:mrp.bom,product_uos:0 +msgid "" +"Product UOS (Unit of Sale) is the unit of measurement for the invoicing and " +"promotion of stock." +msgstr "" + +#. module: mrp +#: view:mrp.product_price:0 +#: view:mrp.workcenter.load:0 +msgid "Print" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +#: view:mrp.workcenter:0 +msgid "Type" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_minimumstockrule0 +msgid "Linked to the 'Minimum stock rule' supplying method." +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter.load,time_unit:0 +msgid "Per month" +msgstr "" + +#. module: mrp +#: code:addons/mrp/wizard/change_production_qty.py:78 +#: code:addons/mrp/wizard/change_production_qty.py:83 +#, python-format +msgid "Couldn't find bill of material for product" +msgstr "" + +#. module: mrp +#: report:bom.structure:0 +msgid "Product Name" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:503 +#, python-format +msgid "Invalid action !" +msgstr "" + +#. module: mrp +#: help:mrp.bom,product_efficiency:0 +msgid "A factor of 0.9 means a loss of 10% within the production process." +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:734 +#: code:addons/mrp/mrp.py:762 +#, python-format +msgid "Warning!" +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Printing date" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_orderrfq0 +#: model:process.node,name:mrp.process_node_rfq0 +msgid "RFQ" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_producttostockrules0 +msgid "Procurement rule" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Partial" +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "WorkCenter" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_procureserviceproduct0 +msgid "" +"Depending on the chosen method to 'supply' the service, the procurement " +"order creates a RFQ for a subcontracting purchase order or waits until the " +"service is done (= the delivery of the products)." +msgstr "" + +#. module: mrp +#: selection:mrp.production,priority:0 +msgid "Urgent" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Manufacturing Orders which are waiting for raw materials." +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_workcenter_action +msgid "" +"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." +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production +msgid "Manufacturing Order" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_productionprocureproducts0 +msgid "Procurement of raw material" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,cycle_total:0 +msgid "Total Cycles" +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Ready to Produce" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,name:0 +msgid "Modification name" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +#: view:mrp.production:0 +msgid "Date" +msgstr "" + +#. module: mrp +#: field:mrp.bom,type:0 +msgid "BoM Type" +msgstr "" + +#. module: mrp +#: code:addons/mrp/procurement.py:45 +#, python-format +msgid "" +"Procurement '%s' has an exception: 'No BoM defined for this product !'" +msgstr "" + +#. module: mrp +#: view:mrp.property:0 +msgid "Search" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:626 +#, python-format +msgid "Could not cancel manufacturing order !" +msgstr "" + +#. module: mrp +#: field:report.workcenter.load,cycle:0 +msgid "Nbr of cycle" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_res_company +msgid "Companies" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:627 +#, python-format +msgid "" +"You must first cancel related internal picking attached to this " +"manufacturing order." +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_minimumstockrule0 +#: model:process.node,name:mrp.process_node_productminimumstockrule0 +msgid "Minimum Stock" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:503 +#, python-format +msgid "Cannot delete a manufacturing order in state '%s'" +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menus_dash_mrp +msgid "Dashboard" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:160 +#: code:addons/mrp/report/price.py:211 +#, python-format +msgid "Total Cost of %s %s" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_stockproduct0 +#: model:process.node,name:mrp.process_node_stockproduct1 +#: model:process.process,name:mrp.process_process_stockableproductprocess0 +msgid "Stockable Product" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#, python-format +msgid "Work Center name" +msgstr "" + +#. module: mrp +#: field:mrp.routing,code:0 +msgid "Code" +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "No. Of Hours" +msgstr "" + +#. module: mrp +#: view:mrp.property:0 +#: view:mrp.property.group:0 +msgid "Property Group" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Qty" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_production0 +msgid "Manufacturing Plan." +msgstr "" + +#. module: mrp +#: view:mrp.routing:0 +#: view:mrp.workcenter:0 +msgid "Inactive" +msgstr "" + +#. module: mrp +#: view:change.production.qty:0 +#: view:mrp.product.produce:0 +#: view:mrp.product_price:0 +#: view:mrp.production:0 +#: view:mrp.workcenter.load:0 +msgid "Cancel" +msgstr "" + +#. module: mrp +#: code:addons/mrp/wizard/change_production_qty.py:63 +#, python-format +msgid "Active Id is not found" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicerfq0 +msgid "" +"If the service has a 'Buy' supply method, this creates a RFQ, a " +"subcontracting demand for instance." +msgstr "" + +#. module: mrp +#: field:mrp.production,move_prod_id:0 +msgid "Move product" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Late" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_servicemts0 +msgid "Make to stock" +msgstr "" + +#. module: mrp +#: report:bom.structure:0 +msgid "BOM Name" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Start Production" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.open_board_manufacturing +#: model:ir.ui.menu,name:mrp.menu_board_manufacturing +msgid "Production Dashboard" +msgstr "" + +#. module: mrp +#: model:res.groups,name:mrp.group_mrp_manager +msgid "Manager" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Source Loc." +msgstr "" + +#. module: mrp +#: field:mrp.bom,position:0 +msgid "Internal Reference" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_billofmaterial0 +msgid "Product's structure" +msgstr "" + +#. module: mrp +#: field:mrp.bom,name:0 +#: report:mrp.production.order:0 +#: field:mrp.production.product.line,name:0 +#: field:mrp.routing,name:0 +#: field:mrp.routing.workcenter,name:0 +msgid "Name" +msgstr "" + +#. module: mrp +#: field:mrp.product.produce,mode:0 +msgid "Mode" +msgstr "" + +#. module: mrp +#: report:bom.structure:0 +msgid "]" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter.load,measure_unit:0 +msgid "Amount measuring unit" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_production_action_planning +msgid "" +"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." +msgstr "" + +#. module: mrp +#: model:ir.actions.todo.category,name:mrp.category_mrp_config +msgid "MRP Management" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,costs_hour:0 +msgid "Specify Cost of Work Center per hour." +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,capacity_per_cycle:0 +msgid "" +"Number of operations this Work Center can do in parallel. If this Work " +"Center represents a team of 5 workers, the capacity per cycle is 5." +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action3 +msgid "Manufacturing Orders in Progress" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +#: view:mrp.production:0 +#: view:mrp.property:0 +#: view:mrp.routing:0 +#: view:mrp.workcenter:0 +msgid "Group By..." +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#, python-format +msgid "Cycles Cost" +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter.load,measure_unit:0 +msgid "Amount in cycles" +msgstr "" + +#. module: mrp +#: field:mrp.production,location_dest_id:0 +msgid "Finished Products Location" +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_pm_resources_config +msgid "Resources" +msgstr "" + +#. module: mrp +#: help:mrp.routing.workcenter,hour_nbr:0 +msgid "" +"Time in hours for this Work Center to achieve the operation of the specified " +"routing." +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_journal_id:0 +msgid "Analytic Journal" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_workcenter_action +#: model:ir.ui.menu,name:mrp.menu_view_resource_search_mrp +#: field:mrp.routing,workcenter_lines:0 +msgid "Work Centers" +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter.load,time_unit:0 +msgid "Per week" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_routing_action +msgid "" +"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." +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.product_form_config_action +msgid "Create or Import Products" +msgstr "" + +#. module: mrp +#: field:report.workcenter.load,hour:0 +msgid "Nbr of hour" +msgstr "" + +#. module: mrp +#: view:mrp.routing:0 +msgid "Work Center Operations" +msgstr "" + +#. module: mrp +#: view:mrp.routing:0 +msgid "Notes" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Manufacturing Orders which are ready to start production." +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_bom +#: view:mrp.bom:0 +#: field:mrp.production,bom_id:0 +#: model:process.node,name:mrp.process_node_billofmaterial0 +msgid "Bill of Material" +msgstr "" + +#. module: mrp +#: view:mrp.workcenter.load:0 +msgid "Select time unit" +msgstr "" + +#. module: mrp +#: view:report.workcenter.load:0 +msgid "Work Center load" +msgstr "" + +#. module: mrp +#: help:mrp.production,location_dest_id:0 +msgid "Location where the system will stock the finished products." +msgstr "" + +#. module: mrp +#: help:mrp.routing.workcenter,routing_id:0 +msgid "" +"Routing indicates all the Work Centers used, for how long and/or cycles.If " +"Routing is indicated then,the third tab of a production order (Work Centers) " +"will be automatically pre-completed." +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_producttostockrules0 +msgid "" +"The Minimum Stock Rule is an automatic procurement rule based on a mini and " +"maxi quantity. It's available in the Inventory management menu and " +"configured by product." +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:187 +#, python-format +msgid "Components Cost of %s %s" +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter.load,time_unit:0 +msgid "Day by day" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Revisions" +msgstr "" + +#. module: mrp +#: model:product.template,name:mrp.product_shirt_product_template +msgid "Shirt" +msgstr "" + +#. module: mrp +#: field:mrp.production,priority:0 +msgid "Priority" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_stock_picking +msgid "Picking List" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:1000 +#, python-format +msgid "Manufacturing order '%s' is scheduled for the %s." +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Production Order N° :" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:647 +#, python-format +msgid "Manufacturing order '%s' is ready to produce." +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production_product_line +msgid "Production Scheduled Product" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:204 +#, python-format +msgid "Work Cost of %s %s" +msgstr "" + +#. module: mrp +#: help:res.company,manufacturing_lead:0 +msgid "Security days for each manufacturing operation." +msgstr "" + +#. module: mrp +#: model:product.template,name:mrp.product_water_product_template +msgid "Water" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Component Name" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_mts0 +#: model:process.transition,name:mrp.process_transition_servicemts0 +#: model:process.transition,name:mrp.process_transition_stockmts0 +msgid "Make to Stock" +msgstr "" + +#. module: mrp +#: constraint:mrp.production:0 +msgid "Order quantity cannot be negative or zero!" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_bom_form_action +msgid "" +"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." +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockrfq0 +msgid "" +"In case the Supply method of the product is Buy, the system creates a " +"purchase order." +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_procurement_order +msgid "Procurement" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_view_mrp_product_price_wizard +#: view:mrp.product_price:0 +msgid "Product Cost Structure" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:139 +#, python-format +msgid "Components suppliers" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Production Work Centers" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Split in production lots" +msgstr "" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Search for mrp workcenter" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +msgid "BoM Structure" +msgstr "" + +#. module: mrp +#: field:mrp.production,date_start:0 +msgid "Start Date" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_hour_account_id:0 +msgid "Hour Account" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Destination Loc." +msgstr "" + +#. module: mrp +#: field:mrp.bom,method:0 +msgid "Method" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Pending" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:603 +#, python-format +msgid "Couldn't find a bill of material for this product." +msgstr "" + +#. module: mrp +#: field:mrp.bom,active:0 +#: field:mrp.routing,active:0 +msgid "Active" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_procureproducts0 +msgid "Procure Products" +msgstr "" + +#. module: mrp +#: view:report.workcenter.load:0 +msgid "Work Center Loads" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_bom_revision +msgid "Bill of Material Revision" +msgstr "" + +#. module: mrp +#: help:mrp.production,origin:0 +msgid "" +"Reference of the document that generated this production order request." +msgstr "" + +#. module: mrp +#: sql_constraint:mrp.bom:0 +msgid "" +"All product quantities must be greater than 0.\n" +"You should install the mrp_subproduct module if you want to manage extra " +"products on BoMs !" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Extra Information" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_change_production_qty +msgid "Change Quantity of Products" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_productionorder0 +msgid "Drives the procurement orders for raw material." +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_general_account_id:0 +msgid "General Account" +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "SO Number" +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Done" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action4 +msgid "Manufacturing Orders Waiting Products" +msgstr "" + +#. module: mrp +#: selection:mrp.production,priority:0 +msgid "Not urgent" +msgstr "" + +#. module: mrp +#: field:mrp.production,user_id:0 +msgid "Responsible" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action2 +msgid "Manufacturing Orders To Start" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_workcenter +#: field:mrp.production.workcenter.line,workcenter_id:0 +#: field:mrp.routing.workcenter,workcenter_id:0 +#: view:mrp.workcenter:0 +#: field:report.workcenter.load,workcenter_id:0 +msgid "Work Center" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,capacity_per_cycle:0 +msgid "Capacity per Cycle" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_product_product +#: view:mrp.bom:0 +#: field:mrp.bom,product_id:0 +#: view:mrp.production:0 +#: field:mrp.production,product_id:0 +#: report:mrp.production.order:0 +#: field:mrp.production.product.line,product_id:0 +msgid "Product" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,hour_total:0 +msgid "Total Hours" +msgstr "" + +#. module: mrp +#: field:mrp.production,location_src_id:0 +msgid "Raw Materials Location" +msgstr "" + +#. module: mrp +#: view:mrp.product_price:0 +msgid "Print Cost Structure of Product." +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_uos:0 +#: field:mrp.production.product.line,product_uos:0 +msgid "Product UOS" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Consume Products" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.act_mrp_product_produce +#: view:mrp.product.produce:0 +#: view:mrp.production:0 +msgid "Produce" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_stock0 +#: model:process.transition,name:mrp.process_transition_servicemto0 +#: model:process.transition,name:mrp.process_transition_stockproduct0 +msgid "Make to Order" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:358 +#, python-format +msgid "Copy" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,note:0 +msgid "" +"Description of the Work Center. Explain here what's a cycle according to " +"this Work Center." +msgstr "" + +#. module: mrp +#: view:mrp.production.lot.line:0 +msgid "Production Products" +msgstr "" + +#. module: mrp +#: field:mrp.production,date_finished:0 +msgid "End Date" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,resource_id:0 +msgid "Resource" +msgstr "" + +#. module: mrp +#: help:mrp.bom,date_start:0 +#: help:mrp.bom,date_stop:0 +msgid "Validity of this BoM or component. Keep empty if it's always valid." +msgstr "" + +#. module: mrp +#: field:mrp.production,product_uos:0 +msgid "Product UoS" +msgstr "" + +#. module: mrp +#: selection:mrp.production,priority:0 +msgid "Very Urgent" +msgstr "" + +#. module: mrp +#: help:mrp.bom,routing_id:0 +msgid "" +"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 " +"planning." +msgstr "" + +#. module: mrp +#: view:change.production.qty:0 +msgid "Approve" +msgstr "" + +#. module: mrp +#: view:mrp.property.group:0 +msgid "Properties categories" +msgstr "" + +#. module: mrp +#: help:mrp.production.workcenter.line,sequence:0 +msgid "Gives the sequence order when displaying a list of work orders." +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Source Location" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: view:mrp.production.product.line:0 +msgid "Scheduled Products" +msgstr "" + +#. module: mrp +#: view:mrp.production.lot.line:0 +msgid "Production Products Consommation" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.act_product_manufacturing_open +#: model:ir.actions.act_window,name:mrp.mrp_production_action +#: model:ir.actions.act_window,name:mrp.mrp_production_action_planning +#: model:ir.ui.menu,name:mrp.menu_mrp_production_action +#: model:ir.ui.menu,name:mrp.menu_mrp_production_order_action +#: view:mrp.production:0 +msgid "Manufacturing Orders" +msgstr "" + +#. module: mrp +#: help:mrp.product.produce,mode:0 +msgid "" +"'Consume only' mode will only consume the products with the quantity " +"selected.\n" +"'Consume & Produce' mode will consume as well as produce the products with " +"the quantity selected and it will finish the production order when total " +"ordered quantities are produced." +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: report:mrp.production.order:0 +msgid "Work Orders" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_cycle:0 +msgid "Cost per cycle" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_serviceproduct0 +#: model:process.node,name:mrp.process_node_serviceproduct1 +msgid "Service" +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Cancelled" +msgstr "" + +#. module: mrp +#: help:mrp.bom,product_uom:0 +msgid "" +"UoM (Unit of Measure) is the unit of measurement for the inventory control" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:734 +#, python-format +msgid "" +"You are going to consume total %s quantities of \"%s\".\n" +"But you can only consume up to total %s quantities." +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_bom0 +msgid "" +"The Bill of Material is the product's decomposition. The components (that " +"are products themselves) can also have their own Bill of Material (multi-" +"level)." +msgstr "" + +#. module: mrp +#: field:mrp.bom,company_id:0 +#: field:mrp.production,company_id:0 +#: field:mrp.routing,company_id:0 +#: field:mrp.routing.workcenter,company_id:0 +#: view:mrp.workcenter:0 +msgid "Company" +msgstr "" + +#. module: mrp +#: selection:mrp.workcenter.load,measure_unit:0 +msgid "Amount in hours" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,time_cycle:0 +msgid "Time for 1 cycle (hour)" +msgstr "" + +#. module: mrp +#: model:ir.actions.report.xml,name:mrp.report_mrp_production_report +#: field:mrp.production.product.line,production_id:0 +#: field:mrp.production.workcenter.line,production_id:0 +#: model:process.node,name:mrp.process_node_production0 +#: model:process.node,name:mrp.process_node_productionorder0 +msgid "Production Order" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_productminimumstockrule0 +msgid "Automatic procurement rule" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Compute Data" +msgstr "" + +#. module: mrp +#: field:mrp.production,product_uos_qty:0 +msgid "Product UoS Qty" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:139 +#: view:mrp.bom:0 +#, python-format +msgid "Components" +msgstr "" + +#. module: mrp +#: report:bom.structure:0 +#: model:ir.actions.report.xml,name:mrp.report_bom_structure +msgid "BOM Structure" +msgstr "" + +#. module: mrp +#: field:mrp.bom,date_stop:0 +msgid "Valid Until" +msgstr "" + +#. module: mrp +#: field:mrp.bom,date_start:0 +msgid "Valid From" +msgstr "" + +#. module: mrp +#: selection:mrp.bom,type:0 +msgid "Normal BoM" +msgstr "" + +#. module: mrp +#: field:res.company,manufacturing_lead:0 +msgid "Manufacturing Lead Time" +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_uos_qty:0 +#: field:mrp.production.product.line,product_uos_qty:0 +msgid "Product UOS Qty" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.action_report_in_out_picking_tree +msgid "" +"Weekly Stock Value Variation enables you to track the stock value evolution " +"linked to manufacturing activities, receptions of products and delivery " +"orders." +msgstr "" + +#. module: mrp +#: view:mrp.product.produce:0 +msgid "Confirm" +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_efficiency:0 +msgid "Manufacturing Efficiency" +msgstr "" + +#. module: mrp +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "" + +#. module: mrp +#: help:mrp.bom,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the bills of " +"material without removing it." +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_rounding:0 +msgid "Product Rounding" +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "New" +msgstr "" + +#. module: mrp +#: selection:mrp.product.produce,mode:0 +msgid "Consume Only" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Recreate Picking" +msgstr "" + +#. module: mrp +#: help:mrp.bom,type:0 +msgid "" +"If a sub-product is used in several products, it can be useful to create its " +"own BoM. Though if you don't want separated production orders for this sub-" +"product, select Set/Phantom as BoM type. If a Phantom BoM is used for a root " +"product, it will be sold and shipped as a set of components, instead of " +"being produced." +msgstr "" + +#. module: mrp +#: help:mrp.production,state:0 +msgid "" +"When the production order is created the state is set to 'Draft'.\n" +" If the order is confirmed the state is set to 'Waiting Goods'.\n" +" If any exceptions are there, the state is set to 'Picking Exception'. " +" \n" +"If the stock is available then the state is set to 'Ready to Produce'.\n" +" When the production gets started then the state is set to 'In Production'.\n" +" When the production is over, the state is set to 'Done'." +msgstr "" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "On Order" +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_configuration +#: view:res.company:0 +msgid "Configuration" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Starting Date" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,time_stop:0 +msgid "Time after prod." +msgstr "" + +#. module: mrp +#: field:mrp.workcenter.load,time_unit:0 +msgid "Type of period" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Total Qty" +msgstr "" + +#. module: mrp +#: field:mrp.routing.workcenter,hour_nbr:0 +msgid "Number of Hours" +msgstr "" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Costing Information" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_purchaseprocure0 +msgid "Procurement Orders" +msgstr "" + +#. module: mrp +#: help:mrp.bom,product_rounding:0 +msgid "Rounding applied on the product quantity." +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_stock0 +msgid "Assignment from Production or Purchase Order." +msgstr "" + +#. module: mrp +#: field:mrp.routing.workcenter,routing_id:0 +msgid "Parent Routing" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,time_start:0 +msgid "Time in hours for the setup." +msgstr "" + +#. module: mrp +#: model:product.template,name:mrp.product_orangejuice_product_template +msgid "Orange Juice" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,bom_id:0 +#: field:procurement.order,bom_id:0 +msgid "BoM" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_report_mrp_inout +#: view:report.mrp.inout:0 +msgid "Stock value variation" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_mts0 +#: model:process.node,note:mrp.process_node_servicemts0 +msgid "Assignment from stock." +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Waiting Goods" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,last_indice:0 +msgid "last indice" +msgstr "" + +#. module: mrp +#: field:mrp.bom,revision_ids:0 +#: view:mrp.bom.revision:0 +msgid "BoM Revisions" +msgstr "" + +#. module: mrp +#: field:report.mrp.inout,date:0 +#: field:report.workcenter.load,name:0 +msgid "Week" +msgstr "" + +#. module: mrp +#: selection:mrp.production,priority:0 +msgid "Normal" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Production started late" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_routing0 +msgid "Manufacturing Steps." +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:146 +#: model:ir.actions.report.xml,name:mrp.report_cost_structure +#, python-format +msgid "Cost Structure" +msgstr "" + +#. module: mrp +#: model:res.groups,name:mrp.group_mrp_user +msgid "User" +msgstr "" + +#. module: mrp +#: selection:mrp.product.produce,mode:0 +msgid "Consume & Produce" +msgstr "" + +#. module: mrp +#: field:mrp.bom,bom_id:0 +msgid "Parent BoM" +msgstr "" + +#. module: mrp +#: report:bom.structure:0 +msgid "BOM Ref" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_bom_form_action2 +msgid "" +"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." +msgstr "" + +#. module: mrp +#: model:product.uom,name:mrp.product_uom_litre +msgid "Litre" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:762 +#, python-format +msgid "" +"You are going to produce total %s quantities of \"%s\".\n" +"But you can only produce up to total %s quantities." +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_stockproduct0 +msgid "Product type is Stockable or Consumable." +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:603 +#: code:addons/mrp/wizard/change_production_qty.py:78 +#: code:addons/mrp/wizard/change_production_qty.py:83 +#, python-format +msgid "Error" +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +msgid "Production Started" +msgstr "" + +#. module: mrp +#: field:mrp.product.produce,product_qty:0 +msgid "Select Quantity" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.act_product_product_2_mrp_bom +#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action +#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action +#: field:product.product,bom_ids:0 +msgid "Bill of Materials" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_property_action +#: model:ir.ui.menu,name:mrp.menu_mrp_property_action +#: view:mrp.bom:0 +#: field:mrp.bom,property_ids:0 +#: view:mrp.property:0 +#: view:procurement.order:0 +#: field:procurement.order,property_ids:0 +msgid "Properties" +msgstr "" + +#. module: mrp +#: view:mrp.routing.workcenter:0 +#: view:mrp.workcenter:0 +msgid "General Information" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Productions" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_routing +#: view:mrp.bom:0 +#: field:mrp.bom,routing_id:0 +#: view:mrp.production:0 +#: field:mrp.production,routing_id:0 +#: view:mrp.routing:0 +#: model:process.node,name:mrp.process_node_routing0 +msgid "Routing" +msgstr "" + +#. module: mrp +#: field:mrp.production,date_planned:0 +msgid "Scheduled date" +msgstr "" + +#. module: mrp +#: constraint:stock.move:0 +msgid "You must assign a production lot for this product" +msgstr "" + +#. module: mrp +#: field:stock.move,production_id:0 +msgid "Production" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production_workcenter_line +#: field:mrp.production.workcenter.line,name:0 +msgid "Work Order" +msgstr "" + +#. module: mrp +#: view:board.board:0 +msgid "Procurements in Exception" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_minimumstockprocure0 +msgid "'Minimum stock rule' material" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_product_price +msgid "Product Price" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_stock_move_split +msgid "Split in Production lots" +msgstr "" + +#. module: mrp +#: view:change.production.qty:0 +msgid "Change Quantity" +msgstr "" + +#. module: mrp +#: view:change.production.qty:0 +#: model:ir.actions.act_window,name:mrp.action_change_production_qty +msgid "Change Product Qty" +msgstr "" + +#. module: mrp +#: view:mrp.bom.revision:0 +#: field:mrp.bom.revision,description:0 +#: view:mrp.property:0 +#: view:mrp.property.group:0 +#: field:mrp.routing,note:0 +#: view:mrp.routing.workcenter:0 +#: field:mrp.routing.workcenter,note:0 +#: view:mrp.workcenter:0 +#: field:mrp.workcenter,note:0 +msgid "Description" +msgstr "" + +#. module: mrp +#: view:board.board:0 +msgid "Manufacturing board" +msgstr "" + +#. module: mrp +#: field:mrp.production,date_planned_end:0 +msgid "Scheduled End Date" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_procureproducts0 +msgid "The way to procurement depends on the product type." +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_manufacturing +msgid "Manufacturing" +msgstr "" + +#. module: mrp +#: view:board.board:0 +msgid "Next Production Orders" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_property_group_action +#: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action +msgid "Property Groups" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_procurestockableproduct0 +msgid "" +"Depending on the chosen method to supply the stockable products, the " +"procurement order creates a RFQ, a production order, ... " +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:874 +#: code:addons/mrp/mrp.py:929 +#: code:addons/mrp/mrp.py:954 +#, python-format +msgid "PROD: %s" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,time_stop:0 +msgid "Time in hours for the cleaning." +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_purchaseprocure0 +msgid "Automatic RFQ" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicemto0 +msgid "" +"If the service has a 'Produce' supply method, this creates a task in the " +"project management module of OpenERP." +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_productionprocureproducts0 +msgid "" +"In order to supply raw material (to be purchased or produced), the " +"production order creates as much procurement orders as components listed in " +"the BOM, through a run of the schedulers (MRP)." +msgstr "" + +#. module: mrp +#: help:mrp.product_price,number:0 +msgid "" +"Specify quantity of products to produce or buy. Report of Cost structure " +"will be displayed base on this quantity." +msgstr "" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "On Stock" +msgstr "" + +#. module: mrp +#: field:mrp.bom,sequence:0 +#: report:mrp.production.order:0 +#: field:mrp.production.workcenter.line,sequence:0 +#: field:mrp.routing.workcenter,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_leaves_search_mrp +msgid "Resource Leaves" +msgstr "" + +#. module: mrp +#: help:mrp.bom,sequence:0 +msgid "Gives the sequence order when displaying a list of bills of material." +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,move_lines:0 +#: report:mrp.production.order:0 +msgid "Products to Consume" +msgstr "" diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml index fb5d07c1754..7c8410cad7f 100644 --- a/addons/mrp/mrp_view.xml +++ b/addons/mrp/mrp_view.xml @@ -632,7 +632,7 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <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"/> @@ -640,11 +640,8 @@ <button name="button_recreate" states="picking_except" string="Recreate Picking"/> <button name="button_cancel" states="draft,ready,in_production,picking_except" string="Cancel"/> <button name="action_cancel" type="object" states="confirmed" string="Cancel"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,ready,in_production,done" statusbar_colors='{"picking_except":"red","confirmed":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,ready,in_production,done" statusbar_colors='{"picking_except":"red","confirmed":"blue"}'/> + </header> <sheet string="Manufacturing Orders" layout="auto"> <group colspan="4" col="7"> <field name="name" string="Reference"/> @@ -658,6 +655,8 @@ icon="terp-accessories-archiver+" name="%(mrp.action_change_production_qty)d" string="Change Qty" states="ready,confirmed" /> + </group> + <group colspan="4" col="4"> <label string="" colspan="2"/> <field name="product_uos_qty" groups="product.group_uos"/> <field name="product_uos" groups="product.group_uos"/> @@ -791,7 +790,7 @@ </notebook> </sheet> <div class="oe_form_sheet_width"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> diff --git a/addons/mrp/procurement.py b/addons/mrp/procurement.py index 4086a401f56..363f98e35d1 100644 --- a/addons/mrp/procurement.py +++ b/addons/mrp/procurement.py @@ -43,7 +43,7 @@ class procurement_order(osv.osv): cr.execute('update procurement_order set message=%s where id=%s', (_('No BoM defined for this product !'), procurement.id)) for (id, name) in self.name_get(cr, uid, procurement.id): message = _("Procurement '%s' has an exception: 'No BoM defined for this product !'") % name - self.log(cr, uid, id, message) + self.message_append_note(cr, uid, [procurement.id], body=message, context=context) return False return True @@ -97,6 +97,7 @@ class procurement_order(osv.osv): }) res[procurement.id] = produce_id self.write(cr, uid, [procurement.id], {'state': 'running'}) + self.running_send_note(cr, uid, ids, context=context) bom_result = production_obj.action_compute(cr, uid, [produce_id], properties=[x.id for x in procurement.property_ids]) wf_service.trg_validate(uid, 'mrp.production', produce_id, 'button_confirm', cr) diff --git a/addons/mrp/res_config_view.xml b/addons/mrp/res_config_view.xml index 8e5934b170a..258fe4f8356 100644 --- a/addons/mrp/res_config_view.xml +++ b/addons/mrp/res_config_view.xml @@ -7,10 +7,10 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Manufacturing" layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Apply" type="object" name="execute"/> <button string="Cancel" special="cancel"/> - </div> + </header> <sheet layout="auto"> <separator string="Manufacturing Order" colspan="4"/> <field name="module_mrp_operations"/> diff --git a/addons/mrp_jit/i18n/ja.po b/addons/mrp_jit/i18n/ja.po new file mode 100644 index 00000000000..3958d6d94ce --- /dev/null +++ b/addons/mrp_jit/i18n/ja.po @@ -0,0 +1,64 @@ +# Japanese 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: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2012-05-30 23:20+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-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: mrp_jit +#: model:ir.module.module,shortdesc:mrp_jit.module_meta_information +msgid "MRP JIT" +msgstr "MRPジャストインタイム" + +#. module: mrp_jit +#: model:ir.module.module,description:mrp_jit.module_meta_information +msgid "" +"\n" +" This module allows Just In Time computation of procurement orders.\n" +"\n" +" If you install this module, you will not have to run the regular " +"procurement \n" +" scheduler anymore (but you still need to run the minimum order point " +"rule \n" +" scheduler, or for example let it run daily.)\n" +" All procurement orders will be processed immediately, which could in " +"some\n" +" cases entail a small performance impact.\n" +"\n" +" It may also increase your stock size because products are reserved as " +"soon\n" +" as possible and the scheduler time range is not taken into account " +"anymore. \n" +" In that case, you can not use priorities any more on the different " +"picking.\n" +" \n" +" \n" +" " +msgstr "" +"\n" +" このモジュールは調達オーダーのジャストインタイム計算を行います。\n" +"\n" +" このモジュールをインストールしたなら、もう定期的な調達スケジューラを実行させる必要は \n" +" ありません(しかし、まだ最小発注点ルールスケジューラを実行するか、または、例えば、\n" +" それを毎日実行させる必要があります)。\n" +" 全ての調達オーダーは即座に実行されますが、幾つかのケースにおいてはパフォーマンス\n" +" に多少影響するかもしれません。\n" +"\n" +" 製品は可能な限り早く予約され、もはやスケジュールI時間の範囲は考慮されないので、\n" +" 在庫サイズは増えることになるかも知れません。\n" +" そのケースには異なる集荷による優先度をもはや使うことはできません。\n" +" \n" +" \n" +" " diff --git a/addons/mrp_operations/i18n/ja.po b/addons/mrp_operations/i18n/ja.po new file mode 100644 index 00000000000..582b090d4f2 --- /dev/null +++ b/addons/mrp_operations/i18n/ja.po @@ -0,0 +1,836 @@ +# Japanese translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-08 02:54+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-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_action_form +#: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_wc_action_planning +#: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_wc_order +#: view:mrp.production.workcenter.line:0 +#: view:mrp.workorder:0 +msgid "Work Orders" +msgstr "作業オーダー" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:489 +#, python-format +msgid "Operation is already finished!" +msgstr "操作は既に終了しています。" + +#. module: mrp_operations +#: model:process.node,note:mrp_operations.process_node_canceloperation0 +msgid "Cancel the operation." +msgstr "操作のキャンセル" + +#. module: mrp_operations +#: model:ir.model,name:mrp_operations.model_mrp_operations_operation_code +msgid "mrp_operations.operation.code" +msgstr "" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: view:mrp.workorder:0 +msgid "Group By..." +msgstr "グループ化…" + +#. module: mrp_operations +#: model:process.node,note:mrp_operations.process_node_workorder0 +msgid "Information from the routing definition." +msgstr "経路定義からの情報" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "March" +msgstr "3月" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_resource_planning +#: model:ir.ui.menu,name:mrp_operations.menu_mrp_production_wc_resource_planning +msgid "Work Centers" +msgstr "作業センタ" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +#: selection:mrp_operations.operation.code,start_stop:0 +msgid "Resume" +msgstr "再開" + +#. module: mrp_operations +#: report:mrp.code.barcode:0 +msgid "(" +msgstr "(" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Product to Produce" +msgstr "製造製品" + +#. module: mrp_operations +#: view:mrp_operations.operation:0 +msgid "Production Operation" +msgstr "製造操作" + +#. module: mrp_operations +#: view:mrp.production:0 +msgid "Set to Draft" +msgstr "ドラフトに設定" + +#. module: mrp_operations +#: field:mrp.production,allow_reorder:0 +msgid "Free Serialisation" +msgstr "自由な直列化" + +#. module: mrp_operations +#: model:ir.model,name:mrp_operations.model_mrp_production +msgid "Manufacturing Order" +msgstr "製造オーダー" + +#. module: mrp_operations +#: model:process.process,name:mrp_operations.process_process_mrpoperationprocess0 +msgid "Mrp Operations" +msgstr "MRP操作" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,day:0 +msgid "Day" +msgstr "日" + +#. module: mrp_operations +#: view:mrp.production:0 +msgid "Cancel Order" +msgstr "オーダーのキャンセル" + +#. module: mrp_operations +#: model:process.node,name:mrp_operations.process_node_productionorder0 +msgid "Production Order" +msgstr "製造オーダー" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +msgid "Picking Exception" +msgstr "例外の集荷" + +#. module: mrp_operations +#: model:process.transition,name:mrp_operations.process_transition_productionstart0 +msgid "Creation of the work order" +msgstr "作業オーダーの作成" + +#. module: mrp_operations +#: help:mrp.production.workcenter.line,state:0 +msgid "" +"* When a work order is created it is set in 'Draft' state.\n" +"* When user sets work order in start mode that time it will be set in 'In " +"Progress' state.\n" +"* When work order is in running mode, during that time if user wants to stop " +"or to make changes in order then can set in 'Pending' state.\n" +"* When the user cancels the work order it will be set in 'Canceled' state.\n" +"* When order is completely processed that time it is set in 'Finished' state." +msgstr "" +"・ 作業オーダーが作成されると、それはドラフト状態に設定されます。\n" +"・ ユーザが作業オーダーに開始モードを設定すると、それは進行中に設定されます。\n" +"・ 作業オーダーが実行中モードになった時にユーザが停止やオーダーを変更した場合、保留中状態に設定されます。\n" +"・ ユーザが作業オーダーをキャンセルすると、キャンセル済状態に設定されます。\n" +"・ オーダーが完全に処理されると、完了状態に設定されます。" + +#. module: mrp_operations +#: model:process.transition,note:mrp_operations.process_transition_productionstart0 +msgid "The work orders are created on the basis of the production order." +msgstr "作業オーダーは製造オーダーを元にして作成されます。" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:134 +#: code:addons/mrp_operations/mrp_operations.py:470 +#: code:addons/mrp_operations/mrp_operations.py:474 +#: code:addons/mrp_operations/mrp_operations.py:486 +#: code:addons/mrp_operations/mrp_operations.py:489 +#, python-format +msgid "Error!" +msgstr "エラー" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,state:0 +#: selection:mrp.workorder,state:0 +#: selection:mrp_operations.operation.code,start_stop:0 +msgid "Cancelled" +msgstr "キャンセル済" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:486 +#, python-format +msgid "There is no Operation to be cancelled!" +msgstr "キャンセルされる操作がありません。" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:482 +#, python-format +msgid "Operation is Already Cancelled!" +msgstr "操作は既にキャンセル済です。" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_operation_action +#: view:mrp.production.workcenter.line:0 +msgid "Operations" +msgstr "操作" + +#. module: mrp_operations +#: model:ir.model,name:mrp_operations.model_stock_move +msgid "Stock Move" +msgstr "在庫移動" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:479 +#, python-format +msgid "" +"In order to Finish the operation, it must be in the Start or Resume state!" +msgstr "操作を完了するには、開始か再開状態でなければなりません。" + +#. module: mrp_operations +#: field:mrp.workorder,nbr:0 +msgid "# of Lines" +msgstr "行数" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Finish Order" +msgstr "オーダーの完了" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,date_finished:0 +#: field:mrp.production.workcenter.line,date_planned_end:0 +#: field:mrp_operations.operation,date_finished:0 +msgid "End Date" +msgstr "終了日" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +msgid "In Production" +msgstr "製造中" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: field:mrp.production.workcenter.line,state:0 +#: view:mrp.workorder:0 +#: field:mrp.workorder,state:0 +msgid "State" +msgstr "状態" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: selection:mrp.production.workcenter.line,production_state:0 +#: selection:mrp.production.workcenter.line,state:0 +#: selection:mrp.workorder,state:0 +msgid "Draft" +msgstr "ドラフト" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.action_report_mrp_workorder +#: model:ir.model,name:mrp_operations.model_mrp_production_workcenter_line +msgid "Work Order" +msgstr "作業オーダー" + +#. module: mrp_operations +#: model:process.transition,note:mrp_operations.process_transition_workstartoperation0 +msgid "" +"There is 1 work order per work center. The information about the number of " +"cycles or the cycle time." +msgstr "作業センタごとに1つの作業オーダーがあります。サイクルの数あるいはサイクル時間についての情報です。" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Month -1" +msgstr "月 -1" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,uom:0 +msgid "UOM" +msgstr "単位" + +#. module: mrp_operations +#: constraint:stock.move:0 +msgid "You can not move products from or to a location of the type view." +msgstr "タイプビューの場所から、あるいは場所へは製品を動かすことはできません。" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Planned Date" +msgstr "予定日" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,product_qty:0 +msgid "Product Qty" +msgstr "製品数量" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:134 +#, python-format +msgid "Manufacturing order cannot start in state \"%s\"!" +msgstr "製造オーダーは %s 状態であるため開始できません。" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "July" +msgstr "7月" + +#. module: mrp_operations +#: field:mrp_operations.operation.code,name:0 +msgid "Operation Name" +msgstr "操作名" + +#. module: mrp_operations +#: field:mrp_operations.operation.code,start_stop:0 +msgid "Status" +msgstr "状態" + +#. module: mrp_operations +#: model:ir.actions.act_window,help:mrp_operations.mrp_production_wc_action_planning +msgid "" +"To manufacture or assemble products, and use raw materials and finished " +"products you must also handle manufacturing operations. Manufacturing " +"operations are often called Work Orders. The various operations will have " +"different impacts on the costs of manufacturing and planning depending on " +"the available workload." +msgstr "" +"製品を製造または組み立て、原材料を使って製品を完成させるために、製造操作を処理しなくてはなりません。製造操作はよく、作業オーダーと呼ばれます。多種な操作は" +"製造と使用可能な作業負荷に応じた計画のコストに異なる影響を持ちます。" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Planned Year" +msgstr "計画年" + +#. module: mrp_operations +#: field:mrp_operations.operation,order_date:0 +msgid "Order Date" +msgstr "オーダー日" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_draft_action +msgid "Future Work Orders" +msgstr "将来の作業オーダー" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Work orders during last month" +msgstr "先月の作業オーダー" + +#. module: mrp_operations +#: help:mrp.production.workcenter.line,delay:0 +msgid "The elapsed time between operation start and stop in this Work Center" +msgstr "この作業センタでの操作の開始と終了の間の経過時間" + +#. module: mrp_operations +#: model:process.node,name:mrp_operations.process_node_canceloperation0 +msgid "Operation Cancelled" +msgstr "操作はキャンセルされました。" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Pause Work Order" +msgstr "作業オーダーの中断" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "September" +msgstr "9月" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "December" +msgstr "12月" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,month:0 +msgid "Month" +msgstr "月" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +msgid "Canceled" +msgstr "キャンセル済" + +#. module: mrp_operations +#: model:ir.model,name:mrp_operations.model_mrp_operations_operation +msgid "mrp_operations.operation" +msgstr "" + +#. module: mrp_operations +#: model:ir.model,name:mrp_operations.model_mrp_workorder +msgid "Work Order Report" +msgstr "作業オーダーレポート" + +#. module: mrp_operations +#: constraint:mrp.production:0 +msgid "Order quantity cannot be negative or zero!" +msgstr "オーダー数量は負または0にはできません。" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,date_start:0 +#: field:mrp.production.workcenter.line,date_start_date:0 +#: field:mrp_operations.operation,date_start:0 +msgid "Start Date" +msgstr "開始日" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +msgid "Waiting Goods" +msgstr "待機商品" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Work orders made during current year" +msgstr "現在年中になされた作業オーダー" + +#. module: mrp_operations +#: selection:mrp.workorder,state:0 +#: selection:mrp_operations.operation.code,start_stop:0 +msgid "Pause" +msgstr "一時停止" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: selection:mrp.production.workcenter.line,state:0 +#: selection:mrp.workorder,state:0 +msgid "In Progress" +msgstr "進行中" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:470 +#, python-format +msgid "" +"In order to Pause the operation, it must be in the Start or Resume state!" +msgstr "操作を一時停止するには、開始または再開状態でなければなりません。" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:474 +#, python-format +msgid "In order to Resume the operation, it must be in the Pause state!" +msgstr "操作を再開するには、一時停止状態でなければなりません。" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +#: selection:mrp_operations.operation.code,start_stop:0 +msgid "Start" +msgstr "開始" + +#. module: mrp_operations +#: view:mrp_operations.operation:0 +msgid "Calendar View" +msgstr "カレンダービュー" + +#. module: mrp_operations +#: model:process.transition,note:mrp_operations.process_transition_startcanceloperation0 +msgid "" +"When the operation needs to be cancelled, you can do it in the work order " +"form." +msgstr "操作をキャンセルする必要がある時、作業オーダーフォームの中で行うことができます。" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Set Draft" +msgstr "ドラフトにセット" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +#: selection:mrp.production.workcenter.line,state:0 +msgid "Pending" +msgstr "保留中" + +#. module: mrp_operations +#: view:mrp_operations.operation.code:0 +msgid "Production Operation Code" +msgstr "製造操作コード" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:466 +#, python-format +msgid "" +"Operation has already started !Youcan either Pause/Finish/Cancel the " +"operation" +msgstr "操作は既に開始されました。一時停止 / 完了 / キャンセル操作ができます。" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "August" +msgstr "8月" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Started" +msgstr "開始済" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Production started late" +msgstr "製造は遅れて開始" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Planned Day" +msgstr "計画日" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "June" +msgstr "6月" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,total_cycles:0 +msgid "Total Cycles" +msgstr "合計サイクル" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +msgid "Ready to Produce" +msgstr "製造準備完了" + +#. module: mrp_operations +#: field:stock.move,move_dest_id_lines:0 +msgid "Children Moves" +msgstr "子の移動" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_action_planning +msgid "Work Orders Planning" +msgstr "作業オーダー計画" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: field:mrp.workorder,date:0 +msgid "Date" +msgstr "日付" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "November" +msgstr "11月" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Search" +msgstr "検索" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "October" +msgstr "10月" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "January" +msgstr "1月" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Resume Work Order" +msgstr "作業オーダーの再開" + +#. module: mrp_operations +#: model:process.node,note:mrp_operations.process_node_doneoperation0 +msgid "Finish the operation." +msgstr "操作の終了" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:459 +#, python-format +msgid "Operation is not started yet !" +msgstr "操作はまだ開始されていません。" + +#. module: mrp_operations +#: model:process.node,note:mrp_operations.process_node_productionorder0 +msgid "Information from the production order." +msgstr "製造オーダーからの情報" + +#. module: mrp_operations +#: sql_constraint:mrp.production:0 +msgid "Reference must be unique per Company!" +msgstr "参照は会社ごとに固有でなければいけません。" + +#. module: mrp_operations +#: code:addons/mrp_operations/mrp_operations.py:459 +#: code:addons/mrp_operations/mrp_operations.py:466 +#: code:addons/mrp_operations/mrp_operations.py:479 +#: code:addons/mrp_operations/mrp_operations.py:482 +#, python-format +msgid "Sorry!" +msgstr "残念です。" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Current" +msgstr "現在" + +#. module: mrp_operations +#: field:mrp_operations.operation,code_id:0 +#: field:mrp_operations.operation.code,code:0 +msgid "Code" +msgstr "コード" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_confirm_action +msgid "Confirmed Work Orders" +msgstr "確認済作業オーダー" + +#. module: mrp_operations +#: model:ir.actions.act_window,name:mrp_operations.mrp_production_code_action +msgid "Operation Codes" +msgstr "操作コード" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,qty:0 +msgid "Qty" +msgstr "数量" + +#. module: mrp_operations +#: model:process.node,name:mrp_operations.process_node_doneoperation0 +msgid "Operation Done" +msgstr "操作完了" + +#. module: mrp_operations +#: selection:mrp.production.workcenter.line,production_state:0 +#: view:mrp.workorder:0 +#: selection:mrp_operations.operation.code,start_stop:0 +msgid "Done" +msgstr "完了" + +#. module: mrp_operations +#: model:ir.actions.report.xml,name:mrp_operations.report_code_barcode +msgid "Start/Stop Barcode" +msgstr "開始 / 停止バーコード" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Cancel" +msgstr "キャンセル" + +#. module: mrp_operations +#: model:ir.actions.act_window,help:mrp_operations.mrp_production_wc_action_form +msgid "" +"Work Orders is the list of operations to be performed for each manufacturing " +"order. Once you start the first work order of a manufacturing order, the " +"manufacturing order is automatically marked as started. Once you finish the " +"latest operation of a manufacturing order, the MO is automatically done and " +"the related products are produced." +msgstr "" +"作業オーダーは各製造オーダーを実行するための操作のリストです。製造オーダーの最初の作業オーダーを開始すると、製造オーダーは自動的に開始したとマークされます" +"。製造オーダーの最後の操作が終わると、製造オーダーは自動的に完了となり関連製品は製造されます。" + +#. module: mrp_operations +#: model:process.node,name:mrp_operations.process_node_startoperation0 +msgid "Start Operation" +msgstr "操作を開始" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Information" +msgstr "情報" + +#. module: mrp_operations +#: model:ir.actions.report.xml,name:mrp_operations.report_wc_barcode +msgid "Work Centers Barcode" +msgstr "作業センターバーコード" + +#. module: mrp_operations +#: constraint:stock.move:0 +msgid "You must assign a production lot for this product" +msgstr "この製品に製造ロットを割り当てる必要があります。" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Late" +msgstr "遅延" + +#. module: mrp_operations +#: field:mrp.workorder,delay:0 +msgid "Delay" +msgstr "遅延" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: view:mrp.workorder:0 +#: field:mrp.workorder,production_id:0 +#: field:mrp_operations.operation,production_id:0 +msgid "Production" +msgstr "製造" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Search Work Orders" +msgstr "作業オーダーの検索" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +#: view:mrp.workorder:0 +#: field:mrp.workorder,workcenter_id:0 +#: field:mrp_operations.operation,workcenter_id:0 +#: model:process.node,name:mrp_operations.process_node_workorder0 +msgid "Work Center" +msgstr "作業センタ" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Real" +msgstr "実物" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,date_planned:0 +msgid "Scheduled Date" +msgstr "予定日" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,product:0 +#: view:mrp.workorder:0 +#: field:mrp.workorder,product_id:0 +msgid "Product" +msgstr "製品" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,total_hours:0 +msgid "Total Hours" +msgstr "合計時間" + +#. module: mrp_operations +#: help:mrp.production,allow_reorder:0 +msgid "" +"Check this to be able to move independently all production orders, without " +"moving dependent ones." +msgstr "依存する物を動かすことなく、全ての製造オーダー独立して移動させるためにはこれをチェックして下さい。" + +#. module: mrp_operations +#: report:mrp.code.barcode:0 +msgid ")" +msgstr ")" + +#. module: mrp_operations +#: model:ir.ui.menu,name:mrp_operations.menu_report_mrp_workorders_tree +msgid "Work Order Analysis" +msgstr "作業オーダー分析" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +#: selection:mrp.production.workcenter.line,state:0 +#: selection:mrp.workorder,state:0 +msgid "Finished" +msgstr "完了" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Hours by Work Center" +msgstr "作業センター毎の時間" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,delay:0 +msgid "Working Hours" +msgstr "労働時間" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Planned Month" +msgstr "計画月" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "February" +msgstr "2月" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "Work orders made during current month" +msgstr "現在月中になされた作業オーダー" + +#. module: mrp_operations +#: model:process.transition,name:mrp_operations.process_transition_startcanceloperation0 +msgid "Operation cancelled" +msgstr "操作はキャンセルされました。" + +#. module: mrp_operations +#: model:process.node,note:mrp_operations.process_node_startoperation0 +msgid "Start the operation." +msgstr "操作を開始します。" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "April" +msgstr "4月" + +#. module: mrp_operations +#: model:process.transition,name:mrp_operations.process_transition_startdoneoperation0 +msgid "Operation done" +msgstr "操作完了" + +#. module: mrp_operations +#: view:mrp.workorder:0 +msgid "#Line Orders" +msgstr "オーダー行数" + +#. module: mrp_operations +#: view:mrp.production:0 +#: view:mrp.production.workcenter.line:0 +msgid "Start Working" +msgstr "作業開始" + +#. module: mrp_operations +#: model:process.transition,note:mrp_operations.process_transition_startdoneoperation0 +msgid "" +"When the operation is finished, the operator updates the system by finishing " +"the work order." +msgstr "操作が完了した時、操作者は作業オーダーを終えるとシステムを更新します。" + +#. module: mrp_operations +#: selection:mrp.workorder,month:0 +msgid "May" +msgstr "5月" + +#. module: mrp_operations +#: model:process.transition,name:mrp_operations.process_transition_workstartoperation0 +msgid "Details of the work order" +msgstr "作業オーダーの詳細" + +#. module: mrp_operations +#: field:mrp.production.workcenter.line,production_state:0 +msgid "Production State" +msgstr "製造状態" + +#. module: mrp_operations +#: view:mrp.workorder:0 +#: field:mrp.workorder,year:0 +msgid "Year" +msgstr "年" + +#. module: mrp_operations +#: view:mrp.production.workcenter.line:0 +msgid "Duration" +msgstr "期間" + +#. module: mrp_operations +#: constraint:stock.move:0 +msgid "You try to assign a lot which is not from the same product" +msgstr "違う製品のロットを割り当てることはできません。" diff --git a/addons/mrp_operations/mrp_operations_view.xml b/addons/mrp_operations/mrp_operations_view.xml index 53a14fe52da..2ef70a9edf8 100644 --- a/addons/mrp_operations/mrp_operations_view.xml +++ b/addons/mrp_operations/mrp_operations_view.xml @@ -57,10 +57,6 @@ <field name="cycle"/> <field name="hour"/> <field name="state" /> - <button name="button_start_working" string="Start" states="draft" icon="terp-gtk-jump-to-ltr" help="Start Working"/> - <button name="button_resume" string="Resume" states="pause" icon="gtk-media-pause" help="Resume Work Order"/> - <button name="button_pause" string="Pending" states="startworking" icon="gtk-media-pause" help="Pause Work Order"/> - <button name="button_done" string="Finished" states="startworking" icon="terp-check" help="Finish Order"/> </tree> </field> </record> @@ -72,18 +68,15 @@ <field name="inherit_id" eval="False"/> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="button_start_working" string="Start" states="draft"/> <button name="button_resume" string="Resume" states="pause"/> <button name="button_done" string="Finished" states="startworking"/> <button name="button_pause" string="Pending" states="startworking"/> <button name="button_draft" string="Set Draft" states="cancel"/> <button name="button_cancel" string="Cancel" states="draft,startworking"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,startworking"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,startworking"/> + </header> <sheet string="Work Orders" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field colspan="4" name="name" select="1"/> @@ -121,7 +114,9 @@ </page> </notebook> </sheet> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <div class="oe_form_bottom"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </div> </form> </field> </record> diff --git a/addons/mrp_repair/i18n/ja.po b/addons/mrp_repair/i18n/ja.po new file mode 100644 index 00000000000..c27356dd06e --- /dev/null +++ b/addons/mrp_repair/i18n/ja.po @@ -0,0 +1,795 @@ +# Japanese translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-08 02:54+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-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Fees Line" +msgstr "料金行" + +#. module: mrp_repair +#: help:mrp.repair,state:0 +msgid "" +" * The 'Draft' state is used when a user is encoding a new and unconfirmed " +"repair order. \n" +"* The 'Confirmed' state is used when a user confirms the repair order. " +" \n" +"* The 'Ready to Repair' state is used to start to repairing, user can start " +"repairing only after repair order is confirmed. \n" +"* The 'To be Invoiced' state is used to generate the invoice before or after " +"repairing done. \n" +"* The 'Done' state is set when repairing is completed. \n" +"* The 'Cancelled' state is used when user cancel repair order." +msgstr "" +" ・ ドラフト状態は、ユーザが未確認の修理オーダーを新たにエンコードした時に使われます。\n" +"・ 確認済状態は、ユーザが修理オーダーを確認した時に使われます。\n" +"・ 修理準備完了状態は、修理を開始するために、修理オーダー確認後、修理を開始できる時に使われます。\n" +"・ 請求状態は、修理の完了前または完了後で請求書を生成した時に使われます。\n" +"・ 完了状態は、修理が終了した時に設定されます。\n" +"・ キャンセル済状態は、ユーザが修理オーダーをキャンセルした時に使われます。" + +#. module: mrp_repair +#: field:mrp.repair.line,move_id:0 +msgid "Inventory Move" +msgstr "在庫移動" + +#. module: mrp_repair +#: model:ir.actions.act_window,help:mrp_repair.action_repair_order_tree +msgid "" +"Repair orders allow you to organize your product repairs. In a repair order, " +"you can detail the components you remove, add or replace and record the time " +"you spent on the different operations. The repair order uses the warranty " +"date on the production lot in order to know if whether the repair should be " +"invoiced to the customer or not." +msgstr "" +"修理オーダーは製品の修理を手配します。修理オーダーでは、取除いた、追加した、交換した部品を詳述でき、異なる操作で費やした時間を記録できます。修理オーダーは" +"、その修理を顧客に請求すべきであるかどうかを知るために製造ロットの保証日付を使用します。" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Group By..." +msgstr "グループ化…" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Recreate Invoice" +msgstr "請求書再作成" + +#. module: mrp_repair +#: help:mrp.repair,deliver_bool:0 +msgid "" +"Check this box if you want to manage the delivery once the product is " +"repaired. If cheked, it will create a picking with selected product. Note " +"that you can select the locations in the Info tab, if you have the extended " +"view." +msgstr "" +"製品が修理された後の配送を管理したい場合、このボックスをチェックします。チェックすると、製品の選択とともに集荷を作成します。拡張ビューをしている場合は、情" +"報タブで場所を指定することができます。" + +#. module: mrp_repair +#: model:ir.actions.act_window,name:mrp_repair.action_cancel_repair +#: view:mrp.repair.cancel:0 +msgid "Cancel Repair Order" +msgstr "修理オーダーのキャンセル" + +#. module: mrp_repair +#: field:mrp.repair.fee,to_invoice:0 +#: field:mrp.repair.line,to_invoice:0 +msgid "To Invoice" +msgstr "請求対象" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Printing Date" +msgstr "印刷日" + +#. module: mrp_repair +#: field:mrp.repair.make_invoice,group:0 +msgid "Group by partner invoice address" +msgstr "パートナの請求書住所によるグループ" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:435 +#, python-format +msgid "No product defined on Fees!" +msgstr "料金が定義されていない製品です。" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,company_id:0 +msgid "Company" +msgstr "会社" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Set to Draft" +msgstr "ドラフトに設定" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +msgid "Invoice Exception" +msgstr "請求書の例外" + +#. module: mrp_repair +#: field:mrp.repair,address_id:0 +msgid "Delivery Address" +msgstr "配達住所" + +#. module: mrp_repair +#: model:ir.actions.act_window,name:mrp_repair.act_mrp_repair_invoice +#: model:ir.model,name:mrp_repair.model_mrp_repair_make_invoice +#: view:mrp.repair:0 +msgid "Make Invoice" +msgstr "請求書作成" + +#. module: mrp_repair +#: field:mrp.repair.fee,price_subtotal:0 +#: field:mrp.repair.line,price_subtotal:0 +msgid "Subtotal" +msgstr "小計" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Invoice address :" +msgstr "請求書住所:" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,guarantee_limit:0 +msgid "Guarantee limit" +msgstr "保証制限" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Notes" +msgstr "注記" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,amount_tax:0 +#: field:mrp.repair.fee,tax_id:0 +#: field:mrp.repair.line,tax_id:0 +msgid "Taxes" +msgstr "税金" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Net Total :" +msgstr "合計:" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:435 +#, python-format +msgid "Warning !" +msgstr "警告" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "VAT" +msgstr "消費税" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Operations" +msgstr "操作" + +#. module: mrp_repair +#: field:mrp.repair,move_id:0 +msgid "Move" +msgstr "移動" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:370 +#, python-format +msgid "You have to select a Partner Invoice Address in the repair form !" +msgstr "修理フォームではパートなの請求書住所を選択する必要があります。" + +#. module: mrp_repair +#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_tree +#: model:ir.ui.menu,name:mrp_repair.menu_repair_order +msgid "Repair Orders" +msgstr "修理オーダー" + +#. module: mrp_repair +#: model:ir.actions.report.xml,name:mrp_repair.report_mrp_repair +msgid "Quotation / Order" +msgstr "見積 / オーダー" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:337 +#, python-format +msgid "Warning" +msgstr "警告" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Extra Info" +msgstr "追加情報" + +#. module: mrp_repair +#: field:mrp.repair.fee,repair_id:0 +#: field:mrp.repair.line,repair_id:0 +msgid "Repair Order Reference" +msgstr "修理オーダー参照" + +#. module: mrp_repair +#: selection:mrp.repair.line,state:0 +msgid "Draft" +msgstr "ドラフト" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:384 +#, python-format +msgid "No account defined for partner \"%s\"." +msgstr "パートナ %s にアカウントが定義されていません。" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: selection:mrp.repair,state:0 +#: selection:mrp.repair.line,state:0 +msgid "Confirmed" +msgstr "確認済" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Repairs order" +msgstr "修理オーダー" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Repair Order N° :" +msgstr "修理オーダー番号:" + +#. module: mrp_repair +#: field:mrp.repair,prodlot_id:0 +#: field:mrp.repair.line,prodlot_id:0 +#: report:repair.order:0 +msgid "Lot Number" +msgstr "ロット番号" + +#. module: mrp_repair +#: field:mrp.repair,fees_lines:0 +msgid "Fees Lines" +msgstr "料金行" + +#. module: mrp_repair +#: field:mrp.repair.line,type:0 +msgid "Type" +msgstr "タイプ" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Fees Line(s)" +msgstr "料金行" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +msgid "To be Invoiced" +msgstr "請求" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Shipping address :" +msgstr "送付先:" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:334 +#: code:addons/mrp_repair/mrp_repair.py:384 +#: code:addons/mrp_repair/mrp_repair.py:413 +#: code:addons/mrp_repair/mrp_repair.py:442 +#, python-format +msgid "Error !" +msgstr "エラー" + +#. module: mrp_repair +#: field:mrp.repair.line,product_uom_qty:0 +msgid "Quantity (UoM)" +msgstr "数量" + +#. module: mrp_repair +#: help:mrp.repair.line,state:0 +msgid "" +" * The 'Draft' state is set automatically as draft when repair order in " +"draft state. \n" +"* The 'Confirmed' state is set automatically as confirm when repair order in " +"confirm state. \n" +"* The 'Done' state is set automatically when repair order is completed. " +" \n" +"* The 'Cancelled' state is set automatically when user cancel repair order." +msgstr "" +" ・ ドラフト状態は、修理オーダーがドラフト状態の時に自動的に設定されます。\n" +"・ 確認済状態は、修理オーダーが確認状態の時に自動的に設定されます。\n" +"・ 完了状態は、修理オーダーが完了した時に自動的に設定されます。\n" +"・ キャンセル済状態は、ユーザが修理オーダーをキャンセルした時に設定されます。" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Total :" +msgstr "合計:" + +#. module: mrp_repair +#: view:mrp.repair.cancel:0 +msgid "" +"This operation will cancel the Repair process, but will not cancel it's " +"Invoice. Do you want to continue?" +msgstr "この操作は修理処理でキャンセルされます。しかし、その請求書はキャンセルできません。続行しますか?" + +#. module: mrp_repair +#: field:mrp.repair,pricelist_id:0 +msgid "Pricelist" +msgstr "価格リスト" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,quotation_notes:0 +msgid "Quotation Notes" +msgstr "見積注記" + +#. module: mrp_repair +#: code:addons/mrp_repair/wizard/cancel_repair.py:49 +#, python-format +msgid "Warning!" +msgstr "警告" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Search Reair Orders" +msgstr "修理オーダー検索" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "(Add)" +msgstr "(追加)" + +#. module: mrp_repair +#: model:ir.model,name:mrp_repair.model_mrp_repair_line +#: view:mrp.repair:0 +msgid "Repair Line" +msgstr "修理行" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,partner_id:0 +msgid "Partner" +msgstr "パートナ" + +#. module: mrp_repair +#: field:mrp.repair,invoice_method:0 +msgid "Invoice Method" +msgstr "請求の方法" + +#. module: mrp_repair +#: field:mrp.repair,repaired:0 +msgid "Repaired" +msgstr "修理済" + +#. module: mrp_repair +#: field:mrp.repair.fee,invoice_line_id:0 +#: field:mrp.repair.line,invoice_line_id:0 +msgid "Invoice Line" +msgstr "請求書行" + +#. module: mrp_repair +#: selection:mrp.repair.line,state:0 +msgid "Canceled" +msgstr "キャンセル済" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:337 +#, python-format +msgid "Production lot is required for opration line with product '%s'" +msgstr "製造ロットは製品 %s が操作ラインのために必要です。" + +#. module: mrp_repair +#: selection:mrp.repair,invoice_method:0 +msgid "Before Repair" +msgstr "修理前" + +#. module: mrp_repair +#: field:mrp.repair,location_id:0 +msgid "Current Location" +msgstr "現在の場所" + +#. module: mrp_repair +#: view:mrp.repair.cancel:0 +msgid "Yes" +msgstr "" + +#. module: mrp_repair +#: field:mrp.repair,invoiced:0 +#: field:mrp.repair.fee,invoiced:0 +#: field:mrp.repair.line,invoiced:0 +msgid "Invoiced" +msgstr "請求済" + +#. module: mrp_repair +#: view:mrp.repair.cancel:0 +msgid "No" +msgstr "" + +#. module: mrp_repair +#: view:mrp.repair.make_invoice:0 +msgid "Create invoices" +msgstr "請求書作成" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "(Remove)" +msgstr "(取除く)" + +#. module: mrp_repair +#: selection:mrp.repair.line,type:0 +msgid "Add" +msgstr "追加" + +#. module: mrp_repair +#: view:mrp.repair.make_invoice:0 +msgid "Do you really want to create the invoice(s)?" +msgstr "本当に請求書を作成しますか?" + +#. module: mrp_repair +#: field:mrp.repair,name:0 +msgid "Repair Reference" +msgstr "修理参照" + +#. module: mrp_repair +#: model:ir.model,name:mrp_repair.model_mrp_repair +msgid "Repair Order" +msgstr "修理オーダー" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +msgid "Under Repair" +msgstr "修理中" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Ready To Repair" +msgstr "修理準備完了" + +#. module: mrp_repair +#: field:mrp.repair,amount_untaxed:0 +msgid "Untaxed Amount" +msgstr "非課税金額" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Guarantee Limit" +msgstr "保証制限" + +#. module: mrp_repair +#: field:mrp.repair,default_address_id:0 +msgid "unknown" +msgstr "不明" + +#. module: mrp_repair +#: field:mrp.repair,product_id:0 +#: report:repair.order:0 +msgid "Product to Repair" +msgstr "修理製品" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "N° :" +msgstr "番号:" + +#. module: mrp_repair +#: help:mrp.repair,pricelist_id:0 +msgid "The pricelist comes from the selected partner, by default." +msgstr "価格リストはデフォルトで選択したパートナから来ます。" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Date" +msgstr "日付" + +#. module: mrp_repair +#: model:ir.model,name:mrp_repair.model_mrp_repair_fee +msgid "Repair Fees Line" +msgstr "修理費行" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:334 +#, python-format +msgid "You cannot confirm a repair order which has no line." +msgstr "修理行には明細行がないため確認できません。" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +msgid "Quotation" +msgstr "見積" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Compute" +msgstr "計算" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Confirm Repair" +msgstr "修理の確認" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Repair Quotation" +msgstr "修理見積" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "End Repair" +msgstr "修理終了" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:413 +#: code:addons/mrp_repair/mrp_repair.py:442 +#, python-format +msgid "No account defined for product \"%s\"." +msgstr "製品 %s のアカウントが定義されていません。" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Quotations" +msgstr "見積" + +#. module: mrp_repair +#: field:mrp.repair.fee,product_uom_qty:0 +#: report:repair.order:0 +msgid "Quantity" +msgstr "数量" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Start Repair" +msgstr "修理開始" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,state:0 +#: field:mrp.repair.line,state:0 +msgid "State" +msgstr "状態" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Qty" +msgstr "数量" + +#. module: mrp_repair +#: field:mrp.repair.fee,price_unit:0 +#: field:mrp.repair.line,price_unit:0 +#: report:repair.order:0 +msgid "Unit Price" +msgstr "単価" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +#: selection:mrp.repair.line,state:0 +msgid "Done" +msgstr "完了" + +#. module: mrp_repair +#: help:mrp.repair,guarantee_limit:0 +msgid "" +"The guarantee limit is computed as: last move date + warranty defined on " +"selected product. If the current date is below the guarantee limit, each " +"operation and fee you will add will be set as 'not to invoiced' by default. " +"Note that you can change manually afterwards." +msgstr "" +"保証制限は次のように計算されます:最終移動日+選択製品で定義された保証期間。現在日付が保証期限内であれば、各操作と料金にはデフォルトで請求外としてセットさ" +"れます。その後、手作業で変更ができます。" + +#. module: mrp_repair +#: field:mrp.repair,invoice_id:0 +msgid "Invoice" +msgstr "請求書" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Fees" +msgstr "費用" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +#: view:mrp.repair.make_invoice:0 +msgid "Cancel" +msgstr "キャンセル" + +#. module: mrp_repair +#: field:mrp.repair.line,location_dest_id:0 +msgid "Dest. Location" +msgstr "宛先場所" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Operation Line(s)" +msgstr "操作行" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "History" +msgstr "履歴" + +#. module: mrp_repair +#: field:mrp.repair,location_dest_id:0 +msgid "Delivery Location" +msgstr "配達場所" + +#. module: mrp_repair +#: help:mrp.repair,invoice_method:0 +msgid "" +"This field allow you to change the workflow of the repair order. If value " +"selected is different from 'No Invoice', it also allow you to select the " +"pricelist and invoicing address." +msgstr "" +"この項目は修理オーダーのワークフローを変更することを許します。請求書なしと異なる値が選択された場合、価格リストと請求書住所の選択ができます。" + +#. module: mrp_repair +#: view:mrp.repair.make_invoice:0 +msgid "Create Invoice" +msgstr "請求書作成" + +#. module: mrp_repair +#: field:mrp.repair.fee,name:0 +#: field:mrp.repair.line,name:0 +#: report:repair.order:0 +msgid "Description" +msgstr "説明" + +#. module: mrp_repair +#: field:mrp.repair,operations:0 +msgid "Operation Lines" +msgstr "操作行" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "invoiced" +msgstr "請求済" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair.fee,product_id:0 +#: field:mrp.repair.line,product_id:0 +msgid "Product" +msgstr "製品" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Invoice Corrected" +msgstr "修正された請求書" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Price" +msgstr "価格" + +#. module: mrp_repair +#: field:mrp.repair,deliver_bool:0 +msgid "Deliver" +msgstr "配達" + +#. module: mrp_repair +#: view:mrp.repair:0 +#: field:mrp.repair,internal_notes:0 +msgid "Internal Notes" +msgstr "内部注記" + +#. module: mrp_repair +#: report:repair.order:0 +msgid "Taxes:" +msgstr "税金:" + +#. module: mrp_repair +#: field:mrp.repair,picking_id:0 +msgid "Picking" +msgstr "集荷" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Untaxed amount" +msgstr "税抜金額" + +#. module: mrp_repair +#: code:addons/mrp_repair/wizard/cancel_repair.py:41 +#, python-format +msgid "Active ID is not Found" +msgstr "アクティブIDが見つかりません。" + +#. module: mrp_repair +#: code:addons/mrp_repair/wizard/cancel_repair.py:49 +#, python-format +msgid "Repair order is not invoiced." +msgstr "修理オーダーは請求されていません。" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Total amount" +msgstr "合計金額" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "UoM" +msgstr "単位" + +#. module: mrp_repair +#: selection:mrp.repair.line,type:0 +msgid "Remove" +msgstr "取除く" + +#. module: mrp_repair +#: field:mrp.repair.fee,product_uom:0 +#: field:mrp.repair.line,product_uom:0 +msgid "Product UoM" +msgstr "製品単位" + +#. module: mrp_repair +#: field:mrp.repair,partner_invoice_id:0 +msgid "Invoicing Address" +msgstr "請求住所" + +#. module: mrp_repair +#: selection:mrp.repair,invoice_method:0 +msgid "After Repair" +msgstr "修理後" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "Invoicing" +msgstr "請求中" + +#. module: mrp_repair +#: field:mrp.repair.line,location_id:0 +msgid "Source Location" +msgstr "元の場所" + +#. module: mrp_repair +#: model:ir.model,name:mrp_repair.model_mrp_repair_cancel +#: view:mrp.repair:0 +msgid "Cancel Repair" +msgstr "修理のキャンセル" + +#. module: mrp_repair +#: selection:mrp.repair,invoice_method:0 +msgid "No Invoice" +msgstr "請求外" + +#. module: mrp_repair +#: view:mrp.repair:0 +msgid "States" +msgstr "状態" + +#. module: mrp_repair +#: help:mrp.repair,partner_id:0 +msgid "" +"This field allow you to choose the parner that will be invoiced and delivered" +msgstr "この項目は請求して配信されるパートナを選択することを許します。" + +#. module: mrp_repair +#: field:mrp.repair,amount_total:0 +msgid "Total" +msgstr "合計" + +#. module: mrp_repair +#: selection:mrp.repair,state:0 +msgid "Ready to Repair" +msgstr "修理準備完了" + +#. module: mrp_repair +#: code:addons/mrp_repair/mrp_repair.py:370 +#, python-format +msgid "No partner !" +msgstr "パートナがありません。" diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py index 7d78fb46490..6f14ba22bea 100644 --- a/addons/mrp_repair/mrp_repair.py +++ b/addons/mrp_repair/mrp_repair.py @@ -230,10 +230,9 @@ class mrp_repair(osv.osv): data['value']['location_id'] = move.location_dest_id.id data['value']['location_dest_id'] = move.location_dest_id.id if move.partner_id: - data['value']['partner_id'] = move.partner_id and move.partner_id.id + data['value']['partner_id'] = move.partner_id.id else: data['value']['partner_id'] = False - data['value']['partner_id'] = move.partner_id and move.partner_id.id d = self.onchange_partner_id(cr, uid, ids, data['value']['partner_id'], data['value']['partner_id']) data['value'].update(d['value']) return data diff --git a/addons/mrp_repair/mrp_repair_view.xml b/addons/mrp_repair/mrp_repair_view.xml index ff262329ce2..21e3dd5aa25 100644 --- a/addons/mrp_repair/mrp_repair_view.xml +++ b/addons/mrp_repair/mrp_repair_view.xml @@ -28,7 +28,7 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="repair_confirm" states="draft" string="Confirm Repair"/> <button name="repair_ready" states="confirmed" string="Start Repair"/> <button name="action_repair_start" states="ready" string="Start Repair"/> @@ -40,11 +40,8 @@ <button name="%(action_cancel_repair)d" states="confirmed,2binvoiced,ready,under_repair" string="Cancel Repair" type="action"/> <button name="%(action_cancel_repair)d" states="invoice_except" string="Cancel Repair" type="action"/> <button name="cancel" states="draft" string="Cancel Repair"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirmed,ready" /> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,confirmed,ready" /> + </header> <sheet string="Repairs order" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="name"/> diff --git a/addons/mrp_subproduct/i18n/ja.po b/addons/mrp_subproduct/i18n/ja.po new file mode 100644 index 00000000000..369cb9ec43d --- /dev/null +++ b/addons/mrp_subproduct/i18n/ja.po @@ -0,0 +1,128 @@ +# Japanese translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 06:38+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-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: mrp_subproduct +#: field:mrp.subproduct,product_id:0 +msgid "Product" +msgstr "製品" + +#. module: mrp_subproduct +#: selection:mrp.subproduct,subproduct_type:0 +msgid "Fixed" +msgstr "固定" + +#. module: mrp_subproduct +#: sql_constraint:mrp.bom:0 +msgid "" +"All product quantities must be greater than 0.\n" +"You should install the mrp_subproduct module if you want to manage extra " +"products on BoMs !" +msgstr "" +"全製品の数量は0より大きい必要があります。\n" +"部品表上で追加の製品を管理したい場合は、mrp_subproductモジュールをインストールする必要があります。" + +#. module: mrp_subproduct +#: view:mrp.bom:0 +msgid "sub products" +msgstr "サブ製品" + +#. module: mrp_subproduct +#: model:ir.model,name:mrp_subproduct.model_mrp_production +msgid "Manufacturing Order" +msgstr "製造オーダー" + +#. module: mrp_subproduct +#: constraint:mrp.bom:0 +msgid "BoM line product should not be same as BoM product." +msgstr "部品表のライン製品は部品表製品と同じではいけません。" + +#. module: mrp_subproduct +#: view:mrp.bom:0 +msgid "Sub Products" +msgstr "サブ製品" + +#. module: mrp_subproduct +#: field:mrp.subproduct,subproduct_type:0 +msgid "Quantity Type" +msgstr "数量タイプ" + +#. module: mrp_subproduct +#: model:ir.model,name:mrp_subproduct.model_mrp_bom +msgid "Bill of Material" +msgstr "部品表" + +#. module: mrp_subproduct +#: field:mrp.subproduct,product_qty:0 +msgid "Product Qty" +msgstr "製品数量" + +#. module: mrp_subproduct +#: field:mrp.subproduct,product_uom:0 +msgid "Product UOM" +msgstr "製品単位" + +#. module: mrp_subproduct +#: field:mrp.subproduct,bom_id:0 +msgid "BoM" +msgstr "部品表" + +#. module: mrp_subproduct +#: sql_constraint:mrp.production:0 +msgid "Reference must be unique per Company!" +msgstr "参照は会社ごとに固有でなければいけません。" + +#. module: mrp_subproduct +#: field:mrp.bom,sub_products:0 +msgid "sub_products" +msgstr "サブ製品" + +#. module: mrp_subproduct +#: selection:mrp.subproduct,subproduct_type:0 +msgid "Variable" +msgstr "変数" + +#. module: mrp_subproduct +#: model:ir.model,name:mrp_subproduct.model_mrp_subproduct +msgid "Sub Product" +msgstr "サブ製品" + +#. module: mrp_subproduct +#: constraint:mrp.production:0 +msgid "Order quantity cannot be negative or zero!" +msgstr "オーダー数量は負または0にはできません。" + +#. module: mrp_subproduct +#: help:mrp.subproduct,subproduct_type:0 +msgid "" +"Define how the quantity of subproducts will be set on the production orders " +"using this BoM. 'Fixed' depicts a situation where the quantity of created " +"subproduct is always equal to the quantity set on the BoM, regardless of how " +"many are created in the production order. By opposition, 'Variable' means " +"that the quantity will be computed as '(quantity of subproduct set on the " +"BoM / quantity of manufactured product set on the BoM * quantity of " +"manufactured product in the production order.)'" +msgstr "" +"この部品表を使った生産オーダー上にセットされるサブ製品の数量をどのくらいにするかを定義して下さい。固定は、生産オーダーによってどのくらい作成されるのかに関" +"係なく、作成されるサブ製品の数量は部品表上にセットする数量といつも一致します。反対に可変は、その数量は(部品表上のサブ製品設定の数量 / " +"部品表情の製造製品設定の数量 * 生産オーダーの製造製品の数量)として計算されます。" + +#. module: mrp_subproduct +#: constraint:mrp.bom:0 +msgid "Error ! You cannot create recursive BoM." +msgstr "エラー。再帰的な部品表を作ることはできません。" diff --git a/addons/multi_company/i18n/ja.po b/addons/multi_company/i18n/ja.po new file mode 100644 index 00000000000..9c792f95913 --- /dev/null +++ b/addons/multi_company/i18n/ja.po @@ -0,0 +1,97 @@ +# Japanese translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 06:13+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-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: multi_company +#: model:res.company,overdue_msg:multi_company.res_company_odoo +#: model:res.company,overdue_msg:multi_company.res_company_oerp_be +#: model:res.company,overdue_msg:multi_company.res_company_oerp_editor +#: model:res.company,overdue_msg:multi_company.res_company_oerp_in +#: model:res.company,overdue_msg:multi_company.res_company_oerp_us +msgid "" +"\n" +"Date: %(date)s\n" +"\n" +"Dear %(partner_name)s,\n" +"\n" +"Please find in attachment a reminder of all your unpaid invoices, for a " +"total amount due of:\n" +"\n" +"%(followup_amount).2f %(company_currency)s\n" +"\n" +"Thanks,\n" +"--\n" +"%(user_signature)s\n" +"%(company_name)s\n" +" " +msgstr "" +"\n" +"日付:%(date)s\n" +"\n" +"%(partner_name)s 様、\n" +"\n" +"どうぞ、添付いたしました御社のお支払をいただいていない請求書をご確認下さい。合計金額は次のとおりです:\n" +"\n" +"%(followup_amount).2f %(company_currency)s\n" +"\n" +"それではよろしくお願いいたします。\n" +"--\n" +"%(user_signature)s\n" +"%(company_name)s\n" +" " + +#. module: multi_company +#: model:product.category,name:multi_company.Odoo1 +msgid "Odoo Offers" +msgstr "Odoo提案" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Returning" +msgstr "返品" + +#. module: multi_company +#: model:ir.ui.menu,name:multi_company.menu_custom_multicompany +msgid "Multi-Companies" +msgstr "多角化会社" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Multi Company" +msgstr "多角化会社" + +#. module: multi_company +#: model:ir.actions.act_window,name:multi_company.action_inventory_form +#: model:ir.ui.menu,name:multi_company.menu_action_inventory_form +msgid "Default Company per Object" +msgstr "オブジェクト毎のデフォルト会社" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Matching" +msgstr "マッチング" + +#. module: multi_company +#: view:multi_company.default:0 +msgid "Condition" +msgstr "条件" + +#. module: multi_company +#: model:product.template,name:multi_company.product_product_odoo1_product_template +msgid "Odoo Offer" +msgstr "Odoo提案" diff --git a/addons/plugin/i18n/sv.po b/addons/plugin/i18n/sv.po new file mode 100644 index 00000000000..6d33164d1c4 --- /dev/null +++ b/addons/plugin/i18n/sv.po @@ -0,0 +1,23 @@ +# 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:36+0000\n" +"PO-Revision-Date: 2012-06-04 15:14+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-05 04:54+0000\n" +"X-Generator: Launchpad (build 15353)\n" + +#. module: plugin +#: model:ir.model,name:plugin.model_plugin_handler +msgid "plugin.handler" +msgstr "plugin.handler" diff --git a/addons/plugin_thunderbird/i18n/ja.po b/addons/plugin_thunderbird/i18n/ja.po new file mode 100644 index 00000000000..b929d9c05e4 --- /dev/null +++ b/addons/plugin_thunderbird/i18n/ja.po @@ -0,0 +1,100 @@ +# Japanese 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-09 00:36+0000\n" +"PO-Revision-Date: 2012-05-31 22:07+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-01 05:33+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: plugin_thunderbird +#: field:plugin_thunderbird.installer,pdf_file:0 +msgid "Installation Manual" +msgstr "インストールマニュアル" + +#. module: plugin_thunderbird +#: field:plugin_thunderbird.installer,description:0 +msgid "Description" +msgstr "説明" + +#. module: plugin_thunderbird +#: view:plugin_thunderbird.installer:0 +msgid "title" +msgstr "タイトル" + +#. module: plugin_thunderbird +#: model:ir.model,name:plugin_thunderbird.model_plugin_thunderbird_installer +msgid "plugin_thunderbird.installer" +msgstr "" + +#. module: plugin_thunderbird +#: field:plugin_thunderbird.installer,config_logo:0 +msgid "Image" +msgstr "画像" + +#. module: plugin_thunderbird +#: field:plugin_thunderbird.installer,plugin_file:0 +#: field:plugin_thunderbird.installer,thunderbird:0 +msgid "Thunderbird Plug-in" +msgstr "Thunderbirdプラグイン" + +#. 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 " +"attach it to any existing one in OpenERP or create a new one." +msgstr "" +"このプラグインはあなたのEメールをOpenERPのドキュメントにリンクさせることができます。OpenERPの既存あるいは新しく作成したドキュメントを添付で" +"きます。" + +#. module: plugin_thunderbird +#: help:plugin_thunderbird.installer,thunderbird:0 +msgid "" +"Allows you to select an object that you would like to add to your email and " +"its attachments." +msgstr "あなたがEメールに追加したい、添付したいオブジェクトを選択するのが許されます。" + +#. module: plugin_thunderbird +#: help:plugin_thunderbird.installer,pdf_file:0 +msgid "The documentation file :- how to install Thunderbird Plug-in." +msgstr "ドキュメントファイル:Thunderbirdプラグインのインストール方法" + +#. module: plugin_thunderbird +#: view:plugin_thunderbird.installer:0 +msgid "_Close" +msgstr "閉じる" + +#. module: plugin_thunderbird +#: view:plugin_thunderbird.installer:0 +msgid "Installation and Configuration Steps" +msgstr "インストールと設定の手順" + +#. module: plugin_thunderbird +#: field:plugin_thunderbird.installer,name:0 +#: field:plugin_thunderbird.installer,pdf_name:0 +msgid "File name" +msgstr "ファイル名" + +#. module: plugin_thunderbird +#: help:plugin_thunderbird.installer,plugin_file:0 +msgid "" +"Thunderbird plug-in file. Save as this file and install this plug-in in " +"thunderbird." +msgstr "Thunderbirdプラグインファイル。このファイルを保存し、Thunderbirdの中にこのプラグインをインストールして下さい。" + +#. module: plugin_thunderbird +#: model:ir.actions.act_window,name:plugin_thunderbird.action_thunderbird_installer +#: model:ir.ui.menu,name:plugin_thunderbird.menu_base_config_plugins_thunderbird +#: view:plugin_thunderbird.installer:0 +msgid "Install Thunderbird Plug-In" +msgstr "Thunderbirdプラグインのインストール" diff --git a/addons/point_of_sale/i18n/ja.po b/addons/point_of_sale/i18n/ja.po new file mode 100644 index 00000000000..c4c3eca6b27 --- /dev/null +++ b/addons/point_of_sale/i18n/ja.po @@ -0,0 +1,2730 @@ +# Japanese 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 01:37+0100\n" +"PO-Revision-Date: 2012-06-08 02:57+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-08 04:39+0000\n" +"X-Generator: Launchpad (build 15376)\n" + +#. module: point_of_sale +#: field:report.transaction.pos,product_nb:0 +msgid "Product Nb." +msgstr "商品番号" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_today +msgid "Sales by day" +msgstr "日毎売上" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_open_statement.py:49 +#, python-format +msgid "" +"You must define which payment method must be available through the point of " +"sale by reusing existing bank and cash through \"Accounting > Configuration " +"> Financial Accounting > Journals\". Select a journal and check the field " +"\"PoS Payment Method\" from the \"Point of Sale\" tab. You can also create " +"new payment methods directly from menu \"PoS Backend > Configuration > " +"Payment Methods\"." +msgstr "" +"会計 > 設定 > 財務会計 > 仕訳帳 " +"から既存の銀行と現金を再利用することによって、POSを通して利用可能にしなければならない支払方法を定義する必要があります。仕訳帳を選択し、POSタブからP" +"OS支払方法項目をチェックして下さい。POS後方事務 > 設定 > 支払方法メニューから直接新しい支払方法を作成することもできます。" + +#. module: point_of_sale +#: view:pos.order:0 view:report.pos.order:0 +msgid "Today" +msgstr "本日" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.plain_water +msgid "Plain Water" +msgstr "一般の水" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Year from Creation date of cash register" +msgstr "キャッシュレジスタの作成日の年" + +#. module: point_of_sale +#: view:pos.confirm:0 +msgid "Post All Orders" +msgstr "全ての注文を記帳" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_2l_product_template +msgid "Spa Reine 2L" +msgstr "SPA REINE 2L" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_box_out +msgid "Pos Box Out" +msgstr "POSボックスアウト" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_cash_register_all +#: model:ir.ui.menu,name:point_of_sale.menu_report_cash_register_all +msgid "Register Analysis" +msgstr "レジスター分析" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_lines_detail +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Details of Sales" +msgstr "売上の詳細" + +#. module: point_of_sale +#: view:report.cash.register:0 field:report.cash.register,day:0 +#: view:report.pos.order:0 field:report.pos.order,day:0 +msgid "Day" +msgstr "日" + +#. module: point_of_sale +#: view:pos.make.payment:0 +msgid "Add payment :" +msgstr "支払の追加:" + +#. module: point_of_sale +#: field:pos.box.out,name:0 +msgid "Description / Reason" +msgstr "説明 / 理由" + +#. module: point_of_sale +#: field:report.sales.by.margin.pos,product_name:0 +#: field:report.sales.by.margin.pos.month,product_name:0 +msgid "Product Name" +msgstr "商品名" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Month from Creation date of cash register" +msgstr "キャッシュレジスタの作成日の月" + +#. module: point_of_sale +#: report:account.statement:0 field:pos.box.entries,amount:0 +#: field:pos.box.out,amount:0 report:pos.invoice:0 +#: field:pos.make.payment,amount:0 report:pos.user.product:0 +#: field:report.transaction.pos,amount:0 +msgid "Amount" +msgstr "金額" + +#. module: point_of_sale +#: constraint:account.journal:0 +msgid "" +"Configuration error! The currency chosen should be shared by the default " +"accounts too." +msgstr "設定エラー。選択された通貨はデフォルトアカウントによっても共有されなければなりません。" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.pos_category_action +#: model:ir.ui.menu,name:point_of_sale.menu_pos_category view:pos.category:0 +msgid "PoS Categories" +msgstr "POS分類" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_box_out +#: model:ir.ui.menu,name:point_of_sale.menu_wizard_enter_jrnl2 +msgid "Take Money Out" +msgstr "現金取出" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "VAT" +msgstr "消費税" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Origin" +msgstr "起点" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Tax" +msgstr "税金" + +#. module: point_of_sale +#: report:pos.user.product:0 +msgid "Starting Date" +msgstr "開始日" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_box_entries.py:46 +#, python-format +msgid "" +"You do not have any open cash register. You must create a payment method or " +"open a cash register." +msgstr "開いているキャッシュレジスタを持っていません。支払方法を作成するか、キャッシュレジスタを開く必要があります。" + +#. module: point_of_sale +#: report:account.statement:0 field:report.pos.order,partner_id:0 +msgid "Partner" +msgstr "パートナ" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Total of the day" +msgstr "1日の合計" + +#. module: point_of_sale +#: view:report.pos.order:0 field:report.pos.order,average_price:0 +msgid "Average Price" +msgstr "平均価格" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "Disc. (%)" +msgstr "割引(%)" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_open_config +msgid "Cash Register Management" +msgstr "キャッシュレジスタ管理" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_naturel_45g_product_template +msgid "Lays Naturel 45g" +msgstr "Lays ナチュラル 45g" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Accounting Information" +msgstr "会計情報" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_regular_2l_product_template +msgid "Coca-Cola Regular 2L" +msgstr "コカコーラ 2L" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree_month +msgid "Sales by month" +msgstr "月毎の売上" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.soda_orange +msgid "Orange" +msgstr "オレンジ" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_user_pos_today +#: view:report.sales.by.user.pos:0 view:report.sales.by.user.pos.month:0 +msgid "Sales by User" +msgstr "ユーザ毎の売上" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Disc.(%)" +msgstr "割引(%)" + +#. module: point_of_sale +#: field:pos.box.entries,ref:0 +msgid "Ref" +msgstr "参照" + +#. module: point_of_sale +#: view:report.pos.order:0 field:report.pos.order,price_total:0 +msgid "Total Price" +msgstr "合計価格" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.leffe_brune_33cl_product_template +msgid "Leffe Brune 33cl" +msgstr "Leffe Brune 330ml" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_sales_user +#: report:pos.sales.user:0 +msgid "Sales Report" +msgstr "売上レポート" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.beverage +msgid "Beverages" +msgstr "飲物" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.stella_50cl_product_template +msgid "Stella Artois 50cl" +msgstr "Stella Artois 500ml" + +#. module: point_of_sale +#: view:pos.details:0 +msgid "Dates" +msgstr "日付" + +#. module: point_of_sale +#: field:pos.category,parent_id:0 +msgid "Parent Category" +msgstr "親分類" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.lines:0 report:pos.payment.report.user:0 +#: report:pos.user.product:0 +msgid "[" +msgstr "[" + +#. module: point_of_sale +#: field:report.sales.by.margin.pos,total:0 +#: field:report.sales.by.margin.pos.month,total:0 +msgid "Margin" +msgstr "粗利益" + +#. module: point_of_sale +#: field:pos.discount,discount:0 field:pos.order.line,discount:0 +msgid "Discount (%)" +msgstr "割引(%)" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_speciale_product_template +msgid "Dr. Oetker Ristorante Speciale" +msgstr "Dr. Oetker レストラン スペシャル" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "Total qty" +msgstr "合計数量" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_orange_33cl_product_template +msgid "Fanta Orange 33cl" +msgstr "ファンタ オレンジ 330ml" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_user_pos_month +msgid "Sales by User Monthly" +msgstr "月間ユーザ別売上" + +#. module: point_of_sale +#: report:all.closed.cashbox.of.the.day:0 +msgid "Today's Closed Cashbox" +msgstr "本日の閉じられた金庫" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Day from Creation date of cash register" +msgstr "キャッシュレジスタの作成日の日" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_of_sale +msgid "Daily Operations" +msgstr "日常業務" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:285 +#, python-format +msgid "Configuration Error !" +msgstr "設定エラーです。" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.sparkling_water +msgid "Sparkling Water" +msgstr "スパークリングウォーター" + +#. module: point_of_sale +#: view:pos.box.entries:0 +msgid "Fill in this form if you put money in the cash register:" +msgstr "キャッシュレジスタ内にお金を装填する場合はこのフォームに記入して下さい。" + +#. module: point_of_sale +#: view:account.bank.statement:0 +msgid "Search Cash Statements" +msgstr "現金取引明細書の検索" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "August" +msgstr "8月" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_max_lemon_33cl_product_template +msgid "Pepsi Max Cool Lemon 33cl" +msgstr "ペプシマックス クールレモン 330ml" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "June" +msgstr "6月" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "POS Order line" +msgstr "POSオーダー行" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_orange_50cl_product_template +msgid "Fanta Orange 50cl" +msgstr "ファンタ オレンジ 500ml" + +#. module: point_of_sale +#: field:pos.category,child_id:0 +msgid "Children Categories" +msgstr "子分類" + +#. module: point_of_sale +#: field:pos.make.payment,payment_date:0 +msgid "Payment Date" +msgstr "支払日" + +#. module: point_of_sale +#: help:product.product,pos_categ_id:0 +msgid "" +"If you want to sell this product through the point of sale, select the " +"category it belongs to." +msgstr "POSを通してこの商品を販売したい場合は、それが属する分類を選択して下さい。" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +msgid "Closing Date" +msgstr "締切日" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "October" +msgstr "10月" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_1l_product_template +msgid "Coca-Cola Light 1L" +msgstr "コカコーラ ライト 1L" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Summary" +msgstr "要約" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_50cl_product_template +msgid "Chaudfontaine 50cl" +msgstr "Chaudfontaine 500ml" + +#. module: point_of_sale +#: report:pos.invoice:0 report:pos.lines:0 field:pos.order.line,qty:0 +#: field:report.sales.by.user.pos,qty:0 +#: field:report.sales.by.user.pos.month,qty:0 +msgid "Quantity" +msgstr "数量" + +#. module: point_of_sale +#: field:pos.order.line,name:0 +msgid "Line No" +msgstr "行番号" + +#. module: point_of_sale +#: view:account.bank.statement:0 +msgid "Period" +msgstr "期間" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_open_statement.py:49 +#, python-format +msgid "No Cash Register Defined !" +msgstr "キャッシュレジスタが定義されていません。" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Net Total:" +msgstr "合計:" + +#. module: point_of_sale +#: field:pos.make.payment,payment_name:0 +msgid "Payment Reference" +msgstr "支払参照" + +#. module: point_of_sale +#: report:pos.details_summary:0 +msgid "Mode of Payment" +msgstr "支払モード" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_confirm +msgid "Post POS Journal Entries" +msgstr "POS仕訳帳エントリーの記帳" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:408 +#, python-format +msgid "Customer Invoice" +msgstr "顧客請求書" + +#. module: point_of_sale +#: view:pos.box.out:0 +msgid "Output Operation" +msgstr "出力操作" + +#. module: point_of_sale +#: view:report.pos.order:0 field:report.pos.order,total_discount:0 +msgid "Total Discount" +msgstr "合計割引" + +#. module: point_of_sale +#: view:pos.details:0 view:pos.payment.report:0 view:pos.payment.report.user:0 +#: view:pos.sale.user:0 +msgid "Print Report" +msgstr "レポートの印刷" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_bolognese_product_template +msgid "Dr. Oetker Ristorante Bolognese" +msgstr "Dr. Oetker レストランボロネーゼ" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_box_entries.py:105 +#, python-format +msgid "Please check that income account is set to %s" +msgstr "その損益勘定が %s にセットされていることをチェックして下さい。" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.pizza +msgid "Pizza" +msgstr "ピザ" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_return.py:85 +#: code:addons/point_of_sale/wizard/pos_return.py:240 +#, python-format +msgid "Add Product" +msgstr "商品追加" + +#. module: point_of_sale +#: field:report.transaction.pos,invoice_am:0 +msgid "Invoice Amount" +msgstr "請求書金額" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.coke +msgid "Coke" +msgstr "コーク" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Tel. :" +msgstr "TEL:" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_confirm +#: model:ir.ui.menu,name:point_of_sale.menu_wizard_pos_confirm +msgid "Create Sale Entries" +msgstr "販売エントリーの作成" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: model:ir.actions.act_window,name:point_of_sale.action_pos_payment +#: report:pos.details:0 view:pos.order:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:87 +msgid "Payment" +msgstr "支払" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Cash Analysis created in current month" +msgstr "現在月中に作成された現金分析" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +msgid "Ending Balance" +msgstr "終了残高" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_max_50cl_product_template +msgid "Pepsi Max 50cl" +msgstr "ペプシマックス 500ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.san_pellegrino_1l_product_template +msgid "San Pellegrino 1L" +msgstr "サンペレグリノ 1L" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Post Entries" +msgstr "エントリーの記帳" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_1l_product_template +msgid "Spa Reine 1L" +msgstr "SPA REINE 1L" + +#. module: point_of_sale +#: report:pos.details_summary:0 +msgid "Mode of Taxes" +msgstr "税金のモード" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_close_statement.py:50 +#, python-format +msgid "Cash registers are already closed." +msgstr "キャッシュレジスタは既に閉じられました。" + +#. module: point_of_sale +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "エラー:無効な商品識別番号です。" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_open_statement +#: view:pos.open.statement:0 +msgid "Open Statements" +msgstr "取引明細書を開く" + +#. module: point_of_sale +#: field:pos.details,date_end:0 field:pos.sale.user,date_end:0 +msgid "Date End" +msgstr "終了日" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "POS ordered created during current year" +msgstr "現在年中に作成されたPOSオーダー" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_pos_form +#: model:ir.ui.menu,name:point_of_sale.menu_point_ofsale view:pos.order:0 +msgid "PoS Orders" +msgstr "POSオーダー" + +#. module: point_of_sale +#: report:pos.details:0 +msgid "Sales total(Revenue)" +msgstr "売上合計" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Total paid" +msgstr "合計支払" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_all_menu_all_register +msgid "List of Cash Registers" +msgstr "キャッシュレジスタのリスト" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.maes_50cl_product_template +msgid "Maes 50cl" +msgstr "メイズ 500ml" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_transaction_pos +msgid "transaction for the pos" +msgstr "POS取引" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "Not Invoiced" +msgstr "請求外" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "March" +msgstr "3月" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_users_product_re +#: report:pos.user.product:0 +msgid "User's Product" +msgstr "ユーザ商品" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:641 +#, python-format +msgid "" +"You have to select a pricelist in the sale form !\n" +"Please set one before choosing a product." +msgstr "" +"販売フォームの中の価格リストを選択する必要があります。\n" +"商品を選択する前にそれをセットして下さい。" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_orange_2l_product_template +msgid "Fanta Orange 2L" +msgstr "ファンタ オレンジ 2L" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_33cl_product_template +msgid "Spa Reine 33cl" +msgstr "SPA REINE 330ml" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_discount +msgid "Add a Global Discount" +msgstr "全体割引を追加" + +#. module: point_of_sale +#: field:pos.order.line,price_subtotal_incl:0 +msgid "Subtotal" +msgstr "小計" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_prosciutto_product_template +msgid "Dr. Oetker Ristorante Prosciutto" +msgstr "Dr. Oetker レストラン プロシュート" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_light_paprika_170g_product_template +#: model:product.template,name:point_of_sale.lays_paprika_170g_product_template +msgid "Lays Light Paprika 170g" +msgstr "Lays ライト パプリカ 170g" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_lemon_50cl_product_template +msgid "Coca-Cola Light Lemon 50cl" +msgstr "コカコーラ ライト レモン 500ml" + +#. module: point_of_sale +#: field:report.cash.register,balance_end_real:0 +msgid "Closing Balance" +msgstr "締切残高" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.act_pos_open_statement +#: model:ir.model,name:point_of_sale.model_pos_close_statement +msgid "Close Statements" +msgstr "取引明細書を閉じる" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.croky_naturel_45g_product_template +msgid "Croky Naturel 45g" +msgstr "Croky ナチュラル 45g" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.product_product_putmoneyforchange1_product_template +msgid "Cash Out" +msgstr "現金引出" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +msgid "Starting Balance" +msgstr "開始残高" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_category +#: field:product.product,pos_categ_id:0 +msgid "PoS Category" +msgstr "POS分類" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chimay_bleu_75cl_product_template +msgid "Chimay Bleu 75cl" +msgstr "シメイ Bleu 750ml" + +#. module: point_of_sale +#: report:pos.payment.report.user:0 +msgid "Payment By User" +msgstr "ユーザによる支払" + +#. module: point_of_sale +#: view:report.pos.order:0 field:report.pos.order,nbr:0 +msgid "# of Lines" +msgstr "行数" + +#. module: point_of_sale +#: help:account.journal,check_dtls:0 +msgid "" +"This field authorize Validation of Cashbox without controlling the closing " +"balance." +msgstr "この項目は締切残高を制御することなく金庫の検証を許可します。" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_details +#: model:ir.ui.menu,name:point_of_sale.menu_pos_details +msgid "Sale Details" +msgstr "販売詳細" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.pils +msgid "Pils" +msgstr "ピルスナー" + +#. module: point_of_sale +#: report:all.closed.cashbox.of.the.day:0 +msgid "St.Name" +msgstr "" + +#. module: point_of_sale +#: report:pos.details_summary:0 +msgid "Sales total" +msgstr "売上合計" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "Sum of subtotals" +msgstr "小計の合計" + +#. module: point_of_sale +#: field:pos.order,lines:0 +msgid "Order Lines" +msgstr "受注行" + +#. module: point_of_sale +#: view:report.transaction.pos:0 +msgid "Total Transaction" +msgstr "合計取引" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_petillante_50cl_product_template +msgid "Chaudfontaine Petillante 50cl" +msgstr "Chaudfontaine ペティアント 500ml" + +#. module: point_of_sale +#: field:pos.order.line,create_date:0 +msgid "Creation Date" +msgstr "作成日" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_sales_user_today +msgid "Today's Sales" +msgstr "本日の売上" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_naturel_300g_product_template +msgid "Lays Naturel XXL 300g" +msgstr "Lays ナチュラル XXL 300g" + +#. module: point_of_sale +#: view:report.sales.by.margin.pos:0 view:report.sales.by.margin.pos.month:0 +#: view:report.sales.by.user.pos:0 view:report.sales.by.user.pos.month:0 +#: view:report.transaction.pos:0 +msgid "POS " +msgstr "" + +#. module: point_of_sale +#: report:account.statement:0 report:pos.user.product:0 +msgid "Total :" +msgstr "合計:" + +#. module: point_of_sale +#: view:report.cash.register:0 view:report.pos.order:0 +msgid "My Sales" +msgstr "私の売上" + +#. module: point_of_sale +#: field:pos.order,pricelist_id:0 +msgid "Pricelist" +msgstr "価格リスト" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Total invoiced" +msgstr "請求合計" + +#. module: point_of_sale +#: view:report.pos.order:0 field:report.pos.order,product_qty:0 +msgid "# of Qty" +msgstr "数量の数" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_sales_by_margin_pos_month +msgid "Sales by margin monthly" +msgstr "月間利鞘別売上" + +#. module: point_of_sale +#: view:pos.order:0 field:report.sales.by.margin.pos,date_order:0 +#: field:report.sales.by.margin.pos.month,date_order:0 +#: field:report.sales.by.user.pos,date_order:0 +#: field:report.sales.by.user.pos.month,date_order:0 +msgid "Order Date" +msgstr "オーダー日" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.stella_33cl_product_template +msgid "Stella Artois 33cl" +msgstr "Stella Artois 330ml" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Cash Analysis created during this year" +msgstr "今年中に作成された現金分析" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Draft Invoice" +msgstr "ドラフト請求書" + +#. module: point_of_sale +#: constraint:account.bank.statement.line:0 +msgid "" +"The amount of the voucher must be the same amount as the one on the " +"statement line" +msgstr "バウチャーの金額は明細行のひとつの金額と同じでなければなりません。" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Fiscal Position Remark :" +msgstr "会計ポジションの注釈:" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.evian_2l_product_template +msgid "Evian 2L" +msgstr "エビアン 2L" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "September" +msgstr "9月" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +msgid "Opening Date" +msgstr "開始日" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "Taxes :" +msgstr "税金:" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_2l_product_template +msgid "Coca-Cola Light 2L" +msgstr "コカコーラ ライト 2L" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_funghi_product_template +msgid "Dr. Oetker Ristorante Funghi" +msgstr "Dr. Oetker レストラン フンギ" + +#. module: point_of_sale +#: field:report.transaction.pos,disc:0 +msgid "Disc." +msgstr "割引" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lindemans_kriek_37,5cl_product_template +msgid "Lindemans Kriek 37.5cl" +msgstr "リンデマンス Kriek 375ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_zero_33cl_product_template +msgid "Coca-Cola Zero 33cl" +msgstr "コカコーラ ゼロ 330ml" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "VAT :" +msgstr "消費税:" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "POS Order lines" +msgstr "POSオーダー行" + +#. module: point_of_sale +#: view:pos.receipt:0 +msgid "Receipt :" +msgstr "レシート:" + +#. module: point_of_sale +#: field:account.bank.statement.line,pos_statement_id:0 +#: field:pos.order,amount_return:0 +msgid "unknown" +msgstr "不明" + +#. module: point_of_sale +#: report:pos.details:0 field:report.transaction.pos,date_create:0 +msgid "Date" +msgstr "日付" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_discount +#: view:pos.discount:0 +msgid "Apply Discount" +msgstr "割引適用" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +#: view:pos.details:0 report:pos.sales.user:0 report:pos.sales.user.today:0 +#: report:pos.user.product:0 view:report.cash.register:0 +#: field:report.cash.register,user_id:0 +#: field:report.sales.by.margin.pos,user_id:0 +#: field:report.sales.by.margin.pos.month,user_id:0 +#: field:report.sales.by.user.pos,user_id:0 +#: field:report.sales.by.user.pos.month,user_id:0 +#: field:report.transaction.pos,user_id:0 +#: model:res.groups,name:point_of_sale.group_pos_user +msgid "User" +msgstr "ユーザ" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_33cl_product_template +msgid "Coca-Cola Light 33cl" +msgstr "コカコーラ ライト 330ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.perrier_1l_product_template +msgid "Perrier 1L" +msgstr "ペリエ 1L" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Total discount" +msgstr "合計割引" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_box_entries +msgid "Pos Box Entries" +msgstr "POSボックスエントリー" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.boon_framboise_37,5cl_product_template +msgid "Boon Framboise 37.5cl" +msgstr "Boon Framboise 375ml" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "November" +msgstr "11月" + +#. module: point_of_sale +#: field:pos.config.journal,code:0 +msgid "Code" +msgstr "コード" + +#. module: point_of_sale +#: view:account.bank.statement:0 report:account.statement:0 +#: report:all.closed.cashbox.of.the.day:0 +#: model:ir.model,name:point_of_sale.model_account_journal +#: field:pos.config.journal,journal_id:0 field:pos.order,sale_journal:0 +#: view:report.cash.register:0 field:report.cash.register,journal_id:0 +#: field:report.pos.order,journal_id:0 +msgid "Journal" +msgstr "仕訳帳" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.timmermans_faro_37,5cl_product_template +msgid "Timmermans Faro 37.5cl" +msgstr "Timmermans Faro 375ml" + +#. module: point_of_sale +#: view:account.bank.statement:0 view:pos.order:0 field:pos.order,state:0 +#: report:pos.sales.user:0 report:pos.sales.user.today:0 +#: field:report.cash.register,state:0 field:report.pos.order,state:0 +msgid "State" +msgstr "状態" + +#. module: point_of_sale +#: field:report.transaction.pos,no_trans:0 +msgid "Number of Transaction" +msgstr "取引数" + +#. module: point_of_sale +#: view:pos.box.entries:0 view:pos.box.out:0 view:pos.confirm:0 +#: view:pos.make.payment:0 view:pos.open.statement:0 view:pos.receipt:0 +msgid "Cancel" +msgstr "キャンセル" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_details_summary +msgid "Sales (summary)" +msgstr "売上(合計)" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.timmermans_kriek_37,5cl_product_template +msgid "Timmermans Kriek 37.5cl" +msgstr "Timmermans Kriek 375ml" + +#. module: point_of_sale +#: field:account.journal,check_dtls:0 +msgid "Control Balance Before Closing" +msgstr "閉じる前のコントロール残高" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_order_line +msgid "Lines of Point of Sale" +msgstr "POSの行" + +#. module: point_of_sale +#: view:pos.order:0 view:report.transaction.pos:0 +msgid "Amount total" +msgstr "金額合計" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_new_bank_statement_all_tree +msgid "Cash Registers" +msgstr "キャッシュレジスタ" + +#. module: point_of_sale +#: report:pos.details:0 +msgid "Users" +msgstr "ユーザ" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.food +msgid "Food" +msgstr "食品" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: report:pos.details:0 report:pos.invoice:0 report:pos.lines:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:30 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:69 +msgid "Price" +msgstr "価格" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.ijsboerke_stracciatella_2,5l_product_template +msgid "ijsboerke Stracciatella 2.5L" +msgstr "アイスブルク Stracciatella 2.5L" + +#. module: point_of_sale +#: field:account.journal,journal_user:0 +msgid "PoS Payment Method" +msgstr "POS支払方法" + +#. module: point_of_sale +#: help:product.product,expense_pdt:0 +msgid "" +"This is a product you can use to take cash from a statement for the point of " +"sale backend, exemple: money lost, transfer to bank, etc." +msgstr "これはPOS後方事務のための取引明細書から現金を出すために使用できる商品です。例えば、現金の紛失、銀行への転送など。" + +#. module: point_of_sale +#: field:report.cash.register,date:0 +msgid "Create Date" +msgstr "作成日" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_regular_33cl_product_template +msgid "Coca-Cola Regular 33cl" +msgstr "コカコーラ 330ml" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:65 +#, python-format +msgid "Unable to Delete !" +msgstr "削除できません。" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_paprika_oven_150g_product_template +msgid "Lays Paprika Oven Baked 150g" +msgstr "Lays パプリカ オーブンベークド 150g" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Start Period" +msgstr "期首日" + +#. module: point_of_sale +#: report:account.statement:0 field:pos.category,complete_name:0 +#: field:pos.category,name:0 report:pos.sales.user:0 +#: report:pos.sales.user.today:0 +msgid "Name" +msgstr "名前" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_gazeuse_33cl_product_template +msgid "Spa Barisart 33cl" +msgstr "SPA Barisart 330ml" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:284 +#, python-format +msgid "" +"There is no receivable account defined to make payment for the partner: " +"\"%s\" (id:%d)" +msgstr "パートナに支払をするための売掛金勘定がありません:%s (id:%d)" + +#. module: point_of_sale +#: view:pos.confirm:0 +msgid "" +"Generate all sale journal entries for non invoiced orders linked to a closed " +"cash register or statement." +msgstr "閉じたキャッシュレジスタや取引明細書に関連する請求書なしのオーダーのための全ての仕訳帳エントリーを生成します。" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:293 +#: code:addons/point_of_sale/point_of_sale.py:472 +#: code:addons/point_of_sale/report/pos_invoice.py:46 +#: code:addons/point_of_sale/wizard/pos_box_entries.py:46 +#: code:addons/point_of_sale/wizard/pos_box_entries.py:100 +#: code:addons/point_of_sale/wizard/pos_box_entries.py:105 +#: code:addons/point_of_sale/wizard/pos_box_out.py:86 +#: code:addons/point_of_sale/wizard/pos_box_out.py:88 +#, python-format +msgid "Error !" +msgstr "エラー" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.lines:0 report:pos.payment.report.user:0 +#: report:pos.user.product:0 +msgid "]" +msgstr "]" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_account_bank_statement +msgid "Bank Statement" +msgstr "銀行取引明細書" + +#. module: point_of_sale +#: sql_constraint:account.journal:0 +msgid "The name of the journal must be unique per company !" +msgstr "仕訳帳の名前は会社ごとに固有でなければなりません、" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_light_naturel_170g_product_template +#: model:product.template,name:point_of_sale.lays_naturel_170g_product_template +msgid "Lays Light Naturel 170g" +msgstr "Lays ライト ナチュラル 170g" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 report:pos.lines:0 +#: report:pos.payment.report.user:0 report:pos.sales.user:0 +#: report:pos.sales.user.today:0 report:pos.user.product:0 +msgid "Print Date" +msgstr "印刷日" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:282 +#, python-format +msgid "There is no receivable account defined to make payment" +msgstr "支払のための売掛金勘定が定義されていません。" + +#. module: point_of_sale +#: view:pos.open.statement:0 +msgid "Do you want to open cash registers?" +msgstr "キャッシュレジスタを開きますか?" + +#. module: point_of_sale +#: help:pos.category,sequence:0 +msgid "" +"Gives the sequence order when displaying a list of product categories." +msgstr "商品分類のリストを表示する時に並び順を与えます。" + +#. module: point_of_sale +#: field:product.product,expense_pdt:0 +msgid "PoS Cash Output" +msgstr "POS現金払出" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.soda +msgid "Soda" +msgstr "ソーダ" + +#. module: point_of_sale +#: view:account.bank.statement:0 view:pos.order:0 view:report.cash.register:0 +#: view:report.pos.order:0 +msgid "Group By..." +msgstr "グループ化…" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "POS Orders" +msgstr "POSオーダー" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.all_closed_cashbox_of_the_day +msgid "All Closed CashBox" +msgstr "全ての閉じた金庫" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:640 +#, python-format +msgid "No Pricelist !" +msgstr "価格リストがありません。" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Update" +msgstr "更新" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Base" +msgstr "基本" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.categ_others +msgid "Others" +msgstr "その他" + +#. module: point_of_sale +#: view:product.product:0 +msgid "Point-of-Sale" +msgstr "POS" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.evian_50cl_product_template +msgid "Evian 50cl" +msgstr "エビアン 500ml" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Notes" +msgstr "注記" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Sale Order" +msgstr "販売オーダー" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_lemon_2l_product_template +msgid "Coca-Cola Light Lemon 2L" +msgstr "コカコーラ ライト レモン 2L" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.invoice:0 field:pos.order,amount_tax:0 +msgid "Taxes" +msgstr "税金" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line +#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line_day +#: model:ir.actions.act_window,name:point_of_sale.action_pos_order_line_form +msgid "Sale line" +msgstr "販売行" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_naturel_oven_150g_product_template +msgid "Lays Naturel Oven Baked 150g" +msgstr "Lays ナチュラル オーブンベークド 150g" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_decaf_33cl_product_template +msgid "Coca-Cola Light Decaf 33cl" +msgstr "コカコーラ ライト デカフェ 330ml" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.product_normal_action +#: model:ir.ui.menu,name:point_of_sale.menu_point_of_sale_product +#: model:ir.ui.menu,name:point_of_sale.menu_pos_products +msgid "Products" +msgstr "商品" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_4formaggi_product_template +msgid "Dr. Oetker Ristorante Quattro Formaggi" +msgstr "Dr. Oetker レストラン クアトロフォルマッジ" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_zero_1l_product_template +msgid "Coca-Cola Zero 1L" +msgstr "コカコーラ ゼロ 1L" + +#. module: point_of_sale +#: report:pos.sales.user:0 report:pos.sales.user.today:0 +#: field:report.pos.order,date:0 +msgid "Date Order" +msgstr "日付順" + +#. module: point_of_sale +#: view:report.sales.by.margin.pos:0 view:report.sales.by.margin.pos.month:0 +#: view:report.sales.by.user.pos:0 view:report.sales.by.user.pos.month:0 +#: view:report.transaction.pos:0 +msgid "POS" +msgstr "" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_product_output +#: model:ir.ui.menu,name:point_of_sale.products_for_output_operations +msgid "Products 'Put Money In'" +msgstr "現金装填という商品" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.croky_bolognaise_250g_product_template +msgid "Croky Bolognaise 250g" +msgstr "Croky ボロネーズ 250g" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Extra Info" +msgstr "追加情報" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Fax :" +msgstr "FAX:" + +#. module: point_of_sale +#: field:pos.order,user_id:0 +msgid "Connected Salesman" +msgstr "担当販売員" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_sale_all +#: model:ir.ui.menu,name:point_of_sale.menu_point_ofsale_all +msgid "All Sales Orders" +msgstr "全受注オーダー" + +#. module: point_of_sale +#: help:product.product,income_pdt:0 +msgid "" +"This is a product you can use to put cash into a statement for the point of " +"sale backend." +msgstr "これはPOS後方事務のために取引明細書の中に現金を入れるために使用できる商品です。" + +#. module: point_of_sale +#: view:pos.receipt:0 +msgid "Print the Receipt of the Sale" +msgstr "販売レシートの印刷" + +#. module: point_of_sale +#: field:pos.make.payment,journal:0 +msgid "Payment Mode" +msgstr "支払モード" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_paprika_45g_product_template +msgid "Lays Paprika 45g" +msgstr "Lays パプリカ 45g" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: report:pos.details:0 report:pos.payment.report.user:0 +#: report:pos.user.product:0 field:report.sales.by.margin.pos,qty:0 +#: field:report.sales.by.margin.pos.month,qty:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:32 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:59 +msgid "Qty" +msgstr "数量" + +#. module: point_of_sale +#: view:report.cash.register:0 view:report.pos.order:0 +msgid "Month -1" +msgstr "月 -1" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_sale_user +#: model:ir.model,name:point_of_sale.model_pos_sale_user +#: view:pos.payment.report.user:0 +msgid "Sale by User" +msgstr "ユーザ毎の販売" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.evian_1l_product_template +msgid "Evian 1L" +msgstr "エビアン 1L" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_open_statement +msgid "Open Cash Registers" +msgstr "キャッシュレジスタを開く" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.water +msgid "Water" +msgstr "水" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "state" +msgstr "状態" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "July" +msgstr "7月" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_poivre_sel_oven_150g_product_template +msgid "Lays Sel et Poivre Oven Baked 150g" +msgstr "Lays 塩コショウ オーブンベークド 150g" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "Qty of product" +msgstr "商品の数量" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chimay_rouge_33cl_product_template +msgid "Chimay Rouge 33cl" +msgstr "シメイ Rouge 330ml" + +#. module: point_of_sale +#: field:report.pos.order,delay_validation:0 +msgid "Delay Validation" +msgstr "検証の遅延" + +#. module: point_of_sale +#: field:pos.order,nb_print:0 +msgid "Number of Print" +msgstr "印刷数" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_make_payment +msgid "Point of Sale Payment" +msgstr "POS支払" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_50cl_product_template +msgid "Coca-Cola Light 50cl" +msgstr "コカコーラ ライト 500ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.jupiler_50cl_product_template +msgid "Jupiler 50cl" +msgstr "ジュピラー 500ml" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.details_summary:0 +msgid "End Period" +msgstr "期末日" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_light_lemon_33cl_product_template +msgid "Coca-Cola Light Lemon 33cl" +msgstr "コカコーラ ライト レモン 330ml" + +#. module: point_of_sale +#: field:account.journal,auto_cash:0 +msgid "Automatic Opening" +msgstr "自動開始" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_ketchup_250g_product_template +msgid "Lays Ketchup 250g" +msgstr "Lays ケチャップ 250g" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.perrier_50cl_product_template +msgid "Perrier 50cl" +msgstr "ペリエ 500ml" + +#. module: point_of_sale +#: selection:report.pos.order,state:0 +msgid "Synchronized" +msgstr "同期" + +#. module: point_of_sale +#: view:report.cash.register:0 field:report.cash.register,month:0 +#: view:report.pos.order:0 field:report.pos.order,month:0 +msgid "Month" +msgstr "月" + +#. module: point_of_sale +#: report:account.statement:0 +msgid "Statement Name" +msgstr "取引明細書名" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "Year of order date" +msgstr "オーダー日の年" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_new_bank_statement_tree +#: field:pos.box.entries,journal_id:0 field:pos.box.out,journal_id:0 +msgid "Cash Register" +msgstr "キャッシュレジスタ" + +#. module: point_of_sale +#: view:pos.close.statement:0 +msgid "Yes" +msgstr "" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_receipt +msgid "Point of sale receipt" +msgstr "販売レシート印刷" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_margin_pos_today +msgid "Sales by User Daily margin" +msgstr "ユーザの1日の利鞘別売上" + +#. module: point_of_sale +#: view:pos.open.statement:0 +msgid "Open Registers" +msgstr "レジスタを開く" + +#. module: point_of_sale +#: field:report.transaction.pos,journal_id:0 +msgid "Sales Journal" +msgstr "売上仕訳帳" + +#. module: point_of_sale +#: field:report.cash.register,balance_start:0 +msgid "Opening Balance" +msgstr "開始残高" + +#. module: point_of_sale +#: view:account.bank.statement:0 selection:report.pos.order,state:0 +msgid "Closed" +msgstr "閉じた" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_vegetale_product_template +msgid "Dr. Oetker Ristorante Vegetale" +msgstr "Dr. Oetker レストラン ベジタブル" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "POS ordered created by today" +msgstr "本日作成されたPOSオーダー" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_zero_2l_product_template +msgid "Coca-Cola Zero 2L" +msgstr "コカコーラ ゼロ 2L" + +#. module: point_of_sale +#: field:pos.order,amount_paid:0 selection:pos.order,state:0 +msgid "Paid" +msgstr "支払済" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_all_sales_lines +msgid "All sales lines" +msgstr "全売上行" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Discount" +msgstr "割引" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Cash Analysis created in last month" +msgstr "先月に作成された現金分析" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.beers +msgid "Beers" +msgstr "ビール" + +#. module: point_of_sale +#: view:pos.close.statement:0 +msgid "" +"OpenERP will close all cash registers he can close automatically without " +"validation. He will also open all cash registers for which you have to " +"control the ending belance before closing manually." +msgstr "" +"OpenERPは検証なしで自動的に全てのキャッシュレジスタを閉じることができます。また、手動で閉じる前に終了残高を管理しなければならない全てのキャッシュレ" +"ジスタを開くこともできます。" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Cash Analysis created by today" +msgstr "本日作成された現金分析" + +#. module: point_of_sale +#: selection:report.cash.register,state:0 +msgid "Quotation" +msgstr "見積" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.product_product_putmoneyforchange0_product_template +msgid "Cash In" +msgstr "現金入金" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: report:all.closed.cashbox.of.the.day:0 report:pos.invoice:0 +#: report:pos.lines:0 report:pos.payment.report.user:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:49 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:93 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:271 +msgid "Total:" +msgstr "合計:" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_sales_by_margin_pos +msgid "Sales by margin" +msgstr "利鞘別売上" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_config_journal +msgid "Journal Configuration" +msgstr "仕訳帳設定" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Statement lines" +msgstr "取引明細書行" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.croky_paprika_45g_product_template +msgid "Croky Paprika 45g" +msgstr "Croky パプリカ 45g" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Reprint" +msgstr "再印刷" + +#. module: point_of_sale +#: help:pos.order,user_id:0 +msgid "" +"Person who uses the the cash register. It could be a reliever, a student or " +"an interim employee." +msgstr "キャッシュレジスタのユーザとなる人は救援者や学生、一時的な従業員かもしれません。" + +#. module: point_of_sale +#: field:report.transaction.pos,invoice_id:0 +msgid "Nbr Invoice" +msgstr "請求書番号" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_receipt +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:231 +msgid "Receipt" +msgstr "レシート" + +#. module: point_of_sale +#: view:pos.open.statement:0 +msgid "" +"The system will open all cash registers, so that you can start recording " +"payments. We suggest you to control the opening balance of each register, " +"using their CashBox tab." +msgstr "" +"システムは全てのキャッシュレジスタを開きます。それで支払の記録を開始できます。金庫タブを使って各レジスタの開始残高を管理することを推奨します。" + +#. module: point_of_sale +#: report:pos.invoice:0 report:pos.lines:0 field:pos.order.line,price_unit:0 +#: report:pos.payment.report.user:0 +msgid "Unit Price" +msgstr "単価" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Done" +msgstr "完了" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_invoice_report +#: report:pos.invoice:0 view:pos.order:0 field:pos.order,invoice_id:0 +msgid "Invoice" +msgstr "請求書" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.rochefort_8_33cl_product_template +msgid "Rochefort \"8\" 33cl" +msgstr "ロシュフォール 8 330ml" + +#. module: point_of_sale +#: view:account.bank.statement:0 selection:report.cash.register,state:0 +msgid "Open" +msgstr "開く" + +#. module: point_of_sale +#: field:pos.order,name:0 field:pos.order.line,order_id:0 +msgid "Order Ref" +msgstr "オーダー参照" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.timmermans_geuze_37,5cl_product_template +msgid "Timmermans Geuze 37.5cl" +msgstr "Timmermans Geuze 375ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_pickles_250g_product_template +msgid "Lays Pickels 250g" +msgstr "Lays ピクルス 250g" + +#. module: point_of_sale +#: field:report.sales.by.margin.pos,net_margin_per_qty:0 +#: field:report.sales.by.margin.pos.month,net_margin_per_qty:0 +msgid "Net margin per Qty" +msgstr "1個当り正味利鞘" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_sales_by_user_pos_month +msgid "Sales by user monthly" +msgstr "月間ユーザ別売上" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_et_fruit_50cl_product_template +msgid "Spa et Fruit Orange 50cl" +msgstr "SPA et Fruit Orange 500ml" + +#. module: point_of_sale +#: view:report.sales.by.margin.pos:0 view:report.sales.by.margin.pos.month:0 +msgid "Sales by User Margin" +msgstr "ユーザ利鞘別売上" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_payment.py:59 +#, python-format +msgid "Paiement" +msgstr "支払" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Taxes:" +msgstr "税金:" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_max_33cl_product_template +msgid "Pepsi Max 33cl" +msgstr "ペプシマックス 330ml" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_pos_order +msgid "Point of Sale Orders Statistics" +msgstr "POSオーダー統計" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: model:ir.model,name:point_of_sale.model_product_product +#: report:pos.details:0 field:pos.order.line,product_id:0 +#: report:pos.payment.report.user:0 report:pos.user.product:0 +#: view:report.pos.order:0 field:report.pos.order,product_id:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:29 +msgid "Product" +msgstr "商品" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_pollo_product_template +msgid "Dr. Oetker Ristorante Pollo" +msgstr "Dr. Oetker レストラン ポロ" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_lines_report +msgid "Pos Lines" +msgstr "POS行" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.grisette_cerise_25cl_product_template +msgid "Grisette Cerise 25cl" +msgstr "Grisette Cerise 250ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_33cl_product_template +msgid "Chaudfontaine 33cl" +msgstr "Chaudfontaine 330ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_margherita_product_template +msgid "Dr. Oetker La Margherita" +msgstr "Dr. Oetker ラ マルゲリータ" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_root +msgid "PoS Backend" +msgstr "POS後方事務" + +#. module: point_of_sale +#: view:pos.order:0 selection:pos.order,state:0 +msgid "Posted" +msgstr "記帳済" + +#. module: point_of_sale +#: field:pos.order,date_order:0 +msgid "Date Ordered" +msgstr "オーダー日" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_payment_report_user +#: model:ir.model,name:point_of_sale.model_pos_payment_report_user +msgid "Sales lines by Users" +msgstr "ユーザ別売上傾向" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_2l_product_template +msgid "Pepsi 2L" +msgstr "ペプシ 2L" + +#. module: point_of_sale +#: report:pos.details:0 +msgid "Order" +msgstr "順番" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:472 +#, python-format +msgid "There is no income account defined for this product: \"%s\" (id:%d)" +msgstr "この商品のために定義された損益勘定がありません:%s(ID:%d)" + +#. module: point_of_sale +#: view:pos.details:0 +msgid "POS Details" +msgstr "POS詳細" + +#. module: point_of_sale +#: field:pos.details,user_ids:0 +msgid "Salesmen" +msgstr "販売員" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_report_cash_register +#: view:report.cash.register:0 +msgid "Point of Sale Cash Register Analysis" +msgstr "POSキャッシュレジスタ分析" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "Net Total :" +msgstr "合計:" + +#. module: point_of_sale +#: model:res.groups,name:point_of_sale.group_pos_manager +msgid "Manager" +msgstr "マネジャ" + +#. module: point_of_sale +#: field:pos.details,date_start:0 field:pos.sale.user,date_start:0 +msgid "Date Start" +msgstr "開始日" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: field:pos.order,amount_total:0 report:pos.payment.report.user:0 +#: field:report.sales.by.user.pos,amount:0 +#: field:report.sales.by.user.pos.month,amount:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:33 +msgid "Total" +msgstr "合計" + +#. module: point_of_sale +#: view:pos.sale.user:0 +msgid "Sale By User" +msgstr "ユーザ別販売" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_open_statement +msgid "Open Cash Register" +msgstr "キャッシュレジスタを開く" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lindemans_pecheresse_37,5cl_product_template +msgid "Lindemans Pecheresse 37.5cl" +msgstr "リンデマンス Pecheresse 375ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_33cl_product_template +msgid "Pepsi 33cl" +msgstr "ペプシ 330ml" + +#. module: point_of_sale +#: report:account.statement:0 +#: model:ir.actions.report.xml,name:point_of_sale.account_statement +msgid "Statement" +msgstr "取引明細書" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_payment_report +#: model:ir.model,name:point_of_sale.model_pos_payment_report +#: view:pos.payment.report:0 +msgid "Payment Report" +msgstr "支払レポート" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_orange_25cl_product_template +msgid "Fanta Orange 25cl" +msgstr "ファンタ オレンジ 250ml" + +#. module: point_of_sale +#: view:pos.confirm:0 +msgid "Generate Journal Entries" +msgstr "仕訳帳エントリーの生成" + +#. module: point_of_sale +#: report:account.statement:0 report:all.closed.cashbox.of.the.day:0 +#: report:pos.details:0 report:pos.details_summary:0 report:pos.lines:0 +#: field:pos.order,company_id:0 field:pos.order.line,company_id:0 +#: report:pos.payment.report.user:0 report:pos.sales.user:0 +#: report:pos.sales.user.today:0 report:pos.user.product:0 +#: field:report.pos.order,company_id:0 +msgid "Company" +msgstr "会社" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Invoice Date" +msgstr "請求日" + +#. module: point_of_sale +#: field:pos.box.entries,name:0 +msgid "Reason" +msgstr "理由" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.orangina_33cl_product_template +msgid "Orangina 33cl" +msgstr "オランジーナ 330ml" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_product_input +#: model:ir.ui.menu,name:point_of_sale.products_for_input_operations +msgid "Products 'Take Money Out'" +msgstr "現金取出という商品" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chimay_bleu_33cl_product_template +msgid "Chimay Bleu 33cl" +msgstr "シメイ Bleu 330ml" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_account_journal_form +#: model:ir.ui.menu,name:point_of_sale.menu_action_account_journal_form_open +msgid "Payment Methods" +msgstr "支払方法" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.chips +msgid "Chips" +msgstr "チップス" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_spinaci_product_template +msgid "Dr. Oetker Ristorante Spinaci" +msgstr "Dr. Oetker レストラン スピナッチ" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:293 +#: code:addons/point_of_sale/wizard/pos_box_entries.py:100 +#: code:addons/point_of_sale/wizard/pos_box_out.py:88 +#, python-format +msgid "You have to open at least one cashbox" +msgstr "少なくとも1個の金庫を開く必要があります。" + +#. module: point_of_sale +#: model:ir.actions.report.xml,name:point_of_sale.pos_payment_report_user +msgid "Today's Payment By User" +msgstr "ユーザ別本日の支払" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_box_entries +#: model:ir.ui.menu,name:point_of_sale.menu_wizard_enter_jrnl +msgid "Put Money In" +msgstr "現金装填" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:238 +#: code:addons/point_of_sale/point_of_sale.py:253 +#, python-format +msgid "Error!" +msgstr "エラー" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "No. Of Articles" +msgstr "品目数" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.ijsboerke_vanille_2,5l_product_template +msgid "ijsboerke Vanille 2.5L" +msgstr "アイスブルク バニラ 2.5L" + +#. module: point_of_sale +#: selection:pos.order,state:0 selection:report.pos.order,state:0 +msgid "Cancelled" +msgstr "キャンセル済" + +#. module: point_of_sale +#: report:pos.user.product:0 +msgid "Ending Date" +msgstr "終了日" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.orangina_1,5l_product_template +msgid "Orangina 1.5L" +msgstr "オランジーナ 1.5L" + +#. module: point_of_sale +#: field:pos.order,picking_id:0 +msgid "Picking" +msgstr "集荷" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.ice_cream +msgid "Ice Cream" +msgstr "アイスクリーム" + +#. module: point_of_sale +#: field:pos.order,shop_id:0 field:report.pos.order,shop_id:0 +msgid "Shop" +msgstr "店" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "銀行取引明細書行" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.belle_vue_kriek_25cl_product_template +msgid "Belle-Vue Kriek 25cl" +msgstr "ベルビュー Kriek 250ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_petillante_1,5l_product_template +msgid "Chaudfontaine Petillante 1.5l" +msgstr "Chaudfontaine ペティアント 1.5L" + +#. module: point_of_sale +#: view:report.sales.by.user.pos:0 view:report.sales.by.user.pos.month:0 +#: view:report.transaction.pos:0 +msgid "POS Report" +msgstr "POSレポート" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_1,5l_product_template +msgid "Chaudfontaine 1.5l" +msgstr "Chaudfontaine 1.5L" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_close_statement +msgid "Close Cash Register" +msgstr "キャッシュレジスタを閉じる" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:65 +#, python-format +msgid "In order to delete a sale, it must be new or cancelled." +msgstr "販売を削除するために、それは新規またはキャンセルする必要があります。" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_regular_50cl_product_template +msgid "Coca-Cola Regular 50cl" +msgstr "コカコーラ 500ml" + +#. module: point_of_sale +#: view:pos.confirm:0 +msgid "Generate Entries" +msgstr "エントリーの生成" + +#. module: point_of_sale +#: field:pos.box.entries,product_id:0 field:pos.box.out,product_id:0 +msgid "Operation" +msgstr "操作" + +#. module: point_of_sale +#: field:pos.order,account_move:0 +msgid "Journal Entry" +msgstr "仕訳帳入力" + +#. module: point_of_sale +#: selection:report.cash.register,state:0 +msgid "Confirmed" +msgstr "確認済" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Cancelled Invoice" +msgstr "キャンセル済請求書" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Confirm" +msgstr "確認" + +#. module: point_of_sale +#: help:account.journal,auto_cash:0 +msgid "" +"This field authorize the automatic creation of the cashbox, without control " +"of the initial balance." +msgstr "この項目は初期残高の制御なしに金庫の自動作成を許可します。" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_zero_50cl_product_template +msgid "Coca-Cola Zero 50cl" +msgstr "コカコーラ ゼロ 500ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_tonno_product_template +msgid "Dr. Oetker Ristorante Tonno" +msgstr "Dr. Oetker レストラン トンノ" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Supplier Invoice" +msgstr "仕入先請求書" + +#. module: point_of_sale +#: constraint:account.bank.statement:0 +msgid "The journal and period chosen have to belong to the same company." +msgstr "選択された仕訳帳と期間は同じ会社に属していなければなりません。" + +#. module: point_of_sale +#: view:pos.order:0 selection:pos.order,state:0 +#: selection:report.pos.order,state:0 +msgid "New" +msgstr "新規" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:238 +#, python-format +msgid "In order to set to draft a sale, it must be cancelled." +msgstr "販売をドラフトにセットするためには、それをキャンセルする必要があります。" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_zero_orange_33cl_product_template +msgid "Fanta Zero Orange 33cl" +msgstr "ファンタ ゼロ オレンジ 330ml" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "Day of order date" +msgstr "オーダー日の日" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_rep +msgid "Reporting" +msgstr "レポート" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.maes_33cl_product_template +msgid "Maes 33cl" +msgstr "メイズ 330ml" + +#. module: point_of_sale +#: view:pos.box.entries:0 +msgid "Put Money" +msgstr "現金装填" + +#. module: point_of_sale +#: sql_constraint:account.journal:0 +msgid "The code of the journal must be unique per company !" +msgstr "仕訳帳のコードは会社ごとに固有でなければなりません。" + +#. module: point_of_sale +#: model:ir.ui.menu,name:point_of_sale.menu_point_config_product +msgid "Configuration" +msgstr "設定" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.orval_33cl_product_template +msgid "Orval 33cl" +msgstr "オルヴァル 330ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_regular_1l_product_template +msgid "Coca-Cola Regular 1L" +msgstr "コカコーラ 1L" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:253 +#, python-format +msgid "Unable to cancel the picking." +msgstr "集荷をキャンセルできません。" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "POS ordered created during current month" +msgstr "現在月中に作成されたPOSオーダー" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "POS ordered created last month" +msgstr "先月作成されたPOSオーダー" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_pos_invoice +msgid "Invoices" +msgstr "請求書" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "December" +msgstr "12月" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_gazeuse_1,5l_product_template +msgid "Spa Barisart 1.5l" +msgstr "SPA Barisart 1.5L" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:329 view:pos.order:0 +#, python-format +msgid "Return Products" +msgstr "商品の返品" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.jupiler_33cl_product_template +msgid "Jupiler 33cl" +msgstr "ジュピラー 330ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.ijsboerke_chocolat_2,5l_product_template +msgid "ijsboerke Chocolat 2.5L" +msgstr "アイスブルク チョコレート 2.5L" + +#. module: point_of_sale +#: view:pos.box.out:0 +msgid "Take Money" +msgstr "現金取出" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_details +msgid "Sales Details" +msgstr "売上詳細" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_close_statement.py:50 +#, python-format +msgid "Message" +msgstr "メッセージ" + +#. module: point_of_sale +#: view:account.journal:0 model:ir.model,name:point_of_sale.model_pos_order +#: model:ir.ui.menu,name:point_of_sale.menu_point_root_touchscreen +#: view:product.product:0 +msgid "Point of Sale" +msgstr "POS" + +#. module: point_of_sale +#: view:pos.order:0 field:pos.payment.report.user,user_id:0 +#: field:pos.sale.user,user_id:0 field:pos.sales.user.today,user_id:0 +#: view:report.pos.order:0 field:report.pos.order,user_id:0 +msgid "Salesman" +msgstr "販売員" + +#. module: point_of_sale +#: report:pos.details:0 view:pos.order:0 selection:pos.order,state:0 +#: view:report.pos.order:0 selection:report.pos.order,state:0 +msgid "Invoiced" +msgstr "請求済" + +#. module: point_of_sale +#: view:pos.close.statement:0 +msgid "No" +msgstr "" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_gazeuse_50cl_product_template +msgid "Spa Barisart 50cl" +msgstr "SPA Barisart 500ml" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.special_beers +msgid "Special Beers" +msgstr "特別なビール" + +#. module: point_of_sale +#: field:pos.order.line,notice:0 +msgid "Discount Notice" +msgstr "割引注記" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Re-Print" +msgstr "再印刷" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid "Draft" +msgstr "ドラフト" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.fanta_zero_orange_1,5l_product_template +msgid "Fanta Zero Orange 1.5L" +msgstr "ファンタ ゼロ オレンジ 1.5L" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "PRO-FORMA" +msgstr "プロフォーマ" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:358 +#, python-format +msgid "Please provide a partner for the sale." +msgstr "販売のためのパートナを提供して下さい。" + +#. module: point_of_sale +#: model:pos.category,name:point_of_sale.fruity_beers +msgid "Fruity Beers" +msgstr "フルーティなビール" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.ijsboerke_dame_blanche_2,5l_product_template +msgid "ijsboerke Dame Blanche 2.5L" +msgstr "アイスブルク Dame Blanche 2.5L" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.ijsboerke_moka_2,5l_product_template +msgid "ijsboerke Moka 2.5L" +msgstr "アイスブルク モカ 2.5L" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Search Sales Order" +msgstr "受注オーダーの検索" + +#. module: point_of_sale +#: model:ir.actions.act_window,help:point_of_sale.action_account_journal_form +msgid "" +"Payment methods are defined by accounting journals having the field Payment " +"Method checked." +msgstr "支払方法はチェックされた支払方法項目を持つ会計仕訳帳によって定義されます。" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_trans_pos_tree +#: model:ir.model,name:point_of_sale.model_report_sales_by_user_pos +msgid "Sales by user" +msgstr "ユーザ別売上" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_hawaii_product_template +msgid "Dr. Oetker Ristorante Hawaii" +msgstr "Dr. Oetker レストラン ハワイ" + +#. module: point_of_sale +#: view:pos.receipt:0 +msgid "Print Receipt" +msgstr "レシート印刷" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "January" +msgstr "1月" + +#. module: point_of_sale +#: view:pos.order.line:0 +msgid "POS Orders lines" +msgstr "POSオーダー行" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.chaudfontaine_petillante_33cl_product_template +msgid "Chaudfontaine Petillante 33cl" +msgstr "Chaudfontaine ペティアント 330ml" + +#. module: point_of_sale +#: model:ir.actions.act_window,help:point_of_sale.product_normal_action +msgid "" +"You must define a Product for everything you buy or sell. Products can be " +"raw materials, stockable products, consumables or services. The Product form " +"contains detailed information about your products related to procurement " +"logistics, sales price, product category, suppliers and so on." +msgstr "" +"購入または販売する全ての商品を定義する必要があります。商品は原材料、在庫可能商品、消耗品、またはサービスです。商品フォームはその商品が関連する調達の物流、" +"販売価格、商品分類、仕入先などについての詳細な情報を含みます。" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.pepsi_max_2l_product_template +msgid "Pepsi Max 2L" +msgstr "ペプシマックス 2L" + +#. module: point_of_sale +#: code:addons/point_of_sale/point_of_sale.py:358 +#, python-format +msgid "Error" +msgstr "エラー" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.lays_paprika_300g_product_template +msgid "Lays Paprika XXL 300g" +msgstr "Lays パプリカ XXL 300g" + +#. module: point_of_sale +#: view:pos.close.statement:0 +msgid "Do you want to close your cash registers?" +msgstr "キャッシュレジスタを閉じますか?" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Refund" +msgstr "返金" + +#. module: point_of_sale +#: code:addons/point_of_sale/report/pos_invoice.py:46 +#, python-format +msgid "Please create an invoice for this sale." +msgstr "この販売の請求書を作成して下さい。" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.oetker_mozzarella_product_template +msgid "Dr. Oetker Ristorante Mozzarella" +msgstr "Dr. Oetker レストラン モッツァレッラ" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_close_statement.py:66 +#: model:ir.ui.menu,name:point_of_sale.menu_close_statement +#: view:pos.close.statement:0 +#, python-format +msgid "Close Cash Registers" +msgstr "キャッシュレジスタを閉じる" + +#. module: point_of_sale +#: report:pos.details:0 report:pos.payment.report.user:0 +msgid "Disc(%)" +msgstr "割引(%)" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "General Information" +msgstr "一般情報" + +#. #-#-#-#-# point_of_sale.pot (OpenERP Server 6.1rc1) #-#-#-#-# +#. module: point_of_sale +#. #-#-#-#-# point_of_sale.pot.web (PROJECT VERSION) #-#-#-#-# +#. openerp-web +#: view:pos.details:0 view:pos.discount:0 view:pos.payment.report:0 +#: view:pos.payment.report.user:0 view:pos.sale.user:0 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:13 +msgid "Close" +msgstr "閉じる" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Order lines" +msgstr "オーダー行" + +#. module: point_of_sale +#: view:account.journal:0 +msgid "Extended Configuration" +msgstr "拡張設定" + +#. module: point_of_sale +#: field:pos.order.line,price_subtotal:0 +msgid "Subtotal w/o Tax" +msgstr "税抜小計" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.spa_50cl_product_template +msgid "Spa Reine 50cl" +msgstr "SPA REINE 500ml" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.leffe_blonde_33cl_product_template +msgid "Leffe Blonde 33cl" +msgstr "レフ ブロンド 330ml" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_payment +msgid "Pyament Report" +msgstr "支払レポート" + +#. module: point_of_sale +#: field:report.transaction.pos,jl_id:0 +msgid "Cash Journals" +msgstr "現金仕訳帳" + +#. module: point_of_sale +#: report:pos.sales.user.today:0 +msgid "Today's Sales By User" +msgstr "ユーザ別本日売上" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Customer Code" +msgstr "顧客コード" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_box_out.py:86 +#, python-format +msgid "please check that account is set to %s" +msgstr "そのアカウントが %s にセットされていることを確認して下さい。" + +#. module: point_of_sale +#: field:pos.config.journal,name:0 report:pos.invoice:0 report:pos.lines:0 +msgid "Description" +msgstr "説明" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "May" +msgstr "5月" + +#. module: point_of_sale +#: report:pos.lines:0 +msgid "Sales lines" +msgstr "売上行" + +#. module: point_of_sale +#: view:pos.order:0 +msgid "Yesterday" +msgstr "昨日" + +#. module: point_of_sale +#: field:pos.order,note:0 +msgid "Internal Notes" +msgstr "内部注記" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.coca_zero_decaf_33cl_product_template +msgid "Coca-Cola Zero Decaf 33cl" +msgstr "コカコーラ ゼロ デカフェ 330ml" + +#. module: point_of_sale +#: view:pos.box.out:0 +msgid "Describe why you take money from the cash register:" +msgstr "キャッシュレジスタから現金取出をした理由を説明して下さい。" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_pos_order_all +#: model:ir.ui.menu,name:point_of_sale.menu_report_pos_order_all +#: view:report.pos.order:0 +msgid "Point of Sale Analysis" +msgstr "POS分析" + +#. module: point_of_sale +#: view:pos.order:0 field:pos.order,partner_id:0 view:report.pos.order:0 +msgid "Customer" +msgstr "顧客" + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "February" +msgstr "2月" + +#. module: point_of_sale +#: view:report.cash.register:0 +msgid " Today " +msgstr " 本日 " + +#. module: point_of_sale +#: selection:report.cash.register,month:0 selection:report.pos.order,month:0 +msgid "April" +msgstr "4月" + +#. module: point_of_sale +#: field:pos.order,statement_ids:0 +msgid "Payments" +msgstr "支払" + +#. module: point_of_sale +#: report:pos.invoice:0 +msgid "Supplier Refund" +msgstr "仕入先返金" + +#. module: point_of_sale +#: model:ir.actions.act_window,name:point_of_sale.action_report_sales_by_margin_pos_month +msgid "Sales by User Monthly margin" +msgstr "ユーザ月間利鞘別売上" + +#. module: point_of_sale +#: model:product.template,name:point_of_sale.leffe_9_33cl_product_template +msgid "Leffe Brune \"9\" 33cl" +msgstr "Leffe Brune 9 330ml" + +#. module: point_of_sale +#: help:account.journal,journal_user:0 +msgid "" +"Check this box if this journal define a payment method that can be used in " +"point of sales." +msgstr "この仕訳帳がPOSで使用する支払方法を定義している場合はこのボックスをチェックして下さい。" + +#. module: point_of_sale +#: field:pos.category,sequence:0 +msgid "Sequence" +msgstr "順序" + +#. module: point_of_sale +#: code:addons/point_of_sale/wizard/pos_return.py:316 view:pos.make.payment:0 +#, python-format +msgid "Make Payment" +msgstr "支払の作成" + +#. module: point_of_sale +#: constraint:pos.category:0 +msgid "Error ! You cannot create recursive categories." +msgstr "エラー:再帰カテゴリーを作成することはできません。" + +#. module: point_of_sale +#: model:ir.model,name:point_of_sale.model_pos_sales_user_today +msgid "Sales User Today" +msgstr "ユーザの本日売上" + +#. module: point_of_sale +#: view:report.pos.order:0 +msgid "Month of order date" +msgstr "オーダー日の月" + +#. module: point_of_sale +#: field:product.product,income_pdt:0 +msgid "PoS Cash Input" +msgstr "POS現金装填" + +#. module: point_of_sale +#: view:report.cash.register:0 field:report.cash.register,year:0 +#: view:report.pos.order:0 field:report.pos.order,year:0 +msgid "Year" +msgstr "年" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:31 +msgid "Disc (%)" +msgstr "割引(%)" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:41 +msgid "Subtotal:" +msgstr "小計:" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:45 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:268 +msgid "Tax:" +msgstr "税金:" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:64 +msgid "Disc" +msgstr "割引" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:71 +msgid "+/-" +msgstr "+ / -" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:105 +msgid "Paid:" +msgstr "支払済:" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:113 +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:288 +msgid "Change:" +msgstr "手数料:" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:124 +msgid "Back to Products" +msgstr "商品に戻る" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:127 +msgid "Validate" +msgstr "検証" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:140 +msgid "pending orders" +msgstr "保留中オーダー" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:145 +msgid "" +"There are pending operations that could not be saved into the database, are " +"you sure you want to exit?" +msgstr "データベースの保存することができなかった保留中の操作がありますが、本当に終了しますか?" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:236 +msgid "Print" +msgstr "印刷" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:238 +msgid "Next Order" +msgstr "次のオーダー" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:248 +msgid "Phone:" +msgstr "TEL:" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:249 +msgid "User:" +msgstr "ユーザ:" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:250 +msgid "Shop:" +msgstr "店:" diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml index a83aab01ca9..670e10feec2 100644 --- a/addons/point_of_sale/point_of_sale_view.xml +++ b/addons/point_of_sale/point_of_sale_view.xml @@ -17,16 +17,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="%(action_pos_payment)d" string="Payment" type="action" states="draft"/> <button name="%(action_report_pos_receipt)d" string="Reprint" type="action" states="paid,done,invoiced"/> <button name="refund" string="Return Products" type="object" attrs="{'invisible':[('state','=','draft')]}"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,paid,done" statusbar_colors='{"cancel":"red"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,paid,done" statusbar_colors='{"cancel":"red"}'/> + </header> <sheet string="PoS Orders" layout="auto"> <group col="7" colspan="4" class="oe_form_header"> <field name="name"/> diff --git a/addons/portal/i18n/ja.po b/addons/portal/i18n/ja.po new file mode 100644 index 00000000000..c085c7eaffb --- /dev/null +++ b/addons/portal/i18n/ja.po @@ -0,0 +1,407 @@ +# Japanese translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-08 02:58+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-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" + +#. module: portal +#: code:addons/portal/wizard/share_wizard.py:51 +#, python-format +msgid "Please select at least one user to share with" +msgstr "共有するためには少なくとも1ユーザと共有して下さい。" + +#. module: portal +#: code:addons/portal/wizard/share_wizard.py:55 +#, python-format +msgid "Please select at least one group to share with" +msgstr "共有するためには少なくとも1グループと共有して下さい。" + +#. module: portal +#: field:res.portal,group_id:0 +msgid "Group" +msgstr "グループ" + +#. module: portal +#: view:share.wizard:0 +#: field:share.wizard,group_ids:0 +msgid "Existing groups" +msgstr "既存のグループ" + +#. module: portal +#: model:ir.model,name:portal.model_res_portal_wizard_user +msgid "Portal User Config" +msgstr "ポータルユーザ設定" + +#. module: portal +#: view:res.portal.wizard.user:0 +msgid "Portal User" +msgstr "ポータルユーザ" + +#. module: portal +#: model:res.groups,comment:portal.group_portal_manager +msgid "" +"Portal managers have access to the portal definitions, and can easily " +"configure the users, access rights and menus of portal users." +msgstr "ポータルマネジャはポータル定義へアクセスして、ユーザ、アクセス権、ユーザのポータルメニューの設定を簡単にできます。" + +#. module: portal +#: help:res.portal,override_menu:0 +msgid "Enable this option to override the Menu Action of portal users" +msgstr "ポータルユーザのメニューアクションを無効にするためにはこのオプションを有効にします。" + +#. module: portal +#: field:res.portal.wizard.user,user_email:0 +msgid "E-mail" +msgstr "Eメール" + +#. module: portal +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "選択した会社は、このユーザに許された会社ではありません。" + +#. module: portal +#: view:res.portal:0 +#: field:res.portal,widget_ids:0 +msgid "Widgets" +msgstr "ウィジェット" + +#. module: portal +#: view:res.portal.wizard:0 +msgid "Send Invitations" +msgstr "招待の送信" + +#. module: portal +#: view:res.portal:0 +msgid "Widgets Assigned to Users" +msgstr "ユーザ割当ウィジット" + +#. module: portal +#: help:res.portal,url:0 +msgid "The url where portal users can connect to the server" +msgstr "ポータルユーザがサーバに接続できるURL" + +#. module: portal +#: model:res.groups,comment:portal.group_portal_officer +msgid "Portal officers can create new portal users with the portal wizard." +msgstr "ポータル役員はポータルウィザードを使って新しいポータルユーザを作成できます。" + +#. module: portal +#: help:res.portal.wizard,message:0 +msgid "This text is included in the welcome email sent to the users" +msgstr "このテキストはユーザに送信される歓迎Eメールに含まれます。" + +#. module: portal +#: help:res.portal,menu_action_id:0 +msgid "If set, replaces the standard menu for the portal's users" +msgstr "セットした場合、ポータルユーザのための標準メニューを置き換えます。" + +#. module: portal +#: field:res.portal.wizard.user,lang:0 +msgid "Language" +msgstr "言語" + +#. module: portal +#: view:res.portal:0 +msgid "Portal Name" +msgstr "ポータル名" + +#. module: portal +#: view:res.portal.wizard.user:0 +msgid "Portal Users" +msgstr "ポータルユーザ" + +#. module: portal +#: field:res.portal,override_menu:0 +msgid "Override Menu Action of Users" +msgstr "ユーザのメニューアクションの無効化" + +#. module: portal +#: field:res.portal,menu_action_id:0 +msgid "Menu Action" +msgstr "メニューアクション" + +#. module: portal +#: field:res.portal.wizard.user,name:0 +msgid "User Name" +msgstr "ユーザ名" + +#. module: portal +#: help:res.portal,group_id:0 +msgid "The group corresponding to this portal" +msgstr "このポータルに対応するグループ" + +#. module: portal +#: model:ir.model,name:portal.model_res_portal_widget +msgid "Portal Widgets" +msgstr "ポータルウィジット" + +#. module: portal +#: model:ir.model,name:portal.model_res_portal +#: model:ir.module.category,name:portal.module_category_portal +#: view:res.portal:0 +#: field:res.portal.widget,portal_id:0 +#: field:res.portal.wizard,portal_id:0 +msgid "Portal" +msgstr "ポータル" + +#. module: portal +#: code:addons/portal/wizard/portal_wizard.py:35 +#, python-format +msgid "Your OpenERP account at %(company)s" +msgstr "%(company)s 上のあなたのOpenERPアカウント" + +#. module: portal +#: code:addons/portal/portal.py:107 +#: code:addons/portal/portal.py:184 +#, python-format +msgid "%s Menu" +msgstr "%s メニュー" + +#. module: portal +#: help:res.portal.wizard,portal_id:0 +msgid "The portal in which new users must be added" +msgstr "新しいユーザを追加すべきポータル" + +#. module: portal +#: model:ir.model,name:portal.model_res_portal_wizard +msgid "Portal Wizard" +msgstr "ポータルウィザード" + +#. module: portal +#: help:res.portal,widget_ids:0 +msgid "Widgets assigned to portal users" +msgstr "ポータルユーザ割当ウィザード" + +#. module: portal +#: code:addons/portal/wizard/portal_wizard.py:163 +#, python-format +msgid "(missing url)" +msgstr "(不足しているURL)" + +#. module: portal +#: view:share.wizard:0 +#: field:share.wizard,user_ids:0 +msgid "Existing users" +msgstr "既存ユーザ" + +#. module: portal +#: field:res.portal.wizard.user,wizard_id:0 +msgid "Wizard" +msgstr "ウィザード" + +#. module: portal +#: help:res.portal.wizard.user,user_email:0 +msgid "" +"Will be used as user login. Also necessary to send the account information " +"to new users" +msgstr "ユーザログインとして使用されます。新しいユーザへのアカウント情報を送信するためにも必要です。" + +#. module: portal +#: field:res.portal,parent_menu_id:0 +msgid "Parent Menu" +msgstr "親メニュー" + +#. module: portal +#: field:res.portal,url:0 +msgid "URL" +msgstr "URL" + +#. module: portal +#: field:res.portal.widget,widget_id:0 +msgid "Widget" +msgstr "ウィジット" + +#. module: portal +#: help:res.portal.wizard.user,lang:0 +msgid "The language for the user's user interface" +msgstr "ユーザのユーザインタフェースのための言語" + +#. module: portal +#: view:res.portal.wizard:0 +msgid "Cancel" +msgstr "キャンセル" + +#. module: portal +#: view:res.portal:0 +msgid "Website" +msgstr "Webサイト" + +#. module: portal +#: view:res.portal:0 +msgid "Create Parent Menu" +msgstr "親メニュー作成" + +#. module: portal +#: view:res.portal.wizard:0 +msgid "" +"The following text will be included in the welcome email sent to users." +msgstr "次のテキストはユーザに送信する歓迎Eメールに含まれます。" + +#. module: portal +#: code:addons/portal/wizard/portal_wizard.py:135 +#, python-format +msgid "Email required" +msgstr "Eメールは必須" + +#. module: portal +#: model:ir.model,name:portal.model_res_users +msgid "res.users" +msgstr "" + +#. module: portal +#: constraint:res.portal.wizard.user:0 +msgid "Invalid email address" +msgstr "無効なEメールアドレスです。" + +#. module: portal +#: code:addons/portal/wizard/portal_wizard.py:136 +#, python-format +msgid "" +"You must have an email address in your User Preferences to send emails." +msgstr "Eメール送信のためのユーザ設定の中にEメールアドレスを持つ必要があります。" + +#. module: portal +#: model:ir.model,name:portal.model_ir_ui_menu +msgid "ir.ui.menu" +msgstr "" + +#. module: portal +#: view:res.portal:0 +#: view:res.portal.wizard:0 +#: field:res.portal.wizard,user_ids:0 +msgid "Users" +msgstr "ユーザ" + +#. module: portal +#: model:ir.actions.act_window,name:portal.portal_list_action +#: model:ir.ui.menu,name:portal.portal_list_menu +#: model:ir.ui.menu,name:portal.portal_menu +#: view:res.portal:0 +msgid "Portals" +msgstr "ポータル" + +#. module: portal +#: help:res.portal,parent_menu_id:0 +msgid "The menu action opens the submenus of this menu item" +msgstr "メニューアクションはこのメニュー項目のサブメニューを開きます。" + +#. module: portal +#: field:res.portal.widget,sequence:0 +msgid "Sequence" +msgstr "順序" + +#. module: portal +#: field:res.users,partner_id:0 +msgid "Related Partner" +msgstr "関連パートナ" + +#. module: portal +#: view:res.portal:0 +msgid "Portal Menu" +msgstr "ポータルメニュー" + +#. module: portal +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "同じログインでは2つのユーザを持てません。" + +#. module: portal +#: view:res.portal.wizard:0 +#: field:res.portal.wizard,message:0 +msgid "Invitation message" +msgstr "招待メッセージ" + +#. module: portal +#: code:addons/portal/wizard/portal_wizard.py:36 +#, python-format +msgid "" +"Dear %(name)s,\n" +"\n" +"You have been created an OpenERP account at %(url)s.\n" +"\n" +"Your login account data is:\n" +"Database: %(db)s\n" +"User: %(login)s\n" +"Password: %(password)s\n" +"\n" +"%(message)s\n" +"\n" +"--\n" +"OpenERP - Open Source Business Applications\n" +"http://www.openerp.com\n" +msgstr "" +"%(name)s 様、\n" +"\n" +"あなたのOpenERPアカウントは作成されました。%(url)s\n" +"\n" +"あなたのログイン情報は次のとおりです:\n" +"データベース:%(db)s\n" +"ユーザ:%(login)s\n" +"パスワード:%(password)s\n" +"\n" +"%(message)s\n" +"\n" +"--\n" +"OpenERP - Open Source Business Applications\n" +"http://www.openerp.com\n" + +#. module: portal +#: model:res.groups,name:portal.group_portal_manager +msgid "Manager" +msgstr "マネジャ" + +#. module: portal +#: help:res.portal.wizard.user,name:0 +msgid "The user's real name" +msgstr "ユーザの本名" + +#. module: portal +#: model:ir.actions.act_window,name:portal.address_wizard_action +#: model:ir.actions.act_window,name:portal.partner_wizard_action +#: view:res.portal.wizard:0 +msgid "Add Portal Access" +msgstr "ポータルアクセスの追加" + +#. module: portal +#: field:res.portal.wizard.user,partner_id:0 +msgid "Partner" +msgstr "パートナ" + +#. module: portal +#: model:ir.actions.act_window,help:portal.portal_list_action +msgid "" +"\n" +"A portal helps defining specific views and rules for a group of users (the\n" +"portal group). A portal menu, widgets and specific groups may be assigned " +"to\n" +"the portal's users.\n" +" " +msgstr "" +"\n" +"ポータルはユーザのグループ(ポータルグループ)のために特定のビューやルールの\n" +"定義ができます。ポータルメニュー、ウィジット、特定のグループはポータルユーザに\n" +"割り当てることができます。\n" +" " + +#. module: portal +#: model:ir.model,name:portal.model_share_wizard +msgid "Share Wizard" +msgstr "共有ウィザード" + +#. module: portal +#: model:res.groups,name:portal.group_portal_officer +msgid "Officer" +msgstr "役員" diff --git a/addons/process/i18n/ja.po b/addons/process/i18n/ja.po new file mode 100644 index 00000000000..fbb68f8de5b --- /dev/null +++ b/addons/process/i18n/ja.po @@ -0,0 +1,313 @@ +# Japanese translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-06-01 23:37+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-03 04:47+0000\n" +"X-Generator: Launchpad (build 15342)\n" + +#. module: process +#: model:ir.model,name:process.model_process_node +#: view:process.node:0 +#: view:process.process:0 +msgid "Process Node" +msgstr "処理ノード" + +#. module: process +#: help:process.process,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the process " +"without removing it." +msgstr "アクティブ項目にFalseを設定すると、処理を削除することなく非表示にできます。" + +#. module: process +#: field:process.node,menu_id:0 +msgid "Related Menu" +msgstr "関連メニュー" + +#. module: process +#: field:process.transition,action_ids:0 +msgid "Buttons" +msgstr "ボタン" + +#. module: process +#: view:process.node:0 +#: view:process.process:0 +msgid "Group By..." +msgstr "グループ化…" + +#. module: process +#: selection:process.node,kind:0 +msgid "State" +msgstr "状態" + +#. module: process +#: view:process.node:0 +msgid "Kind Of Node" +msgstr "ノードの種類" + +#. module: process +#: field:process.node,help_url:0 +msgid "Help URL" +msgstr "ヘルプURL" + +#. module: process +#: model:ir.actions.act_window,name:process.action_process_node_form +#: model:ir.ui.menu,name:process.menu_process_node_form +#: view:process.node:0 +#: view:process.process:0 +msgid "Process Nodes" +msgstr "処理ノード" + +#. module: process +#: view:process.process:0 +#: field:process.process,node_ids:0 +msgid "Nodes" +msgstr "ノード" + +#. module: process +#: view:process.node:0 +#: field:process.node,condition_ids:0 +#: view:process.process:0 +msgid "Conditions" +msgstr "条件" + +#. module: process +#: view:process.transition:0 +msgid "Search Process Transition" +msgstr "処理遷移の検索" + +#. module: process +#: field:process.condition,node_id:0 +msgid "Node" +msgstr "ノード" + +#. module: process +#: selection:process.transition.action,state:0 +msgid "Workflow Trigger" +msgstr "ワークフロートリガー" + +#. module: process +#: field:process.transition,note:0 +msgid "Description" +msgstr "説明" + +#. module: process +#: model:ir.model,name:process.model_process_transition_action +msgid "Process Transitions Actions" +msgstr "処理遷移アクション" + +#. module: process +#: field:process.condition,model_id:0 +#: view:process.node:0 +#: field:process.node,model_id:0 +#: view:process.process:0 +#: field:process.process,model_id:0 +msgid "Object" +msgstr "オブジェクト" + +#. module: process +#: field:process.transition,source_node_id:0 +msgid "Source Node" +msgstr "元ノード" + +#. module: process +#: view:process.transition:0 +#: field:process.transition,transition_ids:0 +msgid "Workflow Transitions" +msgstr "ワークフロー遷移" + +#. module: process +#: field:process.transition.action,action:0 +msgid "Action ID" +msgstr "アクションID" + +#. module: process +#: model:ir.model,name:process.model_process_transition +#: view:process.transition:0 +msgid "Process Transition" +msgstr "処理遷移" + +#. module: process +#: model:ir.model,name:process.model_process_condition +msgid "Condition" +msgstr "条件" + +#. module: process +#: selection:process.transition.action,state:0 +msgid "Dummy" +msgstr "ダミー" + +#. module: process +#: model:ir.actions.act_window,name:process.action_process_form +#: model:ir.ui.menu,name:process.menu_process_form +msgid "Processes" +msgstr "処理" + +#. module: process +#: field:process.condition,name:0 +#: field:process.node,name:0 +#: field:process.process,name:0 +#: field:process.transition,name:0 +#: field:process.transition.action,name:0 +msgid "Name" +msgstr "名前" + +#. module: process +#: field:process.node,transition_in:0 +msgid "Starting Transitions" +msgstr "遷移の始点" + +#. module: process +#: view:process.node:0 +#: field:process.node,note:0 +#: view:process.process:0 +#: field:process.process,note:0 +#: view:process.transition:0 +msgid "Notes" +msgstr "注記" + +#. module: process +#: field:process.transition.action,transition_id:0 +msgid "Transition" +msgstr "遷移" + +#. module: process +#: view:process.process:0 +msgid "Search Process" +msgstr "処理検索" + +#. module: process +#: selection:process.node,kind:0 +#: field:process.node,subflow_id:0 +msgid "Subflow" +msgstr "サブフロー" + +#. module: process +#: field:process.process,active:0 +msgid "Active" +msgstr "アクティブ" + +#. module: process +#: view:process.transition:0 +msgid "Associated Groups" +msgstr "関連グループ" + +#. module: process +#: field:process.node,model_states:0 +msgid "States Expression" +msgstr "状態式" + +#. module: process +#: selection:process.transition.action,state:0 +msgid "Action" +msgstr "アクション" + +#. module: process +#: field:process.node,flow_start:0 +msgid "Starting Flow" +msgstr "開始フロー" + +#. module: process +#: field:process.condition,model_states:0 +msgid "Expression" +msgstr "式" + +#. module: process +#: field:process.transition,group_ids:0 +msgid "Required Groups" +msgstr "グループは必須" + +#. module: process +#: view:process.node:0 +#: view:process.process:0 +msgid "Incoming Transitions" +msgstr "内向き遷移" + +#. module: process +#: field:process.transition.action,state:0 +msgid "Type" +msgstr "タイプ" + +#. module: process +#: field:process.node,transition_out:0 +msgid "Ending Transitions" +msgstr "遷移の終点" + +#. module: process +#: model:ir.model,name:process.model_process_process +#: field:process.node,process_id:0 +#: view:process.process:0 +msgid "Process" +msgstr "処理" + +#. module: process +#: view:process.node:0 +msgid "Search ProcessNode" +msgstr "処理ノード検索" + +#. module: process +#: view:process.node:0 +#: view:process.process:0 +msgid "Other Conditions" +msgstr "他の条件" + +#. module: process +#: model:ir.ui.menu,name:process.menu_process +msgid "Enterprise Process" +msgstr "企業の処理" + +#. module: process +#: view:process.transition:0 +msgid "Actions" +msgstr "アクション" + +#. module: process +#: view:process.node:0 +#: view:process.process:0 +msgid "Properties" +msgstr "属性" + +#. module: process +#: model:ir.actions.act_window,name:process.action_process_transition_form +#: model:ir.ui.menu,name:process.menu_process_transition_form +msgid "Process Transitions" +msgstr "処理遷移" + +#. module: process +#: field:process.transition,target_node_id:0 +msgid "Target Node" +msgstr "対象ノード" + +#. module: process +#: field:process.node,kind:0 +msgid "Kind of Node" +msgstr "ノードの種類" + +#. module: process +#: view:process.node:0 +#: view:process.process:0 +msgid "Outgoing Transitions" +msgstr "外向き遷移" + +#. module: process +#: view:process.node:0 +#: view:process.process:0 +msgid "Transitions" +msgstr "遷移" + +#. module: process +#: selection:process.transition.action,state:0 +msgid "Object Method" +msgstr "オブジェクトメソッド" diff --git a/addons/procurement/i18n/ja.po b/addons/procurement/i18n/ja.po new file mode 100644 index 00000000000..5689fe498e9 --- /dev/null +++ b/addons/procurement/i18n/ja.po @@ -0,0 +1,1001 @@ +# Japanese 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-08 03:00+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-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" + +#. module: procurement +#: view:make.procurement:0 +msgid "Ask New Products" +msgstr "新製品を求める" + +#. module: procurement +#: model:ir.ui.menu,name:procurement.menu_stock_sched +msgid "Schedulers" +msgstr "スケジュール" + +#. module: procurement +#: model:ir.model,name:procurement.model_make_procurement +msgid "Make Procurements" +msgstr "調達の作成" + +#. module: procurement +#: help:procurement.order.compute.all,automatic:0 +msgid "" +"Triggers an automatic procurement for all products that have a virtual stock " +"under 0. You should probably not use this option, we suggest using a MTO " +"configuration on products." +msgstr "" +"実質上の在庫が0未満である全製品のために自動調達のトリガーです。恐らくこのオプションは使用すべきではありません。製品のMTO(make to " +"order:受注生産)設定を使用することを推奨します。" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Group By..." +msgstr "グループ化…" + +#. module: procurement +#: help:stock.warehouse.orderpoint,procurement_draft_ids:0 +msgid "Draft procurement of the product and location of that orderpoint" +msgstr "ドラフトの製品の調達とその発注点の場所" + +#. module: procurement +#: code:addons/procurement/procurement.py:291 +#, python-format +msgid "No supplier defined for this product !" +msgstr "この製品には仕入先が定義されていません。" + +#. module: procurement +#: field:make.procurement,uom_id:0 +msgid "Unit of Measure" +msgstr "単位" + +#. module: procurement +#: field:procurement.order,procure_method:0 +msgid "Procurement Method" +msgstr "調達方法" + +#. module: procurement +#: code:addons/procurement/procurement.py:307 +#, python-format +msgid "No address defined for the supplier" +msgstr "仕入先の住所が定義されていません。" + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.action_procurement_compute +msgid "Compute Stock Minimum Rules Only" +msgstr "在庫最小ルールのみ計算" + +#. module: procurement +#: view:procurement.order:0 +msgid "Temporary Procurement Exceptions" +msgstr "一時的な調達例外" + +#. module: procurement +#: field:procurement.order,company_id:0 +#: field:stock.warehouse.orderpoint,company_id:0 +msgid "Company" +msgstr "会社" + +#. module: procurement +#: field:procurement.order,product_uos_qty:0 +msgid "UoS Quantity" +msgstr "販売単位の数量" + +#. module: procurement +#: view:procurement.order:0 +#: field:procurement.order,name:0 +msgid "Reason" +msgstr "理由" + +#. module: procurement +#: view:procurement.order.compute:0 +msgid "Compute Procurements" +msgstr "調達計算" + +#. module: procurement +#: field:procurement.order,message:0 +msgid "Latest error" +msgstr "最新のエラー" + +#. module: procurement +#: help:mrp.property,composition:0 +msgid "Not used in computations, for information purpose only." +msgstr "情報目的のみであるため、計算には使用されません。" + +#. module: procurement +#: field:stock.warehouse.orderpoint,procurement_id:0 +msgid "Latest procurement" +msgstr "最新の調達" + +#. module: procurement +#: view:procurement.order:0 +msgid "Notes" +msgstr "注記" + +#. module: procurement +#: selection:procurement.order,procure_method:0 +msgid "on order" +msgstr "オーダー中" + +#. module: procurement +#: help:procurement.order,message:0 +msgid "Exception occurred while computing procurement orders." +msgstr "調達オーダーの計算中に例外が発生しました。" + +#. module: procurement +#: help:procurement.order,state:0 +msgid "" +"When a procurement is created the state is set to 'Draft'.\n" +" If the procurement is confirmed, the state is set to 'Confirmed'. " +" \n" +"After confirming the state is set to 'Running'.\n" +" If any exception arises in the order then the state is set to 'Exception'.\n" +" Once the exception is removed the state becomes 'Ready'.\n" +" It is in 'Waiting'. state when the procurement is waiting for another one " +"to finish." +msgstr "" +"調達が生成されると、状態はドラフトにセットされます。\n" +" 調達が確認されると、状態は確認済にセットされます。\n" +"確認の後に状態は実行中にセットされます。 \n" +" オーダーで何らかの例外が発生すると、状態は例外にセットされます。\n" +" 例外が取り除かれると、状態は準備完了になります。\n" +" 調達が他の調達の完了を待っている時は、待機中の状態になります。" + +#. module: procurement +#: view:procurement.order:0 +msgid "Permanent Procurement Exceptions" +msgstr "継続する調達の例外" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Minimum Stock Rules Search" +msgstr "最小在庫ルールの検索" + +#. module: procurement +#: view:procurement.order.compute.all:0 +msgid "Scheduler Parameters" +msgstr "スケジューラのパラメータ" + +#. module: procurement +#: model:ir.model,name:procurement.model_stock_move +msgid "Stock Move" +msgstr "在庫移動" + +#. module: procurement +#: model:ir.model,name:procurement.model_procurement_order_compute_all +msgid "Compute all schedulers" +msgstr "全スケジュールを計算" + +#. module: procurement +#: view:procurement.order:0 +msgid "Planification" +msgstr "計画化" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Ready" +msgstr "準備完了" + +#. module: procurement +#: field:procurement.order.compute.all,automatic:0 +msgid "Automatic orderpoint" +msgstr "自動発注点" + +#. module: procurement +#: code:addons/procurement/schedulers.py:123 +#, python-format +msgid "" +"Here is the procurement scheduling report.\n" +"\n" +" Start Time: %s \n" +" End Time: %s \n" +" Total Procurements processed: %d \n" +" Procurements with exceptions: %d \n" +" Skipped Procurements (scheduled date outside of scheduler range) %d " +"\n" +"\n" +" Exceptions:\n" +msgstr "" +"これは調達スケジュールレポートです。\n" +"\n" +" 開始時間:%s \n" +" 終了時間:%s \n" +" 合計調達処理:%d \n" +" 調達の例外:%d \n" +" スキップした調達(スケジューラーの範囲外の予定日):%d \n" +"\n" +" 例外:\n" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Confirmed" +msgstr "確認済" + +#. module: procurement +#: view:procurement.order:0 +msgid "Retry" +msgstr "再試行" + +#. module: procurement +#: help:stock.warehouse.orderpoint,product_max_qty:0 +msgid "" +"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." +msgstr "実質上の在庫が最小数量を下回った時に、OpenERPは最大数量として定義された数量まで実質上の在庫を持ってくるために調達を生成します。" + +#. module: procurement +#: view:procurement.order.compute:0 +#: view:procurement.orderpoint.compute:0 +msgid "Parameters" +msgstr "パラメータ" + +#. module: procurement +#: view:procurement.order:0 +msgid "Confirm" +msgstr "確認" + +#. module: procurement +#: help:procurement.order,origin:0 +msgid "" +"Reference of the document that created this Procurement.\n" +"This is automatically completed by OpenERP." +msgstr "" +"この調達を作成したドキュメントへの参照です。\n" +"これはOpenERPによって自動的に完了します。" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Procurement Orders to Process" +msgstr "調達オーダーの処理" + +#. module: procurement +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "エラー。再帰的な関係となる会社を作ることはできません。" + +#. module: procurement +#: code:addons/procurement/procurement.py:386 +#, python-format +msgid "Procurement '%s' is in exception: " +msgstr "調達 %s は例外です: " + +#. module: procurement +#: field:procurement.order,priority:0 +msgid "Priority" +msgstr "優先度" + +#. module: procurement +#: view:procurement.order:0 +#: field:procurement.order,state:0 +msgid "State" +msgstr "状態" + +#. module: procurement +#: field:procurement.order,location_id:0 +#: view:stock.warehouse.orderpoint:0 +#: field:stock.warehouse.orderpoint,location_id:0 +msgid "Location" +msgstr "場所" + +#. module: procurement +#: model:ir.model,name:procurement.model_stock_picking +msgid "Picking List" +msgstr "集荷リスト" + +#. module: procurement +#: field:make.procurement,warehouse_id:0 +#: view:stock.warehouse.orderpoint:0 +#: field:stock.warehouse.orderpoint,warehouse_id:0 +msgid "Warehouse" +msgstr "倉庫" + +#. module: procurement +#: selection:stock.warehouse.orderpoint,logic:0 +msgid "Best price (not yet active!)" +msgstr "最良価格(まだアクティブでない)" + +#. module: procurement +#: code:addons/procurement/schedulers.py:111 +#, python-format +msgid "PROC %d: from stock - %3.2f %-5s - %s" +msgstr "調達 %d: 元在庫 - %3.2f %-5s - %s" + +#. module: procurement +#: view:procurement.order:0 +msgid "Product & Location" +msgstr "製品と場所" + +#. module: procurement +#: model:ir.model,name:procurement.model_procurement_order_compute +msgid "Compute Procurement" +msgstr "調達計算" + +#. module: procurement +#: field:stock.move,procurements:0 +msgid "Procurements" +msgstr "調達" + +#. module: procurement +#: field:res.company,schedule_range:0 +msgid "Scheduler Range Days" +msgstr "スケジューラ範囲日数" + +#. module: procurement +#: model:ir.actions.act_window,help:procurement.procurement_action +msgid "" +"A procurement order is used to record a need for a specific product at a " +"specific location. A procurement order is usually created automatically from " +"sales orders, a Pull Logistics rule or Minimum Stock Rules. When the " +"procurement order is confirmed, it automatically creates the necessary " +"operations to fullfil the need: purchase order proposition, manufacturing " +"order, etc." +msgstr "" +"調達オーダーは特定の場所で特定の製品のためのニーズを記録するために使われます。調達オーダーは通常、受注オーダー、プル型物流ルールまたは最小在庫ルールから自" +"動的に作成されます。調達オーダーが確認された時、ニーズを埋めるために必要な操作を自動的に作成します:発注オーダーの提案、製造オーダーなど。" + +#. module: procurement +#: field:make.procurement,date_planned:0 +msgid "Planned Date" +msgstr "予定日" + +#. module: procurement +#: view:procurement.order:0 +msgid "Group By" +msgstr "グループ化" + +#. module: procurement +#: field:make.procurement,qty:0 +#: field:procurement.order,product_qty:0 +msgid "Quantity" +msgstr "数量" + +#. module: procurement +#: code:addons/procurement/procurement.py:379 +#, python-format +msgid "Not enough stock and no minimum orderpoint rule defined." +msgstr "十分な在庫がなく、かつ最小発注点ルールが定義されていません。" + +#. module: procurement +#: code:addons/procurement/procurement.py:137 +#, python-format +msgid "Invalid action !" +msgstr "無効なアクションです。" + +#. module: procurement +#: view:procurement.order:0 +msgid "References" +msgstr "参照" + +#. module: procurement +#: view:product.product:0 +#: field:product.product,orderpoint_ids:0 +msgid "Minimum Stock Rule" +msgstr "最小在庫ルール" + +#. module: procurement +#: view:res.company:0 +msgid "Configuration" +msgstr "設定" + +#. module: procurement +#: code:addons/procurement/procurement.py:328 +#, python-format +msgid "" +"Please check the quantity in procurement order(s), it should not be 0 or " +"less!" +msgstr "調達オーダーの数量をチェックして下さい。0やそれ以下であってはなりません。" + +#. module: procurement +#: help:procurement.order,procure_method:0 +msgid "" +"If you encode manually a Procurement, you probably want to use a make to " +"order method." +msgstr "調達を手動で作成する場合、あなたは恐らくオーダー方法のための型を使うことを望むでしょう。" + +#. module: procurement +#: model:ir.ui.menu,name:procurement.menu_stock_procurement +msgid "Automatic Procurements" +msgstr "自動調達" + +#. module: procurement +#: field:stock.warehouse.orderpoint,product_max_qty:0 +msgid "Max Quantity" +msgstr "最大数量" + +#. module: procurement +#: model:ir.model,name:procurement.model_procurement_order +#: model:process.process,name:procurement.process_process_procurementprocess0 +#: view:procurement.order:0 +msgid "Procurement" +msgstr "調達" + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.procurement_action +msgid "Procurement Orders" +msgstr "調達オーダー" + +#. module: procurement +#: view:procurement.order:0 +msgid "To Fix" +msgstr "修正" + +#. module: procurement +#: view:procurement.order:0 +msgid "Exceptions" +msgstr "例外" + +#. module: procurement +#: model:process.node,note:procurement.process_node_serviceonorder0 +msgid "Assignment from Production or Purchase Order." +msgstr "製造または発注オーダーから割り当てます。" + +#. module: procurement +#: model:ir.model,name:procurement.model_mrp_property +msgid "Property" +msgstr "属性" + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.act_make_procurement +#: view:make.procurement:0 +msgid "Procurement Request" +msgstr "調達要求" + +#. module: procurement +#: view:procurement.orderpoint.compute:0 +msgid "Compute Stock" +msgstr "在庫計算" + +#. module: procurement +#: help:stock.warehouse.orderpoint,product_min_qty:0 +msgid "" +"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." +msgstr "" +"実質上の在庫がこの項目のために定義された最小数量を下回った時に、OpenERPは最大数量まで実質上の在庫を持ってくるために調達を生成します。" + +#. module: procurement +#: model:process.process,name:procurement.process_process_serviceproductprocess0 +msgid "Service" +msgstr "サービス" + +#. module: procurement +#: field:stock.warehouse.orderpoint,procurement_draft_ids:0 +msgid "Related Procurement Orders" +msgstr "関連する調達オーダー" + +#. module: procurement +#: view:procurement.orderpoint.compute:0 +msgid "" +"Wizard checks all the stock minimum rules and generate procurement order." +msgstr "ウィザードは全ての在庫最小ルールをチェックし調達オーダーを生成します。" + +#. module: procurement +#: field:stock.warehouse.orderpoint,product_min_qty:0 +msgid "Min Quantity" +msgstr "最小数量" + +#. module: procurement +#: selection:procurement.order,priority:0 +msgid "Urgent" +msgstr "緊急" + +#. module: procurement +#: selection:mrp.property,composition:0 +msgid "plus" +msgstr "+" + +#. module: procurement +#: constraint:stock.move:0 +msgid "You can not move products from or to a location of the type view." +msgstr "タイプビューの場所から、あるいは場所へは製品を動かすことはできません。" + +#. module: procurement +#: help:stock.warehouse.orderpoint,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the " +"orderpoint without removing it." +msgstr "アクティブな項目がFalseにセットされている場合は、発注点を削除することなく非表示にできます。" + +#. module: procurement +#: help:procurement.orderpoint.compute,automatic:0 +msgid "If the stock of a product is under 0, it will act like an orderpoint" +msgstr "製品の在庫が0未満の時は、それは発注点のように動作します。" + +#. module: procurement +#: view:procurement.order:0 +msgid "Procurement Lines" +msgstr "調達行" + +#. module: procurement +#: view:procurement.order.compute.all:0 +msgid "" +"This wizard allows you to run all procurement, production and/or purchase " +"orders that should be processed based on their configuration. By default, " +"the scheduler is launched automatically every night by OpenERP. You can use " +"this menu to force it to be launched now. Note that it runs in the " +"background, you may have to wait for a few minutes until it has finished " +"computing." +msgstr "" +"このウィザードはそれらの設定に基づき実行されるべき全ての調達、製造や発注オーダーを実行することができます。デフォルトでは、スケジューラはOpenERPによ" +"って毎夜自動的に起動されます。このメニューを使えば、強制的に今、起動することができます。ただ、それはバックグラウンドで実行されるので、計算が終わるまで数分" +"待たされるかもしれません。" + +#. module: procurement +#: view:procurement.order:0 +#: field:procurement.order,note:0 +msgid "Note" +msgstr "注記" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Draft" +msgstr "ドラフト" + +#. module: procurement +#: view:procurement.order.compute:0 +msgid "This wizard will schedule procurements." +msgstr "ウィザードは調達をスケジュールします。" + +#. module: procurement +#: view:procurement.order:0 +msgid "Status" +msgstr "状態" + +#. module: procurement +#: selection:procurement.order,priority:0 +msgid "Normal" +msgstr "通常" + +#. module: procurement +#: constraint:stock.move:0 +msgid "You try to assign a lot which is not from the same product" +msgstr "違う製品のロットを割り当てることはできません。" + +#. module: procurement +#: code:addons/procurement/procurement.py:383 +#, python-format +msgid "Not enough stock." +msgstr "十分な在庫ではありません。" + +#. module: procurement +#: field:stock.warehouse.orderpoint,active:0 +msgid "Active" +msgstr "アクティブ" + +#. module: procurement +#: model:process.node,name:procurement.process_node_procureproducts0 +msgid "Procure Products" +msgstr "調達製品" + +#. module: procurement +#: field:procurement.order,date_planned:0 +msgid "Scheduled date" +msgstr "予定日" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Exception" +msgstr "例外" + +#. module: procurement +#: code:addons/procurement/procurement.py:381 +#, python-format +msgid "No minimum orderpoint rule defined." +msgstr "最小発注点ルールが定義されていません。" + +#. module: procurement +#: code:addons/procurement/schedulers.py:151 +#, python-format +msgid "Automatic OP: %s" +msgstr "自動発注点:%s" + +#. module: procurement +#: model:ir.model,name:procurement.model_procurement_orderpoint_compute +msgid "Automatic Order Point" +msgstr "自動発注点" + +#. module: procurement +#: model:ir.model,name:procurement.model_stock_warehouse_orderpoint +msgid "Minimum Inventory Rule" +msgstr "最小在庫ルール" + +#. module: procurement +#: help:stock.warehouse.orderpoint,qty_multiple:0 +msgid "The procurement quantity will be rounded up to this multiple." +msgstr "調達数量はこの倍数に切り上げされます。" + +#. module: procurement +#: model:ir.model,name:procurement.model_res_company +msgid "Companies" +msgstr "会社" + +#. module: procurement +#: view:procurement.order:0 +msgid "Extra Information" +msgstr "追加情報" + +#. module: procurement +#: help:procurement.order,name:0 +msgid "Procurement name." +msgstr "調達名" + +#. module: procurement +#: constraint:stock.move:0 +msgid "You must assign a production lot for this product" +msgstr "この製品に製造ロットを割り当てる必要があります。" + +#. module: procurement +#: view:procurement.order:0 +msgid "Procurement Reason" +msgstr "調達理由" + +#. module: procurement +#: sql_constraint:stock.warehouse.orderpoint:0 +msgid "Qty Multiple must be greater than zero." +msgstr "数量倍数は0より大きい必要があります。" + +#. module: procurement +#: selection:stock.warehouse.orderpoint,logic:0 +msgid "Order to Max" +msgstr "最大まで発注" + +#. module: procurement +#: sql_constraint:stock.picking:0 +msgid "Reference must be unique per Company!" +msgstr "参照は会社ごとに固有でなければいけません。" + +#. module: procurement +#: field:procurement.order,date_close:0 +msgid "Date Closed" +msgstr "終了日" + +#. module: procurement +#: field:mrp.property,composition:0 +msgid "Properties composition" +msgstr "属性の構成" + +#. module: procurement +#: code:addons/procurement/procurement.py:327 +#, python-format +msgid "Data Insufficient !" +msgstr "データが不足しています。" + +#. module: procurement +#: model:ir.model,name:procurement.model_mrp_property_group +#: field:mrp.property,group_id:0 +#: field:mrp.property.group,name:0 +msgid "Property Group" +msgstr "属性グループ" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Misc" +msgstr "その他" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Locations" +msgstr "場所" + +#. module: procurement +#: selection:procurement.order,procure_method:0 +msgid "from stock" +msgstr "在庫から" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "General Information" +msgstr "一般情報" + +#. module: procurement +#: view:procurement.order:0 +msgid "Run Procurement" +msgstr "調達実行" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Done" +msgstr "完了" + +#. module: procurement +#: view:make.procurement:0 +#: view:procurement.order:0 +#: selection:procurement.order,state:0 +#: view:procurement.order.compute:0 +#: view:procurement.order.compute.all:0 +#: view:procurement.orderpoint.compute:0 +msgid "Cancel" +msgstr "キャンセル" + +#. module: procurement +#: field:stock.warehouse.orderpoint,logic:0 +msgid "Reordering Mode" +msgstr "再オーダーのモード" + +#. module: procurement +#: field:procurement.order,origin:0 +msgid "Source Document" +msgstr "基となるドキュメント" + +#. module: procurement +#: selection:procurement.order,priority:0 +msgid "Not urgent" +msgstr "緊急外" + +#. module: procurement +#: code:addons/procurement/procurement.py:297 +#, python-format +msgid "No default supplier defined for this product" +msgstr "この製品には仕入先が定義されていません。" + +#. module: procurement +#: view:procurement.order:0 +msgid "Late" +msgstr "遅延" + +#. module: procurement +#: view:board.board:0 +msgid "Procurements in Exception" +msgstr "調達の例外" + +#. module: procurement +#: view:procurement.order:0 +msgid "Details" +msgstr "詳細" + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.procurement_action5 +#: model:ir.actions.act_window,name:procurement.procurement_action_board +#: model:ir.actions.act_window,name:procurement.procurement_exceptions +#: model:ir.ui.menu,name:procurement.menu_stock_procurement_action +#: view:procurement.order:0 +msgid "Procurement Exceptions" +msgstr "調達の例外" + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.act_procurement_2_stock_warehouse_orderpoint +#: model:ir.actions.act_window,name:procurement.act_product_product_2_stock_warehouse_orderpoint +#: model:ir.actions.act_window,name:procurement.act_stock_warehouse_2_stock_warehouse_orderpoint +#: model:ir.actions.act_window,name:procurement.action_orderpoint_form +#: model:ir.ui.menu,name:procurement.menu_stock_order_points +#: view:product.product:0 +#: view:stock.warehouse.orderpoint:0 +msgid "Minimum Stock Rules" +msgstr "最小在庫ルール" + +#. module: procurement +#: field:procurement.order,close_move:0 +msgid "Close Move at end" +msgstr "終わりに移動して閉じる" + +#. module: procurement +#: field:stock.warehouse.orderpoint,qty_multiple:0 +msgid "Qty Multiple" +msgstr "数量倍数" + +#. module: procurement +#: view:procurement.order:0 +msgid "Scheduled Date" +msgstr "予定日" + +#. module: procurement +#: model:ir.model,name:procurement.model_product_product +#: field:make.procurement,product_id:0 +#: view:procurement.order:0 +#: field:procurement.order,product_id:0 +#: field:stock.warehouse.orderpoint,product_id:0 +msgid "Product" +msgstr "製品" + +#. module: procurement +#: view:procurement.order:0 +msgid "Temporary" +msgstr "一時的" + +#. module: procurement +#: field:mrp.property,description:0 +#: field:mrp.property.group,description:0 +msgid "Description" +msgstr "説明" + +#. module: procurement +#: selection:mrp.property,composition:0 +msgid "min" +msgstr "最小" + +#. module: procurement +#: view:stock.warehouse.orderpoint:0 +msgid "Quantity Rules" +msgstr "数量のルール" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Running" +msgstr "実行中" + +#. module: procurement +#: field:stock.warehouse.orderpoint,product_uom:0 +msgid "Product UOM" +msgstr "製品単位" + +#. module: procurement +#: model:process.node,name:procurement.process_node_serviceonorder0 +msgid "Make to Order" +msgstr "オーダーの作成" + +#. module: procurement +#: view:procurement.order:0 +msgid "UOM" +msgstr "単位" + +#. module: procurement +#: selection:procurement.order,state:0 +msgid "Waiting" +msgstr "待機中" + +#. module: procurement +#: model:ir.actions.act_window,help:procurement.action_orderpoint_form +msgid "" +"You can define your minimum stock rules, so that OpenERP will automatically " +"create draft manufacturing orders or purchase quotations according to the " +"stock level. Once the virtual stock of a product (= stock on hand minus all " +"confirmed orders and reservations) is below the minimum quantity, OpenERP " +"will generate a procurement request to increase the stock up to the maximum " +"quantity." +msgstr "" +"最小在庫ルールを定義できます。それによってOpenERPは自動的に在庫レベルに応じて、ドラフトの製造オーダーまたは発注見積を作成します。ひとたび、製品の実" +"質上の在庫(全ての確認済オーダーと予約を在庫から差し引く)が最小在庫を下回ったなら、OpenERPは在庫を最大数量まで増加させるための調達要求を生成します" +"。" + +#. module: procurement +#: field:procurement.order,move_id:0 +msgid "Reservation" +msgstr "予約" + +#. module: procurement +#: model:process.node,note:procurement.process_node_procureproducts0 +msgid "The way to procurement depends on the product type." +msgstr "調達方法は製品タイプに依存します。" + +#. module: procurement +#: view:make.procurement:0 +msgid "" +"This wizard will plan the procurement for this product. This procurement may " +"generate task, production orders or purchase orders." +msgstr "このウィザードはこの製品のための調達を計画します。この調達は製造オーダーまたは発注オーダーのタスクを生成します。" + +#. module: procurement +#: view:res.company:0 +msgid "MRP & Logistics Scheduler" +msgstr "MRPと物流のスケジューラ" + +#. module: procurement +#: code:addons/procurement/procurement.py:138 +#, python-format +msgid "Cannot delete Procurement Order(s) which are in %s state!" +msgstr "%s 状態であるため調達オーダーは削除できません。" + +#. module: procurement +#: sql_constraint:res.company:0 +msgid "The company name must be unique !" +msgstr "会社名は固有でなければいけません。" + +#. module: procurement +#: field:mrp.property,name:0 +#: field:stock.warehouse.orderpoint,name:0 +msgid "Name" +msgstr "名前" + +#. module: procurement +#: selection:mrp.property,composition:0 +msgid "max" +msgstr "最大" + +#. module: procurement +#: field:procurement.order,product_uos:0 +msgid "Product UoS" +msgstr "製品販売単位" + +#. module: procurement +#: code:addons/procurement/procurement.py:356 +#, python-format +msgid "from stock: products assigned." +msgstr "在庫から:製品は割当済" + +#. module: procurement +#: model:ir.actions.act_window,name:procurement.action_compute_schedulers +#: model:ir.ui.menu,name:procurement.menu_stock_proc_schedulers +#: view:procurement.order.compute.all:0 +msgid "Compute Schedulers" +msgstr "スケジューラを計算" + +#. module: procurement +#: model:ir.actions.act_window,help:procurement.procurement_exceptions +msgid "" +"Procurement Orders represent the need for a certain quantity of products, at " +"a given time, in a given location. Sales Orders are one typical source of " +"Procurement Orders (but these are distinct documents). Depending on the " +"procurement parameters and the product configuration, the procurement engine " +"will attempt to satisfy the need by reserving products from stock, ordering " +"products from a supplier, or passing a manufacturing order, etc. A " +"Procurement Exception occurs when the system cannot find a way to fulfill a " +"procurement. Some exceptions will resolve themselves automatically, but " +"others require manual intervention (those are identified by a specific error " +"message)." +msgstr "" +"調達オーダーは与えられた時間と場所において製品の確かな数量のためのニーズを表しています。受注オーダーは調達オーダーのひとつの典型的な元(しかし、これらは別" +"個のドキュメントです)となっています。調達パラメータ、製品の設定に依存して、調達エンジンは在庫から製品を予約する、仕入先に製品をオーダーする、製造オーダー" +"を出すなどによりニーズを満たそうとします。システムが調達を満たす方法を見つけることができない場合、調達の例外が発生します。幾つかの例外は自動的に自分自身で" +"解決します。しかし、他は手動による介入を要求します(それらは特定のエラーメッセージにより識別されます)。" + +#. module: procurement +#: field:procurement.order,product_uom:0 +msgid "Product UoM" +msgstr "製品単位" + +#. module: procurement +#: view:procurement.order:0 +msgid "Search Procurement" +msgstr "調達の検索" + +#. module: procurement +#: help:res.company,schedule_range:0 +msgid "" +"This is the time frame analysed by the scheduler when computing " +"procurements. All procurements that are not between today and today+range " +"are skipped for future computation." +msgstr "" +"これは、計算による調達の時のスケジューラによる時間枠分析です。本日から本日+範囲の範囲にない全ての調達は、今後の計算のためにスキップされます。" + +#. module: procurement +#: selection:procurement.order,priority:0 +msgid "Very Urgent" +msgstr "非常に緊急" + +#. module: procurement +#: field:procurement.orderpoint.compute,automatic:0 +msgid "Automatic Orderpoint" +msgstr "自動発注点" + +#. module: procurement +#: view:procurement.order:0 +msgid "Procurement Details" +msgstr "調達の詳細" + +#. module: procurement +#: view:procurement.order:0 +msgid "Procurement started late" +msgstr "遅れて開始された調達" + +#. module: procurement +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "エラー:無効な商品識別番号です。" + +#. module: procurement +#: code:addons/procurement/schedulers.py:152 +#, python-format +msgid "SCHEDULER" +msgstr "スケジューラ" + +#. module: procurement +#: code:addons/procurement/schedulers.py:88 +#, python-format +msgid "PROC %d: on order - %3.2f %-5s - %s" +msgstr "調達 %d:オーダー中 - %3.2f %-5s - %s" diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py index 2263a441363..db313e65353 100644 --- a/addons/procurement/procurement.py +++ b/addons/procurement/procurement.py @@ -81,6 +81,7 @@ class procurement_order(osv.osv): _name = "procurement.order" _description = "Procurement" _order = 'priority,date_planned desc' + _inherit = ['mail.thread'] _log_create = False _columns = { 'name': fields.char('Reason', size=64, required=True, help='Procurement name.'), @@ -103,7 +104,7 @@ class procurement_order(osv.osv): " a make to order method."), 'note': fields.text('Note'), - 'message': fields.char('Latest error', size=64, help="Exception occurred while computing procurement orders."), + 'message': fields.char('Latest error', size=124, help="Exception occurred while computing procurement orders."), 'state': fields.selection([ ('draft','Draft'), ('cancel','Cancelled'), @@ -276,7 +277,7 @@ class procurement_order(osv.osv): if not res: return False return True - + def check_buy(self, cr, uid, ids): """ Checks product type. @return: True or Product Id. @@ -287,24 +288,26 @@ class procurement_order(osv.osv): if procurement.product_id.product_tmpl_id.supply_method <> 'buy': return False if not procurement.product_id.seller_ids: - cr.execute('update procurement_order set message=%s where id=%s', - (_('No supplier defined for this product !'), procurement.id)) + message = _('No supplier defined for this product !') + self.message_append_note(cr, uid, [procurement.id], body=message) + cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id)) return False partner = procurement.product_id.seller_id #Taken Main Supplier of Product of Procurement. if not partner: - cr.execute('update procurement_order set message=%s where id=%s', - (_('No default supplier defined for this product'), procurement.id)) + message = _('No default supplier defined for this product') + self.message_append_note(cr, uid, [procurement.id], body=message) + cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id)) return False - if user.company_id and user.company_id.partner_id: if partner.id == user.company_id.partner_id.id: return False address_id = partner_obj.address_get(cr, uid, [partner.id], ['delivery'])['delivery'] if not address_id: - cr.execute('update procurement_order set message=%s where id=%s', - (_('No address defined for the supplier'), procurement.id)) + message = _('No address defined for the supplier') + self.message_append_note(cr, uid, [procurement.id], body=message) + cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id)) return False return True @@ -346,14 +349,18 @@ class procurement_order(osv.osv): move_obj.action_confirm(cr, uid, [id], context=context) self.write(cr, uid, [procurement.id], {'move_id': id, 'close_move': 1}) self.write(cr, uid, ids, {'state': 'confirmed', 'message': ''}) + self.confirm_send_note(cr, uid, ids, context) return True def action_move_assigned(self, cr, uid, ids, context=None): """ Changes procurement state to Running and writes message. @return: True """ + message = _('From stock: products assigned.') self.write(cr, uid, ids, {'state': 'running', - 'message': _('from stock: products assigned.')}) + 'message': message}, context=context) + self.message_append_note(cr, uid, ids, body=message, context=context) + self.running_send_note(cr, uid, ids, context=context) return True def _check_make_to_stock_service(self, cr, uid, procurement, context=None): @@ -383,8 +390,9 @@ class procurement_order(osv.osv): message = _("Not enough stock.") if message: - self.log(cr, uid, procurement.id, _("Procurement '%s' is in exception: ") % (procurement.name) + message) + message = _("Procurement '%s' is in exception: ") % (procurement.name) + message cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id)) + self.message_append_note(cr, uid, [procurement.id], body=message, context=context) return ok def action_produce_assign_service(self, cr, uid, ids, context=None): @@ -393,6 +401,7 @@ class procurement_order(osv.osv): """ for procurement in self.browse(cr, uid, ids, context=context): self.write(cr, uid, [procurement.id], {'state': 'running'}) + self.running_send_note(cr, uid, ids, context=None) return True def action_produce_assign_product(self, cr, uid, ids, context=None): @@ -427,6 +436,7 @@ class procurement_order(osv.osv): if len(todo): move_obj.write(cr, uid, todo, {'state': 'assigned'}) self.write(cr, uid, ids, {'state': 'cancel'}) + self.cancel_send_note(cr, uid, ids, context=None) wf_service = netsvc.LocalService("workflow") for id in ids: wf_service.trg_trigger(uid, 'procurement.order', id, cr) @@ -451,6 +461,7 @@ class procurement_order(osv.osv): @return: True """ res = self.write(cr, uid, ids, {'state': 'ready'}) + self.ready_send_note(cr, uid, ids, context=None) return res def action_done(self, cr, uid, ids): @@ -463,11 +474,39 @@ class procurement_order(osv.osv): if procurement.close_move and (procurement.move_id.state <> 'done'): move_obj.action_done(cr, uid, [procurement.move_id.id]) res = self.write(cr, uid, ids, {'state': 'done', 'date_close': time.strftime('%Y-%m-%d')}) + self.done_send_note(cr, uid, ids, context=None) wf_service = netsvc.LocalService("workflow") for id in ids: wf_service.trg_trigger(uid, 'procurement.order', id, cr) return res + # ---------------------------------------- + # OpenChatter methods and notifications + # ---------------------------------------- + + def create(self, cr, uid, vals, context=None): + obj_id = super(procurement_order, self).create(cr, uid, vals, context) + self.create_send_note(cr, uid, [obj_id], context=context) + return obj_id + + def create_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Procurement has been <b>created</b>."), context=context) + + def confirm_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Procurement has been <b>confirmed</b>."), context=context) + + def running_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Procurement has been set to <b>running</b>."), context=context) + + def ready_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Procurement has been set to <b>ready</b>."), context=context) + + def cancel_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Procurement has been <b>cancelled</b>."), context=context) + + def done_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Procurement has been <b>done</b>."), context=context) + procurement_order() class StockPicking(osv.osv): diff --git a/addons/procurement/procurement_view.xml b/addons/procurement/procurement_view.xml index 5343d6aaf0f..09bf0c6c24f 100644 --- a/addons/procurement/procurement_view.xml +++ b/addons/procurement/procurement_view.xml @@ -47,16 +47,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="button_confirm" states="draft" string="Confirm"/> <button name="button_check" states="confirmed" string="Run Procurement"/> <button name="button_restart" states="exception" string="Retry"/> <button name="button_cancel" states="draft,exception,waiting" string="Cancel"/> - <div class="oe_right"> - <field name="state" readonly="1" widget="statusbar" nolabel="1" statusbar_visible="draft,confirmed" /> - </div> - <div class="oe_clear"/> - </div> + <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,confirmed" /> + </header> <sheet string="Procurement" layout="auto"> <group col="2" colspan="2" class="oe_form_header"> <separator colspan="2" string="References"/> @@ -96,6 +93,9 @@ </page> </notebook> </sheet> + <div class="oe_form_sheet_width"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </div> </form> </field> </record> diff --git a/addons/procurement/schedulers.py b/addons/procurement/schedulers.py index 446463ecf4d..410a802c810 100644 --- a/addons/procurement/schedulers.py +++ b/addons/procurement/schedulers.py @@ -19,15 +19,15 @@ # ############################################################################## -import time from datetime import datetime from dateutil.relativedelta import relativedelta +import netsvc +import pooler from osv import osv +from osv import fields from tools.translate import _ from tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT import tools -import netsvc -import pooler class procurement_order(osv.osv): _inherit = 'procurement.order' @@ -69,7 +69,7 @@ class procurement_order(osv.osv): cr.commit() company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id maxdate = (datetime.today() + relativedelta(days=company.schedule_range)).strftime(tools.DEFAULT_SERVER_DATE_FORMAT) - start_date = time.strftime('%Y-%m-%d, %Hh %Mm %Ss') + start_date = fields.datetime.now() offset = 0 report = [] report_total = 0 @@ -113,13 +113,14 @@ class procurement_order(osv.osv): proc.product_id.name,)) report_except += 1 + if use_new_cursor: cr.commit() offset += len(ids) if not ids: break - end_date = time.strftime('%Y-%m-%d, %Hh %Mm %Ss') + end_date = fields.datetime.now() if uid: - request = self.pool.get('res.request') + # Chatter: old res.request is now a chatter on res.users, id=uid summary = _("""Here is the procurement scheduling report. Start Time: %s @@ -130,12 +131,7 @@ class procurement_order(osv.osv): Exceptions:\n""") % (start_date, end_date, report_total, report_except, report_later) summary += '\n'.join(report) - request.create(cr, uid, - {'name': "Procurement Processing Report.", - 'act_from': uid, - 'act_to': uid, - 'body': summary, - }) + self.pool.get('res.users').message_append_note(cr, uid, [uid], body=summary, context=context) if use_new_cursor: cr.commit() @@ -237,7 +233,6 @@ class procurement_order(osv.osv): orderpoint_obj = self.pool.get('stock.warehouse.orderpoint') location_obj = self.pool.get('stock.location') procurement_obj = self.pool.get('procurement.order') - request_obj = self.pool.get('res.request') wf_service = netsvc.LocalService("workflow") report = [] offset = 0 @@ -293,12 +288,8 @@ class procurement_order(osv.osv): if use_new_cursor: cr.commit() if user_id and report: - request_obj.create(cr, uid, { - 'name': 'Orderpoint report.', - 'act_from': user_id, - 'act_to': user_id, - 'body': '\n'.join(report) - }) + # Chatter: old res.request is now a chatter on res.users, id=uid + self.pool.get('res.users').message_append_note(cr, uid, [user_id], body='\n'.join(report), subject=_('Orderpoint report'), context=context) if use_new_cursor: cr.commit() cr.close() diff --git a/addons/product/i18n/ja.po b/addons/product/i18n/ja.po new file mode 100644 index 00000000000..adecfec3d36 --- /dev/null +++ b/addons/product/i18n/ja.po @@ -0,0 +1,2376 @@ +# Japanese 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-08 04:07+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-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" + +#. module: product +#: model:product.template,name:product.product_product_ram512_product_template +msgid "DDR 512MB PC400" +msgstr "DDRメモリ 512MB PC400" + +#. module: product +#: field:product.packaging,rows:0 +msgid "Number of Layers" +msgstr "層の数" + +#. module: product +#: constraint:product.pricelist.item:0 +msgid "" +"Error ! You cannot assign the Main Pricelist as Other Pricelist in PriceList " +"Item!" +msgstr "エラー。価格表項目の中に他の価格表としてメインの価格表を割り当てることはできません。" + +#. module: product +#: help:product.pricelist.item,product_tmpl_id:0 +msgid "" +"Set a template if this rule only apply to a template of product. Keep empty " +"for all products" +msgstr "このルールを製品のテンプレートのみに適用するのであれば、テンプレートを設定して下さい。全ての製品のために空を保って下さい。" + +#. module: product +#: help:product.product,virtual_available:0 +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored at " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"In a context with a single Shop, this includes goods stored in the Stock " +"Location of the Warehouse of this Shop, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location typed as " +"'internal'." +msgstr "" +"予測数量(在庫数量 - 出て行く + 入ってくる)\n" +"文脈で単数の在庫場所の場合、この場所または子の何れかの場所に格納されている商品が含まれます。\n" +"文脈で単数の倉庫の場合、この倉庫の在庫場所または子の何れかの場所に格納されている商品が含まれます。\n" +"文脈で単数の店の場合、この店の倉庫の在庫場所または子の何れかの場所に格納されている商品が含まれます。\n" +"そうでない場合、在庫場所タイプが内部となっている全ての場所に格納されている商品が含まれます。" + +#. module: product +#: model:product.category,name:product.cat1 +msgid "Sellable" +msgstr "販売可能" + +#. module: product +#: model:product.template,name:product.product_product_mb2_product_template +msgid "Mainboard ASUStek A7V8X-X" +msgstr "マザーボード ASUStek A7V8X-X" + +#. module: product +#: help:product.template,seller_qty:0 +msgid "This is minimum quantity to purchase from Main Supplier." +msgstr "" + +#. module: product +#: model:product.uom,name:product.uom_day +msgid "Day" +msgstr "日" + +#. module: product +#: view:product.product:0 +msgid "UoM" +msgstr "単位" + +#. module: product +#: model:product.template,name:product.product_product_pc2_product_template +msgid "Basic+ PC (assembly on order)" +msgstr "ベーシック+ PC(注文生産)" + +#. module: product +#: field:product.product,incoming_qty:0 +msgid "Incoming" +msgstr "入ってくる" + +#. module: product +#: help:res.partner,property_product_pricelist:0 +msgid "" +"This pricelist will be used, instead of the default one, for sales to the " +"current partner" +msgstr "この価格リストは現在のパートナに販売するために、デフォルトのそれに代って使用されます。" + +#. module: product +#: field:product.template,seller_qty:0 +msgid "Supplier Quantity" +msgstr "仕入数量" + +#. module: product +#: selection:product.template,mes_type:0 +msgid "Fixed" +msgstr "固定" + +#. module: product +#: code:addons/product/pricelist.py:178 +#, python-format +msgid "Warning !" +msgstr "警告" + +#. module: product +#: model:ir.actions.report.xml,name:product.report_product_pricelist +#: model:ir.model,name:product.model_product_pricelist +#: field:product.product,price:0 +#: field:product.product,pricelist_id:0 +#: view:product.supplierinfo:0 +msgid "Pricelist" +msgstr "価格リスト" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +msgid "Base Prices" +msgstr "基本価格" + +#. module: product +#: field:product.pricelist.item,name:0 +msgid "Rule Name" +msgstr "ルール名" + +#. module: product +#: field:product.product,code:0 +#: field:product.product,default_code:0 +msgid "Reference" +msgstr "参照" + +#. module: product +#: help:pricelist.partnerinfo,min_quantity:0 +msgid "" +"The minimal quantity to trigger this rule, expressed in the supplier UoM if " +"any or in the default UoM of the product otherrwise." +msgstr "このルールを適用するための最小限の数量です。仕入先が明示した数量、そうでなければ製品のデフォルト数量となります。" + +#. module: product +#: model:product.template,name:product.product_product_24_product_template +msgid "Keyboard" +msgstr "キーボード" + +#. module: product +#: model:ir.model,name:product.model_res_partner +msgid "Partner" +msgstr "パートナ" + +#. module: product +#: code:addons/product/product.py:143 +#, python-format +msgid "" +"Conversion from Product UoM %s to Default UoM %s is not possible as they " +"both belong to different Category!." +msgstr "それらは両方が異なった分類に属しているので、製品の単位 %s からデフォルト単位 %s への変換はできません。" + +#. module: product +#: model:product.uom,name:product.product_uom_dozen +msgid "Dozen" +msgstr "ダース" + +#. module: product +#: selection:product.template,cost_method:0 +msgid "Average Price" +msgstr "平均価格" + +#. module: product +#: help:product.pricelist.item,name:0 +msgid "Explicit rule name for this pricelist line." +msgstr "この価格リスト" + +#. module: product +#: model:product.template,name:product.product_product_cpu1_product_template +msgid "Processor AMD Athlon XP 1800+" +msgstr "プロセッサ AMD Athlon XP 1800+" + +#. module: product +#: model:product.template,name:product.product_product_20_product_template +msgid "HDD on demand" +msgstr "HDDオンデマンド" + +#. module: product +#: field:product.price_list,price_list:0 +msgid "PriceList" +msgstr "価格リスト" + +#. module: product +#: view:product.template:0 +msgid "UOM" +msgstr "単位" + +#. module: product +#: model:product.uom,name:product.product_uom_unit +msgid "PCE" +msgstr "" + +#. module: product +#: view:product.template:0 +msgid "Miscelleanous" +msgstr "その他" + +#. module: product +#: model:product.template,name:product.product_product_worker0_product_template +msgid "Worker" +msgstr "作業員" + +#. module: product +#: help:product.template,sale_ok:0 +msgid "" +"Determines if the product can be visible in the list of product within a " +"selection from a sale order line." +msgstr "製品は販売オーダー行から選択された範囲内の製品リストの中に表示できるかどうかを判断します。" + +#. module: product +#: model:product.pricelist.version,name:product.ver0 +msgid "Default Public Pricelist Version" +msgstr "デフォルト公開価格リスト" + +#. module: product +#: selection:product.template,cost_method:0 +msgid "Standard Price" +msgstr "標準価格" + +#. module: product +#: model:product.pricelist.type,name:product.pricelist_type_sale +#: field:res.partner,property_product_pricelist:0 +msgid "Sale Pricelist" +msgstr "販売価格リスト" + +#. module: product +#: view:product.template:0 +#: field:product.template,type:0 +msgid "Product Type" +msgstr "製品タイプ" + +#. module: product +#: model:ir.actions.act_window,help:product.product_form_config_action +msgid "" +"Create a product form for everything you buy or sell. Specify a supplier if " +"the product can be purchased." +msgstr "仕入または販売する全ての製品フォームを作成して下さい。製品を仕入れることができる場合、仕入先を指定して下さい。" + +#. module: product +#: view:product.uom:0 +msgid " e.g: 1 * (this unit) = ratio * (reference unit)" +msgstr " 例: 1 * (このユニット) = レシオ * (基準ユニット)" + +#. module: product +#: code:addons/product/product.py:418 +#, python-format +msgid "Products: " +msgstr "製品: " + +#. module: product +#: field:product.category,parent_id:0 +msgid "Parent Category" +msgstr "親分類" + +#. module: product +#: help:product.template,procure_method:0 +msgid "" +"'Make to Stock': When needed, take from the stock or wait until re-" +"supplying. 'Make to Order': When needed, purchase or produce for the " +"procurement request." +msgstr "在庫する:必要な時に在庫から取り出すか再供給まで待ちます。オーダーする:必要な時に調達要求のために発注するか製造するかします。" + +#. module: product +#: model:process.node,note:product.process_node_supplier0 +msgid "Supplier name, price, product code, ..." +msgstr "仕入先名、価格、製品コードなど" + +#. module: product +#: model:product.template,name:product.product_product_hdd3_product_template +msgid "HDD Seagate 7200.8 160GB" +msgstr "" + +#. module: product +#: field:product.product,ean13:0 +msgid "EAN13" +msgstr "" + +#. module: product +#: field:product.template,seller_id:0 +msgid "Main Supplier" +msgstr "主仕入先" + +#. module: product +#: model:ir.actions.act_window,name:product.product_ul_form_action +#: model:ir.model,name:product.model_product_packaging +#: model:ir.ui.menu,name:product.menu_product_ul_form_action +#: view:product.packaging:0 +#: view:product.product:0 +#: view:product.ul:0 +msgid "Packaging" +msgstr "梱包" + +#. module: product +#: view:product.product:0 +#: field:product.template,categ_id:0 +msgid "Category" +msgstr "分類" + +#. module: product +#: help:product.pricelist.item,min_quantity:0 +msgid "" +"The rule only applies if the partner buys/sells more than this quantity." +msgstr "パートナがこの数量よりも多く購入 / 販売した時にこのルールのみが適用されます。" + +#. module: product +#: model:product.template,name:product.product_product_woodmm0_product_template +msgid "Wood 2mm" +msgstr "木材 2mm" + +#. module: product +#: field:product.price_list,qty1:0 +msgid "Quantity-1" +msgstr "数量-1" + +#. module: product +#: help:product.packaging,ul_qty:0 +msgid "The number of packages by layer" +msgstr "層別パッケージの数" + +#. module: product +#: field:product.packaging,qty:0 +msgid "Quantity by Package" +msgstr "パッケージの数量" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +#: field:product.template,state:0 +msgid "Status" +msgstr "状態" + +#. module: product +#: help:product.template,categ_id:0 +msgid "Select category for the current product" +msgstr "現在の製品のために分類を選択して下さい。" + +#. module: product +#: field:product.product,outgoing_qty:0 +msgid "Outgoing" +msgstr "外に出て行く" + +#. module: product +#: selection:product.uom,uom_type:0 +msgid "Reference UoM for this category" +msgstr "この分類のための基準単位" + +#. module: product +#: model:product.price.type,name:product.list_price +#: field:product.product,lst_price:0 +msgid "Public Price" +msgstr "公表価格" + +#. module: product +#: field:product.price_list,qty5:0 +msgid "Quantity-5" +msgstr "数量-5" + +#. module: product +#: model:product.category,name:product.product_category_10 +msgid "IT components" +msgstr "ITコンポーネント" + +#. module: product +#: field:product.template,product_manager:0 +msgid "Product Manager" +msgstr "製品マネジャ" + +#. module: product +#: field:product.supplierinfo,product_name:0 +msgid "Supplier Product Name" +msgstr "仕入先製品名" + +#. module: product +#: model:product.template,name:product.product_product_pc3_product_template +msgid "Medium PC" +msgstr "ミディアム PC" + +#. module: product +#: model:ir.actions.act_window,help:product.product_normal_action_puchased +msgid "" +"Products can be purchased and/or sold. They can be raw materials, stockable " +"products, consumables or services. The Product form contains detailed " +"information about your products related to procurement logistics, sales " +"price, product category, suppliers and so on." +msgstr "" +"製品は仕入れて販売されます。それらは原材料、在庫可能製品、売り切り品、またはサービスです。製品フォームは調達の物流、販売価格、製品分類、仕入先などに製品に" +"関連する詳細な情報を含んでいます。" + +#. module: product +#: help:product.product,qty_available:0 +msgid "" +"Current quantity of products.\n" +"In a context with a single Stock Location, this includes goods stored at " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"In a context with a single Shop, this includes goods stored in the Stock " +"Location of the Warehouse of this Shop, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location typed as " +"'internal'." +msgstr "" +"製品の現在数量\n" +"文脈で単数の在庫場所の場合、この場所または子の何れかの場所に格納されている商品が含まれます。\n" +"文脈で単数の倉庫の場合、この倉庫の在庫場所または子の何れかの場所に格納されている商品が含まれます。\n" +"文脈で単数の店の場合、この店の倉庫の在庫場所または子の何れかの場所に格納されている商品が含まれます。\n" +"そうでない場合、在庫場所タイプが内部となっている全ての場所に格納されている商品が含まれます。" + +#. module: product +#: view:product.pricelist:0 +msgid "Products Price Search" +msgstr "製品価格検索" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +#: field:product.template,description_sale:0 +msgid "Sale Description" +msgstr "販売説明" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +msgid "Storage Localisation" +msgstr "貯蔵のローカル化" + +#. module: product +#: help:product.packaging,length:0 +msgid "The length of the package" +msgstr "パッケージの長さ" + +#. module: product +#: help:product.template,weight_net:0 +msgid "The net weight in Kg." +msgstr "正味重量kg" + +#. module: product +#: help:product.template,state:0 +msgid "Tells the user if he can use the product or not." +msgstr "彼が製品を使うことができるか否かをユーザに述べて下さい。" + +#. module: product +#: field:pricelist.partnerinfo,min_quantity:0 +#: field:product.supplierinfo,qty:0 +msgid "Quantity" +msgstr "数量" + +#. module: product +#: field:product.packaging,height:0 +msgid "Height" +msgstr "高さ" + +#. module: product +#: help:product.pricelist.version,date_end:0 +msgid "Ending date for this pricelist version to be valid." +msgstr "この価格リストのバージョンを有効にするための終了日" + +#. module: product +#: model:product.category,name:product.cat0 +msgid "All products" +msgstr "全製品" + +#. module: product +#: model:ir.model,name:product.model_pricelist_partnerinfo +msgid "pricelist.partnerinfo" +msgstr "" + +#. module: product +#: field:product.price_list,qty2:0 +msgid "Quantity-2" +msgstr "数量-2" + +#. module: product +#: field:product.price_list,qty3:0 +msgid "Quantity-3" +msgstr "数量-3" + +#. module: product +#: view:product.product:0 +msgid "Codes" +msgstr "コード" + +#. module: product +#: field:product.price_list,qty4:0 +msgid "Quantity-4" +msgstr "数量-4" + +#. module: product +#: view:res.partner:0 +msgid "Sales & Purchases" +msgstr "受注と発注" + +#. module: product +#: model:product.uom.categ,name:product.uom_categ_wtime +msgid "Working Time" +msgstr "作業時間" + +#. module: product +#: model:ir.actions.act_window,help:product.product_pricelist_action2 +#: model:ir.actions.act_window,help:product.product_pricelist_action_for_purchase +msgid "" +"A price list contains rules to be evaluated in order to compute the purchase " +"or sales price for all the partners assigned to a price list. Price lists " +"have several versions (2010, 2011, Promotion of February 2010, etc.) and " +"each version has several rules. Example: the customer price of a product " +"category will be based on the supplier price multiplied by 1.80." +msgstr "" +"価格リストは価格リストに割り当てられた全てのパートナのための仕入または販売価格の計算を評価するためのルールが含まれています。価格リストは幾つかのバージョン" +"を持ちます(2010、2011、2010年2月の販売促進など)。そして各バージョンは幾つかのルールを持ちます。例えば、ある製品分類の顧客価格は仕入れ価格の" +"1.8倍を基本としています。" + +#. module: product +#: model:product.template,name:product.product_product_metalcleats0_product_template +msgid "Metal Cleats" +msgstr "金属止め具" + +#. module: product +#: code:addons/product/product.py:175 +#, python-format +msgid "Cannot change the category of existing UoM '%s'." +msgstr "%s の既存単位の分類は変更できません。" + +#. module: product +#: model:ir.model,name:product.model_product_uom_categ +msgid "Product uom categ" +msgstr "製品単位分類" + +#. module: product +#: model:product.ul,name:product.product_ul_box +msgid "Box 20x20x40" +msgstr "箱 20x20x40" + +#. module: product +#: view:product.pricelist.item:0 +msgid "Price Computation" +msgstr "価格計算" + +#. module: product +#: model:res.groups,name:product.group_uos +msgid "Product UoS View" +msgstr "製品販売単位ビュー" + +#. module: product +#: field:product.template,purchase_ok:0 +msgid "Can be Purchased" +msgstr "発注可能" + +#. module: product +#: model:product.template,name:product.product_product_cpu2_product_template +msgid "High speed processor config" +msgstr "高速プロセッサ設定" + +#. module: product +#: model:process.transition,note:product.process_transition_supplierofproduct0 +msgid "" +"1 or several supplier(s) can be linked to a product. All information stands " +"in the product form." +msgstr "1つまたは複数の仕入先は製品と結びついています。全ての情報は製品フォームの中にあります。" + +#. module: product +#: help:product.uom,category_id:0 +msgid "" +"Quantity conversions may happen automatically between Units of Measure in " +"the same category, according to their respective ratios." +msgstr "数量変換はそれぞれの比率に応じて同じ分類の単位の間で自動的に行われます。" + +#. module: product +#: help:product.packaging,width:0 +msgid "The width of the package" +msgstr "パッケージの幅" + +#. module: product +#: selection:product.category,type:0 +msgid "View" +msgstr "ビュー" + +#. module: product +#: model:ir.actions.act_window,name:product.product_template_action_tree +msgid "Product Templates" +msgstr "製品テンプレート" + +#. module: product +#: field:product.category,parent_left:0 +msgid "Left Parent" +msgstr "左親" + +#. module: product +#: model:product.template,name:product.product_product_restaurantexpenses0_product_template +msgid "Restaurant Expenses" +msgstr "レストラン経費" + +#. module: product +#: help:product.packaging,qty:0 +msgid "The total number of products you can put by pallet or box." +msgstr "パレットまたは箱に置くことのできる製品の合計数" + +#. module: product +#: constraint:product.packaging:0 +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "エラー:無効な商品識別番号です。" + +#. module: product +#: field:product.pricelist.item,min_quantity:0 +msgid "Min. Quantity" +msgstr "最小数量" + +#. module: product +#: model:ir.model,name:product.model_product_price_type +msgid "Price Type" +msgstr "価格タイプ" + +#. module: product +#: code:addons/product/product.py:363 +#, python-format +msgid "" +"New UoM '%s' must belong to same UoM category '%s' as of old UoM '%s'. If " +"you need to change the unit of measure, you may desactivate this product " +"from the 'Procurement & Locations' tab and create a new one." +msgstr "" +"新しい単位 %s は同じ単位分類 %s に属する必要があります(古い単位 %s " +"のように)。単位を変更する必要がある場合は、調達と場所タブからこの製品を無効化して新しい物を作成することができます。" + +#. module: product +#: view:product.pricelist.item:0 +msgid "Max. Margin" +msgstr "最大利鞘" + +#. module: product +#: view:product.pricelist.item:0 +msgid "Base Price" +msgstr "基本価格" + +#. module: product +#: model:product.template,name:product.product_consultant_product_template +msgid "Service on Timesheet" +msgstr "タイムシート上のサービス" + +#. module: product +#: model:product.template,name:product.product_product_fan2_product_template +msgid "Silent fan" +msgstr "静音ファン" + +#. module: product +#: help:product.supplierinfo,name:0 +msgid "Supplier of this product" +msgstr "この製品の仕入先" + +#. module: product +#: help:product.pricelist.version,active:0 +msgid "" +"When a version is duplicated it is set to non active, so that the dates do " +"not overlaps with original version. You should change the dates and " +"reactivate the pricelist" +msgstr "" +"バージョンが重複している時は、それは非アクティブにセットされています。日付はオリジナルのバージョンと重複できません。日付を変更して価格リストを再アクティブ" +"化する必要があります。" + +#. module: product +#: model:product.template,name:product.product_product_kitshelfofcm0_product_template +msgid "KIT Shelf of 100cm" +msgstr "キット棚 100cm" + +#. module: product +#: field:product.supplierinfo,name:0 +msgid "Supplier" +msgstr "仕入先" + +#. module: product +#: field:product.product,qty_available:0 +msgid "Quantity On Hand" +msgstr "在庫数量" + +#. module: product +#: model:product.template,name:product.product_product_26_product_template +msgid "Kit Keyboard + Mouse" +msgstr "キーボードとマウスキット" + +#. module: product +#: field:product.price.type,name:0 +msgid "Price Name" +msgstr "価格名" + +#. module: product +#: model:product.template,name:product.product_product_arm_product_template +msgid "Cabinet" +msgstr "キャビネット" + +#. module: product +#: help:product.product,incoming_qty:0 +msgid "" +"Quantity of products that are planned to arrive.\n" +"In a context with a single Stock Location, this includes goods arriving to " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods arriving to the " +"Stock Location of this Warehouse, or any of its children.\n" +"In a context with a single Shop, this includes goods arriving to the Stock " +"Location of the Warehouse of this Shop, or any of its children.\n" +"Otherwise, this includes goods arriving to any Stock Location typed as " +"'internal'." +msgstr "" +"到着予定の製品数量\n" +"文脈で単数の在庫場所の場合、この場所または子の何れかの場所に到着する商品が含まれます。\n" +"文脈で単数の倉庫の場合、この倉庫の在庫場所または子の何れかの場所に到着する商品が含まれます。\n" +"文脈で単数の店の場合、この店の倉庫の在庫場所または子の何れかの場所に到着する商品が含まれます。\n" +"そうでない場合、在庫場所タイプが内部となっている全ての場所に到着する商品が含まれます。" + +#. module: product +#: model:product.template,name:product.product_product_woodentable0_product_template +msgid "Wooden Table" +msgstr "木製テーブル" + +#. module: product +#: model:product.template,name:product.product_product_cpu3_product_template +msgid "Processor AMD Athlon XP 2200+" +msgstr "プロセッサ AMD Athlon XP 2200+" + +#. module: product +#: model:ir.actions.act_window,name:product.action_product_price_list +#: model:ir.model,name:product.model_product_price_list +#: view:product.price_list:0 +#: report:product.pricelist:0 +#: field:product.pricelist.version,pricelist_id:0 +msgid "Price List" +msgstr "価格リスト" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +msgid "Suppliers" +msgstr "仕入先" + +#. module: product +#: view:product.product:0 +msgid "To Purchase" +msgstr "仕入" + +#. module: product +#: help:product.supplierinfo,min_qty:0 +msgid "" +"The minimal quantity to purchase to this supplier, expressed in the supplier " +"Product UoM if not empty, in the default unit of measure of the product " +"otherwise." +msgstr "この仕入先に仕入れるための最小数量が空の場合は仕入先製品単位で、その他の場合はデフォルトの製品単位で表されます。" + +#. module: product +#: view:product.pricelist.item:0 +msgid "New Price =" +msgstr "新価格=" + +#. module: product +#: help:pricelist.partnerinfo,price:0 +msgid "" +"This price will be considered as a price for the supplier UoM if any or the " +"default Unit of Measure of the product otherwise" +msgstr "この価格は仕入先単位のための価格とみなされます。そうでない場合は製品のデフォルト単位の価格です。" + +#. module: product +#: model:product.category,name:product.product_category_accessories +msgid "Accessories" +msgstr "アクセサリ" + +#. module: product +#: field:product.template,sale_delay:0 +msgid "Customer Lead Time" +msgstr "顧客リードタイム" + +#. module: product +#: model:product.template,name:product.product_product_25_product_template +msgid "Mouse" +msgstr "マウス" + +#. module: product +#: help:product.template,uos_id:0 +msgid "" +"Used by companies that manage two units of measure: invoicing and inventory " +"management. For example, in food industries, you will manage a stock of ham " +"but invoice in Kg. Keep empty to use the default UOM." +msgstr "" +"請求と在庫管理の2つの単位を管理する会社によって使用されます。例えば、食品産業ではハムの在庫を管理しますが、請求はkgです。デフォルト単位を使用するには空" +"のままとします。" + +#. module: product +#: view:product.pricelist.item:0 +msgid "Min. Margin" +msgstr "最小利鞘" + +#. module: product +#: field:product.category,child_id:0 +msgid "Child Categories" +msgstr "子分類" + +#. module: product +#: field:product.pricelist.version,date_end:0 +msgid "End Date" +msgstr "終了日" + +#. module: product +#: view:product.price_list:0 +msgid "Print" +msgstr "印刷" + +#. module: product +#: view:product.product:0 +#: field:product.ul,type:0 +msgid "Type" +msgstr "タイプ" + +#. module: product +#: model:ir.actions.act_window,name:product.product_pricelist_action2 +#: model:ir.actions.act_window,name:product.product_pricelist_action_for_purchase +#: model:ir.ui.menu,name:product.menu_product_pricelist_action2 +#: model:ir.ui.menu,name:product.menu_product_pricelist_main +msgid "Pricelists" +msgstr "価格リスト" + +#. module: product +#: field:product.product,partner_ref:0 +msgid "Customer ref" +msgstr "顧客参照" + +#. module: product +#: view:product.product:0 +msgid "Miscellaneous" +msgstr "その他" + +#. module: product +#: field:product.pricelist.type,key:0 +msgid "Key" +msgstr "キー" + +#. module: product +#: view:product.pricelist.item:0 +msgid "Rules Test Match" +msgstr "適合テストルール" + +#. module: product +#: help:product.pricelist.item,product_id:0 +msgid "" +"Set a product if this rule only apply to one product. Keep empty for all " +"products" +msgstr "このルールがひとつの製品に適用されるのみである場合は製品をセットして下さい。全ての製品のためであれば空のままとして下さい。" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +msgid "Procurement & Locations" +msgstr "調達と場所" + +#. module: product +#: model:product.template,name:product.product_product_kitchendesignproject0_product_template +msgid "Kitchen Design Project" +msgstr "台所設計プロジェクト" + +#. module: product +#: model:product.uom,name:product.uom_hour +msgid "Hour" +msgstr "時" + +#. module: product +#: selection:product.template,state:0 +msgid "In Development" +msgstr "開発で" + +#. module: product +#: code:addons/product/product.py:363 +#, python-format +msgid "UoM categories Mismatch!" +msgstr "単位の分類が合致しません。" + +#. module: product +#: model:product.template,name:product.product_product_shelfofcm1_product_template +msgid "Shelf of 200cm" +msgstr "棚 200cm" + +#. module: product +#: view:product.uom:0 +msgid "Ratio & Precision" +msgstr "比率と精度" + +#. module: product +#: model:product.uom,name:product.product_uom_gram +msgid "g" +msgstr "" + +#. module: product +#: model:product.category,name:product.product_category_11 +msgid "IT components kits" +msgstr "ITコンポーネントキット" + +#. module: product +#: selection:product.category,type:0 +#: selection:product.template,state:0 +msgid "Normal" +msgstr "通常" + +#. module: product +#: model:process.node,name:product.process_node_supplier0 +#: view:product.supplierinfo:0 +msgid "Supplier Information" +msgstr "仕入先情報" + +#. module: product +#: field:product.price.type,currency_id:0 +#: report:product.pricelist:0 +#: field:product.pricelist,currency_id:0 +msgid "Currency" +msgstr "通貨" + +#. module: product +#: model:product.template,name:product.product_product_ram_product_template +msgid "DDR 256MB PC400" +msgstr "DDRメモリ 256MB PC400" + +#. module: product +#: model:ir.actions.act_window,name:product.product_category_action_form +#: model:ir.ui.menu,name:product.menu_product_category_action_form +#: view:product.category:0 +msgid "Product Categories" +msgstr "製品分類" + +#. module: product +#: view:product.uom:0 +msgid " e.g: 1 * (reference unit) = ratio * (this unit)" +msgstr " 例: 1 * (基準ユニット) = 比率 * (このユニット)" + +#. module: product +#: model:ir.actions.act_window,help:product.product_uom_form_action +msgid "" +"Create and manage the units of measure you want to be used in your system. " +"You can define a conversion rate between several Units of Measure within the " +"same category." +msgstr "システムで利用する管理したい単位を作成し管理します。同じ分類内の幾つかの単位間の変換比率を定義することができます。" + +#. module: product +#: field:product.packaging,weight:0 +msgid "Total Package Weight" +msgstr "合計パッケージ重量" + +#. module: product +#: field:product.template,seller_info_id:0 +msgid "unknown" +msgstr "不明" + +#. module: product +#: help:product.packaging,code:0 +msgid "The code of the transport unit." +msgstr "転送ユニットのコード" + +#. module: product +#: help:product.template,standard_price:0 +msgid "" +"Product's cost for accounting stock valuation. It is the base price for the " +"supplier price." +msgstr "会計上の在庫評価のための製品コスト。これは仕入価格のための基本価格です。" + +#. module: product +#: view:product.price.type:0 +msgid "Products Price Type" +msgstr "製品価格タイプ" + +#. module: product +#: field:product.product,price_extra:0 +msgid "Variant Price Extra" +msgstr "変形割増価格" + +#. module: product +#: model:product.template,name:product.product_product_fan_product_template +msgid "Regular case fan 80mm" +msgstr "標準ケースファン 80mm" + +#. module: product +#: model:ir.model,name:product.model_product_supplierinfo +msgid "Information about a product supplier" +msgstr "製品仕入先についての情報" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +#: field:product.template,description_purchase:0 +msgid "Purchase Description" +msgstr "仕入説明" + +#. module: product +#: constraint:product.pricelist.version:0 +msgid "You cannot have 2 pricelist versions that overlap!" +msgstr "重複した2つの価格リストのバージョンを持つことはできません。" + +#. module: product +#: help:product.supplierinfo,delay:0 +msgid "" +"Lead time in days between the confirmation of the purchase order and the " +"reception of the products in your warehouse. Used by the scheduler for " +"automatic computation of the purchase order planning." +msgstr "倉庫での仕入オーダーの確認から製品の受入の間の日数のリードタイム。仕入オーダー計算の自動計算のためにスケジューラによって使用されます。" + +#. module: product +#: model:ir.actions.act_window,help:product.product_pricelist_action +msgid "" +"There can be more than one version of a pricelist. Here you can create and " +"manage new versions of a price list. Some examples of versions: 2010, 2011, " +"Summer Promotion, etc." +msgstr "" +"価格リストはひとつ以上存在することがあります。ここで価格リストの新バージョンを作成し管理することができます。バージョンのいくつかの例:2010年、2011" +"年、夏季販売促進など" + +#. module: product +#: selection:product.template,type:0 +msgid "Stockable Product" +msgstr "在庫可能製品" + +#. module: product +#: field:product.packaging,code:0 +msgid "Code" +msgstr "コード" + +#. module: product +#: view:product.supplierinfo:0 +msgid "Seq" +msgstr "順序" + +#. module: product +#: view:product.price_list:0 +msgid "Calculate Product Price per Unit Based on Pricelist Version." +msgstr "" + +#. module: product +#: model:ir.model,name:product.model_product_ul +msgid "Shipping Unit" +msgstr "出荷単位" + +#. module: product +#: field:pricelist.partnerinfo,suppinfo_id:0 +msgid "Partner Information" +msgstr "パートナ情報" + +#. module: product +#: selection:product.ul,type:0 +#: model:product.uom.categ,name:product.product_uom_categ_unit +msgid "Unit" +msgstr "単位" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +msgid "Information" +msgstr "情報" + +#. module: product +#: view:product.pricelist.item:0 +msgid "Products Listprices Items" +msgstr "製品価格リスト項目" + +#. module: product +#: view:product.packaging:0 +msgid "Other Info" +msgstr "他の情報" + +#. module: product +#: field:product.pricelist.version,items_id:0 +msgid "Price List Items" +msgstr "価格リスト項目" + +#. module: product +#: model:ir.actions.act_window,help:product.product_uom_categ_form_action +msgid "" +"Create and manage the units of measure categories you want to be used in " +"your system. If several units of measure are in the same category, they can " +"be converted to each other. For example, in the unit of measure category " +"\"Time\", you will have the following UoM: Hours, Days." +msgstr "" +"システムで使用したい分類の単位を作成し管理します。同じ分類に幾つかの単位がある場合、それらは相互に変換できます。例えば、時間の単位には時間数や日数を持つこ" +"とができます。" + +#. module: product +#: selection:product.uom,uom_type:0 +msgid "Bigger than the reference UoM" +msgstr "基準単位より大きい" + +#. module: product +#: field:product.category,parent_right:0 +msgid "Right Parent" +msgstr "右親" + +#. module: product +#: view:product.product:0 +msgid "To Sell" +msgstr "販売" + +#. module: product +#: help:product.product,outgoing_qty:0 +msgid "" +"Quantity of products that are planned to leave.\n" +"In a context with a single Stock Location, this includes goods leaving from " +"this Location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods leaving from the " +"Stock Location of this Warehouse, or any of its children.\n" +"In a context with a single Shop, this includes goods leaving from the Stock " +"Location of the Warehouse of this Shop, or any of its children.\n" +"Otherwise, this includes goods leaving from any Stock Location typed as " +"'internal'." +msgstr "" +"出発予定の製品数量\n" +"文脈で単数の在庫場所の場合、この場所または子の何れかの場所に出発する商品が含まれます。\n" +"文脈で単数の倉庫の場合、この倉庫の在庫場所または子の何れかの場所に出発する商品が含まれます。\n" +"文脈で単数の店の場合、この店の倉庫の在庫場所または子の何れかの場所に出発する商品が含まれます。\n" +"そうでない場合、在庫場所タイプが内部となっている全ての場所に出発する商品が含まれます。" + +#. module: product +#: model:product.category,name:product.product_category_services0 +msgid "Marketable Services" +msgstr "市場性のあるサービス" + +#. module: product +#: field:product.pricelist.item,price_surcharge:0 +msgid "Price Surcharge" +msgstr "追加料金の価格" + +#. module: product +#: model:product.template,name:product.product_product_mb1_product_template +msgid "Mainboard ASUStek A7N8X" +msgstr "マザーボード ASUStek A7N8X" + +#. module: product +#: field:product.product,packaging:0 +msgid "Logistical Units" +msgstr "物流ユニット" + +#. module: product +#: field:product.category,complete_name:0 +#: field:product.category,name:0 +#: field:product.pricelist.type,name:0 +#: field:product.pricelist.version,name:0 +#: view:product.product:0 +#: field:product.product,name_template:0 +#: field:product.template,name:0 +#: field:product.ul,name:0 +#: field:product.uom,name:0 +#: field:product.uom.categ,name:0 +msgid "Name" +msgstr "名前" + +#. module: product +#: model:product.template,name:product.product_product_woodlintelm0_product_template +msgid "Wood Lintel 4m" +msgstr "木材横木 4m" + +#. module: product +#: model:ir.actions.act_window,help:product.product_normal_action +#: model:ir.actions.act_window,help:product.product_normal_action_sell +msgid "" +"You must define a Product for everything you buy or sell. Products can be " +"raw materials, stockable products, consumables or services. The Product form " +"contains detailed information about your products related to procurement " +"logistics, sales price, product category, suppliers and so on." +msgstr "" +"購入または販売する全ての製品を定義する必要があります。製品は原材料、在庫可能製品、売り切り品、またはサービスです。製品フォームはその製品が関連する調達の物" +"流、販売価格、商品分類、仕入先などについての詳細な情報を含みます。" + +#. module: product +#: model:product.uom,name:product.product_uom_kgm +msgid "kg" +msgstr "" + +#. module: product +#: model:product.uom,name:product.product_uom_meter +msgid "m" +msgstr "" + +#. module: product +#: selection:product.template,state:0 +msgid "Obsolete" +msgstr "旧式" + +#. module: product +#: model:product.uom,name:product.product_uom_km +msgid "km" +msgstr "" + +#. module: product +#: help:product.template,cost_method:0 +msgid "" +"Standard Price: the cost price is fixed and recomputed periodically (usually " +"at the end of the year), Average Price: the cost price is recomputed at each " +"reception of products." +msgstr "標準価格:コスト価格は固定されており、定期的に再計算されます(通常は年末)。平均価格:コスト価格は製品の到着毎に再計算されます。" + +#. module: product +#: help:product.category,sequence:0 +msgid "" +"Gives the sequence order when displaying a list of product categories." +msgstr "製品分類のリストを表示する時に並び順を与えます。" + +#. module: product +#: field:product.uom,factor:0 +#: field:product.uom,factor_inv:0 +msgid "Ratio" +msgstr "比率" + +#. module: product +#: help:product.template,purchase_ok:0 +msgid "" +"Determine if the product is visible in the list of products within a " +"selection from a purchase order line." +msgstr "製品を発注オーダー行からの選択範囲内の製品のリストの中に見せるかどうかを決めて下さい。" + +#. module: product +#: field:product.template,weight_net:0 +msgid "Net Weight" +msgstr "正味重量" + +#. module: product +#: field:product.packaging,width:0 +msgid "Width" +msgstr "幅" + +#. module: product +#: help:product.price.type,field:0 +msgid "Associated field in the product form." +msgstr "製品フォームの中の関係項目" + +#. module: product +#: view:product.product:0 +msgid "Unit of Measure" +msgstr "単位" + +#. module: product +#: field:product.template,procure_method:0 +msgid "Procurement Method" +msgstr "調達方法" + +#. module: product +#: report:product.pricelist:0 +msgid "Printing Date" +msgstr "印刷日" + +#. module: product +#: field:product.template,uos_id:0 +msgid "Unit of Sale" +msgstr "販売単位" + +#. module: product +#: help:product.template,seller_delay:0 +msgid "" +"This is the average delay in days between the purchase order confirmation " +"and the reception of goods for this product and for the default supplier. It " +"is used by the scheduler to order requests based on reordering delays." +msgstr "" +"これはこの製品とデフォルト仕入先のための発注オーダーの確認から製品を受け取るまでの平均遅延日数です。これは再オーダーの遅延を元にしたオーダー要求のためにス" +"ケジューラによって使用されます。" + +#. module: product +#: help:product.template,seller_id:0 +msgid "Main Supplier who has highest priority in Supplier List." +msgstr "仕入先リストの中で最も優先度を持つ主要仕入先" + +#. module: product +#: model:product.category,name:product.product_category_services +#: view:product.product:0 +msgid "Services" +msgstr "サービス" + +#. module: product +#: model:ir.actions.act_window,name:product.product_form_config_action +msgid "Create or Import Products" +msgstr "製品を作成またはインポート" + +#. module: product +#: field:product.pricelist.item,base_pricelist_id:0 +msgid "If Other Pricelist" +msgstr "他の価格リストであれば" + +#. module: product +#: model:ir.actions.act_window,name:product.product_normal_action +#: model:ir.actions.act_window,name:product.product_normal_action_puchased +#: model:ir.actions.act_window,name:product.product_normal_action_sell +#: model:ir.actions.act_window,name:product.product_normal_action_tree +#: model:ir.ui.menu,name:product.menu_products +#: model:ir.ui.menu,name:product.prod_config_main +#: view:product.product:0 +msgid "Products" +msgstr "製品" + +#. module: product +#: help:product.packaging,rows:0 +msgid "The number of layers on a pallet or box" +msgstr "パレットや箱の層の数" + +#. module: product +#: help:product.pricelist.item,base:0 +msgid "The mode for computing the price for this rule." +msgstr "このルールによる価格計算のためのモード" + +#. module: product +#: view:product.packaging:0 +#: view:product.product:0 +msgid "Pallet Dimension" +msgstr "パレットの寸法" + +#. module: product +#: code:addons/product/product.py:668 +#, python-format +msgid " (copy)" +msgstr " (コピー)" + +#. module: product +#: field:product.template,seller_ids:0 +msgid "Partners" +msgstr "パートナ" + +#. module: product +#: help:product.template,sale_delay:0 +msgid "" +"This is the average delay in days between the confirmation of the customer " +"order and the delivery of the finished products. It's the time you promise " +"to your customers." +msgstr "これは顧客オーダーの確認から完成された製品の配達までの平均遅延日数です。これは顧客に約束する時間です。" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +msgid "Second UoM" +msgstr "第2の単位" + +#. module: product +#: code:addons/product/product.py:143 +#, python-format +msgid "Error !" +msgstr "エラー" + +#. module: product +#: model:ir.actions.act_window,name:product.product_uom_form_action +#: model:ir.ui.menu,name:product.menu_product_uom_form_action +#: model:ir.ui.menu,name:product.next_id_16 +#: view:product.uom:0 +msgid "Units of Measure" +msgstr "単位" + +#. module: product +#: field:product.supplierinfo,min_qty:0 +msgid "Minimal Quantity" +msgstr "最小数量" + +#. module: product +#: model:product.category,name:product.product_category_pc +msgid "PC" +msgstr "" + +#. module: product +#: help:product.supplierinfo,product_code:0 +msgid "" +"This supplier's product code will be used when printing a request for " +"quotation. Keep empty to use the internal one." +msgstr "この仕入先の製品コードは見積要求を印刷する時に使用されます。内部で使用するには空のままとします。" + +#. module: product +#: selection:product.template,procure_method:0 +msgid "Make to Stock" +msgstr "在庫の作成" + +#. module: product +#: field:product.pricelist.item,price_version_id:0 +msgid "Price List Version" +msgstr "価格リストバージョン" + +#. module: product +#: field:product.product,virtual_available:0 +msgid "Quantity Available" +msgstr "利用可能数量" + +#. module: product +#: help:product.pricelist.item,sequence:0 +msgid "" +"Gives the order in which the pricelist items will be checked. The evaluation " +"gives highest priority to lowest sequence and stops as soon as a matching " +"item is found." +msgstr "価格リスト項目がチェックされる順序を与えます。その評価は低い順序に最も高い優先度を与えます。そして、一致する項目が見つかると停止します。" + +#. module: product +#: selection:product.template,type:0 +msgid "Consumable" +msgstr "売り切り品" + +#. module: product +#: help:product.price.type,currency_id:0 +msgid "The currency the field is expressed in." +msgstr "項目を表現する通貨" + +#. module: product +#: help:product.template,weight:0 +msgid "The gross weight in Kg." +msgstr "総重量kg" + +#. module: product +#: model:product.template,name:product.product_product_sidepanel0_product_template +msgid "Side Panel" +msgstr "横パネル" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +msgid "Procurement" +msgstr "調達" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +msgid "Weights" +msgstr "重量" + +#. module: product +#: field:product.uom,category_id:0 +msgid "UoM Category" +msgstr "単位分類" + +#. module: product +#: field:product.template,loc_rack:0 +msgid "Rack" +msgstr "ラック" + +#. module: product +#: field:product.template,uom_po_id:0 +msgid "Purchase Unit of Measure" +msgstr "支払単位" + +#. module: product +#: field:product.template,supply_method:0 +msgid "Supply Method" +msgstr "供給方法" + +#. module: product +#: model:ir.actions.act_window,help:product.product_category_action +msgid "" +"Here is a list of all your products classified by category. You can click a " +"category to get the list of all products linked to this category or to a " +"child of this category." +msgstr "" +"これは分類によって分類されたあなたの全ての製品のリストです。この分類またはこの分類の子にリンクした全ての製品のリストを得るために分類をクリックすることがで" +"きます。" + +#. module: product +#: view:product.product:0 +msgid "Group by..." +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_cpu_gen_product_template +msgid "Regular processor config" +msgstr "定期的な処理の設定" + +#. module: product +#: help:product.template,type:0 +msgid "" +"Will change the way procurements are processed. Consumable are product where " +"you don't manage stock." +msgstr "調達を処理する方法を変更します。売り切り品は在庫を管理しない製品です。" + +#. module: product +#: field:product.pricelist.version,date_start:0 +msgid "Start Date" +msgstr "開始日" + +#. module: product +#: help:product.template,produce_delay:0 +msgid "" +"Average delay in days to produce this product. This is only for the " +"production order and, if it is a multi-level bill of material, it's only for " +"the level of this product. Different lead times will be summed for all " +"levels and purchase orders." +msgstr "" +"この製品の製造のための平均遅延日数。これは製造オーダーのためだけであり、もし複数レベルの部品表である場合は、その製品のレベルのためだけである。リードタイム" +"は全てのレベルそして発注オーダーを合計したものである。" + +#. module: product +#: model:product.template,name:product.product_product_pc1_product_template +msgid "Basic PC" +msgstr "ベーシック PC" + +#. module: product +#: help:product.pricelist,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the pricelist " +"without removing it." +msgstr "アクティブ項目がFalseにセットされた場合は、価格リストを削除することなく非表示にできます。" + +#. module: product +#: model:product.uom,name:product.product_uom_cm +msgid "cm" +msgstr "" + +#. module: product +#: model:ir.model,name:product.model_product_uom +msgid "Product Unit of Measure" +msgstr "製品単位" + +#. module: product +#: constraint:product.template:0 +msgid "" +"Error: The default UOM and the purchase UOM must be in the same category." +msgstr "エラー:デフォルトの単位と仕入単位は同じ分類でなければいけません。" + +#. module: product +#: field:product.uom,rounding:0 +msgid "Rounding Precision" +msgstr "丸め精度" + +#. module: product +#: view:product.uom:0 +msgid "Unit of Measure Properties" +msgstr "単位属性" + +#. module: product +#: model:product.template,name:product.product_product_shelf1_product_template +msgid "Rack 200cm" +msgstr "ラック 200cm" + +#. module: product +#: selection:product.template,supply_method:0 +msgid "Buy" +msgstr "購入" + +#. module: product +#: view:product.uom.categ:0 +msgid "Units of Measure categories" +msgstr "単位の分類" + +#. module: product +#: help:product.packaging,weight_ul:0 +msgid "The weight of the empty UL" +msgstr "空のULの重量" + +#. module: product +#: model:product.template,name:product.product_product_woodmm10_product_template +msgid "Wood 10mm" +msgstr "木材 10mm" + +#. module: product +#: selection:product.uom,uom_type:0 +msgid "Smaller than the reference UoM" +msgstr "基準単位より小さい" + +#. module: product +#: field:product.price.type,active:0 +#: field:product.pricelist,active:0 +#: field:product.pricelist.version,active:0 +#: field:product.product,active:0 +#: field:product.uom,active:0 +msgid "Active" +msgstr "アクティブ" + +#. module: product +#: field:product.product,price_margin:0 +msgid "Variant Price Margin" +msgstr "変化する利鞘" + +#. module: product +#: sql_constraint:product.uom:0 +msgid "The conversion ratio for a unit of measure cannot be 0!" +msgstr "単位の変換比率は0にできません。" + +#. module: product +#: help:product.packaging,ean:0 +msgid "The EAN code of the package unit." +msgstr "パッケージ単位のEANコード" + +#. module: product +#: help:product.supplierinfo,product_uom:0 +msgid "This comes from the product form." +msgstr "これは製品フォームから来ています。" + +#. module: product +#: field:product.packaging,weight_ul:0 +msgid "Empty Package Weight" +msgstr "空のパッケージ重量" + +#. module: product +#: field:product.price.type,field:0 +msgid "Product Field" +msgstr "製品項目" + +#. module: product +#: field:product.template,mes_type:0 +msgid "Measure Type" +msgstr "測定タイプ" + +#. module: product +#: help:product.uom,factor:0 +msgid "" +"How many times this UoM is smaller than the reference UoM in this category:\n" +"1 * (reference unit) = ratio * (this unit)" +msgstr "" +"この単位はこの分類の基準単位より何倍くらい小さいか:\n" +"1 * (基準単位) = 比率 * (この単位)" + +#. module: product +#: model:ir.actions.act_window,name:product.product_price_type_action +#: model:ir.ui.menu,name:product.menu_product_price_type +msgid "Price Types" +msgstr "価格タイプ" + +#. module: product +#: help:product.template,uom_id:0 +msgid "Default Unit of Measure used for all stock operation." +msgstr "全在庫操作のために使用されるデフォルト単位" + +#. module: product +#: model:product.category,name:product.product_category_misc0 +msgid "Misc" +msgstr "その他" + +#. module: product +#: model:product.template,name:product.product_product_pc4_product_template +msgid "Customizable PC" +msgstr "カスタマイズ可能 PC" + +#. module: product +#: field:pricelist.partnerinfo,price:0 +msgid "Unit Price" +msgstr "単価" + +#. module: product +#: model:product.category,name:product.product_category_7 +#: model:product.template,name:product.product_product_1_product_template +msgid "Onsite Intervention" +msgstr "現場調停" + +#. module: product +#: model:product.pricelist,name:product.list0 +msgid "Public Pricelist" +msgstr "公開価格リスト" + +#. module: product +#: model:product.category,name:product.product_category_marketableproduct0 +msgid "Marketable Products" +msgstr "市場性のある製品" + +#. module: product +#: field:product.supplierinfo,product_code:0 +msgid "Supplier Product Code" +msgstr "仕入先製品コード" + +#. module: product +#: view:product.product:0 +msgid "Default UOM" +msgstr "デフォルト単位" + +#. module: product +#: selection:product.ul,type:0 +msgid "Pallet" +msgstr "パレット" + +#. module: product +#: field:product.packaging,ul_qty:0 +msgid "Package by layer" +msgstr "層別パッケージ" + +#. module: product +#: field:product.template,warranty:0 +msgid "Warranty (months)" +msgstr "保証(月)" + +#. module: product +#: help:product.pricelist.item,categ_id:0 +msgid "" +"Set a category of product if this rule only apply to products of a category " +"and his children. Keep empty for all products" +msgstr "このルールが分類またはその子の製品にのみ適用される場合、製品の分類をセットして下さい。全ての製品に適用する場合は空のままとします。" + +#. module: product +#: model:ir.model,name:product.model_product_product +#: model:process.node,name:product.process_node_product0 +#: model:process.process,name:product.process_process_productprocess0 +#: field:product.packaging,product_id:0 +#: field:product.pricelist.item,product_id:0 +#: view:product.product:0 +#: field:product.supplierinfo,product_id:0 +#: model:res.request.link,name:product.req_link_product +msgid "Product" +msgstr "製品" + +#. module: product +#: selection:product.template,supply_method:0 +msgid "Produce" +msgstr "製造" + +#. module: product +#: selection:product.template,procure_method:0 +msgid "Make to Order" +msgstr "オーダーの作成" + +#. module: product +#: help:product.template,supply_method:0 +msgid "" +"Produce will generate production order or tasks, according to the product " +"type. Buy will trigger purchase orders when requested." +msgstr "製造は製品タイプによって製造オーダーまたはタスクを生成します。購入は発注オーダーが要求された時に行われます。" + +#. module: product +#: field:product.product,variants:0 +msgid "Variants" +msgstr "変形" + +#. module: product +#: model:ir.actions.act_window,name:product.product_category_action +#: model:ir.ui.menu,name:product.menu_products_category +msgid "Products by Category" +msgstr "分類別製品" + +#. module: product +#: field:product.template,uos_coeff:0 +msgid "UOM -> UOS Coeff" +msgstr "単位 -> 販売単位係数" + +#. module: product +#: help:product.supplierinfo,sequence:0 +msgid "Assigns the priority to the list of product supplier." +msgstr "製品仕入先のリストに優先度を割り当てます。" + +#. module: product +#: field:product.template,uom_id:0 +msgid "Default Unit of Measure" +msgstr "デフォルト単位" + +#. module: product +#: model:product.template,name:product.product_product_tow1_product_template +msgid "ATX Mid-size Tower" +msgstr "ATX ミッドサイズタワー" + +#. module: product +#: view:product.pricelist.item:0 +msgid "Rounding Method" +msgstr "丸め方法" + +#. module: product +#: model:product.category,name:product.product_category_assembly +msgid "Assembly Service" +msgstr "組立サービス" + +#. module: product +#: model:ir.actions.report.xml,name:product.report_product_label +msgid "Products Labels" +msgstr "製品ラベル" + +#. module: product +#: model:product.ul,name:product.product_ul_big_box +msgid "Box 30x40x60" +msgstr "箱 30x40x60" + +#. module: product +#: selection:product.template,type:0 +msgid "Service" +msgstr "サービス" + +#. module: product +#: help:product.packaging,height:0 +msgid "The height of the package" +msgstr "パッケージの高さ" + +#. module: product +#: view:product.pricelist:0 +msgid "Products Price List" +msgstr "製品価格リスト" + +#. module: product +#: field:product.pricelist,company_id:0 +#: field:product.pricelist.item,company_id:0 +#: field:product.pricelist.version,company_id:0 +#: view:product.product:0 +#: field:product.supplierinfo,company_id:0 +#: field:product.template,company_id:0 +msgid "Company" +msgstr "会社" + +#. module: product +#: help:product.template,list_price:0 +msgid "" +"Base price for computing the customer price. Sometimes called the catalog " +"price." +msgstr "顧客価格計算のための基本価格です。時々はカタログ価格と呼ばれます。" + +#. module: product +#: code:addons/product/pricelist.py:376 +#, python-format +msgid "Partner section of the product form" +msgstr "" + +#. module: product +#: help:product.price.type,name:0 +msgid "Name of this kind of price." +msgstr "" + +#. module: product +#: field:product.supplierinfo,product_uom:0 +msgid "Supplier UoM" +msgstr "" + +#. module: product +#: help:product.pricelist.version,date_start:0 +msgid "Starting date for this pricelist version to be valid." +msgstr "" + +#. module: product +#: help:product.template,uom_po_id:0 +msgid "" +"Default Unit of Measure used for purchase orders. It must be in the same " +"category than the default unit of measure." +msgstr "" + +#. module: product +#: model:product.template,description:product.product_product_cpu1_product_template +msgid "This product is configured with example of push/pull flows" +msgstr "" + +#. module: product +#: field:product.packaging,length:0 +msgid "Length" +msgstr "" + +#. module: product +#: model:product.uom.categ,name:product.uom_categ_length +msgid "Length / Distance" +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_0_product_template +msgid "Onsite Senior Intervention" +msgstr "" + +#. module: product +#: model:ir.model,name:product.model_product_pricelist_type +#: field:product.pricelist,type:0 +msgid "Pricelist Type" +msgstr "" + +#. module: product +#: model:product.category,name:product.product_category_otherproducts0 +msgid "Other Products" +msgstr "" + +#. module: product +#: field:product.product,color:0 +msgid "Color Index" +msgstr "" + +#. module: product +#: view:product.product:0 +msgid "Characteristics" +msgstr "" + +#. module: product +#: field:product.template,sale_ok:0 +msgid "Can be Sold" +msgstr "" + +#. module: product +#: field:product.template,produce_delay:0 +msgid "Manufacturing Lead Time" +msgstr "" + +#. module: product +#: field:product.supplierinfo,pricelist_ids:0 +msgid "Supplier Pricelist" +msgstr "" + +#. module: product +#: code:addons/product/product.py:175 +#, python-format +msgid "Warning" +msgstr "" + +#. module: product +#: field:product.pricelist.item,base:0 +msgid "Based on" +msgstr "" + +#. module: product +#: model:product.uom,name:product.product_uom_ton +msgid "t" +msgstr "" + +#. module: product +#: model:product.category,name:product.product_category_rawmaterial0 +msgid "Raw Materials" +msgstr "" + +#. module: product +#: help:product.template,product_manager:0 +msgid "This is use as task responsible" +msgstr "" + +#. module: product +#: field:product.pricelist,name:0 +msgid "Pricelist Name" +msgstr "" + +#. module: product +#: model:ir.model,name:product.model_product_pricelist_version +#: view:product.pricelist:0 +#: view:product.pricelist.version:0 +msgid "Pricelist Version" +msgstr "" + +#. module: product +#: view:product.pricelist.item:0 +msgid "* ( 1 + " +msgstr "" + +#. module: product +#: help:product.packaging,weight:0 +msgid "The weight of a full package, pallet or box." +msgstr "パッケージ、パレット、箱を含む全重量" + +#. module: product +#: model:product.template,name:product.product_product_hdd2_product_template +msgid "HDD Seagate 7200.8 120GB" +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_employee0_product_template +msgid "Employee" +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_shelfofcm0_product_template +msgid "Shelf of 100cm" +msgstr "" + +#. module: product +#: model:ir.model,name:product.model_product_category +#: field:product.pricelist.item,categ_id:0 +msgid "Product Category" +msgstr "" + +#. module: product +#: report:product.pricelist:0 +msgid "Price List Name" +msgstr "" + +#. module: product +#: field:product.supplierinfo,delay:0 +msgid "Delivery Lead Time" +msgstr "" + +#. module: product +#: help:product.uom,active:0 +msgid "" +"By unchecking the active field you can disable a unit of measure without " +"deleting it." +msgstr "" + +#. module: product +#: model:ir.actions.act_window,name:product.product_uom_categ_form_action +#: model:ir.ui.menu,name:product.menu_product_uom_categ_form_action +msgid "UoM Categories" +msgstr "" + +#. module: product +#: field:product.template,seller_delay:0 +msgid "Supplier Lead Time" +msgstr "" + +#. module: product +#: selection:product.ul,type:0 +msgid "Box" +msgstr "箱" + +#. module: product +#: model:ir.actions.act_window,help:product.product_ul_form_action +msgid "" +"Create and manage your packaging dimensions and types you want to be " +"maintained in your system." +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_rearpanelarm1_product_template +msgid "Rear Panel SHE200" +msgstr "" + +#. module: product +#: help:product.pricelist.type,key:0 +msgid "" +"Used in the code to select specific prices based on the context. Keep " +"unchanged." +msgstr "" + +#. module: product +#: view:product.product:0 +msgid "Context..." +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_hdd1_product_template +msgid "HDD Seagate 7200.8 80GB" +msgstr "" + +#. module: product +#: help:product.supplierinfo,qty:0 +msgid "This is a quantity which is converted into Default Uom." +msgstr "" + +#. module: product +#: field:product.packaging,ul:0 +msgid "Type of Package" +msgstr "" + +#. module: product +#: selection:product.ul,type:0 +msgid "Pack" +msgstr "" + +#. module: product +#: model:product.category,name:product.product_category_4 +msgid "Dello Computer" +msgstr "" + +#. module: product +#: model:product.uom.categ,name:product.product_uom_categ_kgm +msgid "Weight" +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_22_product_template +msgid "Processor on demand" +msgstr "" + +#. module: product +#: model:process.transition,name:product.process_transition_supplierofproduct0 +msgid "Supplier of the product" +msgstr "" + +#. module: product +#: field:product.product,product_image:0 +msgid "Image" +msgstr "" + +#. module: product +#: field:product.uom,uom_type:0 +msgid "UoM Type" +msgstr "" + +#. module: product +#: help:product.product,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the product " +"without removing it." +msgstr "" + +#. module: product +#: help:product.uom,rounding:0 +msgid "" +"The computed quantity will be a multiple of this value. Use 1.0 for a UoM " +"that cannot be further split, such as a piece." +msgstr "" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +msgid "Descriptions" +msgstr "" + +#. module: product +#: field:product.template,loc_row:0 +msgid "Row" +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_rearpanelarm0_product_template +msgid "Rear Panel SHE100" +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_23_product_template +msgid "Complete PC With Peripherals" +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_hotelexpenses0_product_template +msgid "Hotel Expenses" +msgstr "" + +#. module: product +#: help:product.uom,factor_inv:0 +msgid "" +"How many times this UoM is bigger than the reference UoM in this category:\n" +"1 * (this unit) = ratio * (reference unit)" +msgstr "" +"この単位はこの分類の基準単位より何倍くらい大きいか:\n" +"1 * (この単位) = 比率 * (基準単位)" + +#. module: product +#: model:product.template,name:product.product_product_shelf0_product_template +msgid "Rack 100cm" +msgstr "" + +#. module: product +#: help:product.packaging,sequence:0 +msgid "Gives the sequence order when displaying a list of packaging." +msgstr "" + +#. module: product +#: field:product.pricelist.item,price_round:0 +msgid "Price Rounding" +msgstr "" + +#. module: product +#: code:addons/product/pricelist.py:178 +#, python-format +msgid "" +"At least one pricelist has no active version !\n" +"Please create or activate one." +msgstr "" + +#. module: product +#: field:product.pricelist.item,price_max_margin:0 +msgid "Max. Price Margin" +msgstr "最大利鞘" + +#. module: product +#: help:product.supplierinfo,product_name:0 +msgid "" +"This supplier's product name will be used when printing a request for " +"quotation. Keep empty to use the internal one." +msgstr "" + +#. module: product +#: selection:product.template,mes_type:0 +msgid "Variable" +msgstr "" + +#. module: product +#: field:product.template,rental:0 +msgid "Can be Rent" +msgstr "" + +#. module: product +#: model:product.price.type,name:product.standard_price +#: field:product.template,standard_price:0 +msgid "Cost Price" +msgstr "" + +#. module: product +#: field:product.pricelist.item,price_min_margin:0 +msgid "Min. Price Margin" +msgstr "最小利鞘" + +#. module: product +#: field:product.template,weight:0 +msgid "Gross Weight" +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_assemblysection0_product_template +msgid "Assembly Section" +msgstr "" + +#. module: product +#: model:product.category,name:product.product_category_3 +msgid "Computer Stuff" +msgstr "" + +#. module: product +#: model:product.category,name:product.product_category_8 +msgid "Phone Help" +msgstr "" + +#. module: product +#: field:product.category,sequence:0 +#: field:product.packaging,sequence:0 +#: field:product.pricelist.item,sequence:0 +#: field:product.supplierinfo,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: product +#: model:product.template,name:product.product_assembly_product_template +msgid "Assembly Service Cost" +msgstr "" + +#. module: product +#: view:product.price_list:0 +msgid "Close" +msgstr "" + +#. module: product +#: model:ir.model,name:product.model_product_pricelist_item +msgid "Pricelist item" +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_21_product_template +msgid "RAM on demand" +msgstr "" + +#. module: product +#: view:res.partner:0 +msgid "Sales Properties" +msgstr "" + +#. module: product +#: view:product.product:0 +#: view:product.template:0 +msgid "Delays" +msgstr "" + +#. module: product +#: view:product.product:0 +msgid "Both stockable and consumable products" +msgstr "在庫品と売り切り品の" + +#. module: product +#: model:process.node,note:product.process_node_product0 +msgid "Creation of the product" +msgstr "" + +#. module: product +#: field:pricelist.partnerinfo,name:0 +#: field:product.packaging,name:0 +#: report:product.pricelist:0 +#: view:product.product:0 +#: view:product.template:0 +#: field:product.template,description:0 +msgid "Description" +msgstr "" + +#. module: product +#: field:product.packaging,ean:0 +msgid "EAN" +msgstr "" + +#. module: product +#: view:product.template:0 +msgid "Product Description" +msgstr "" + +#. module: product +#: view:product.pricelist.item:0 +msgid " ) + " +msgstr "" + +#. module: product +#: field:product.template,volume:0 +msgid "Volume" +msgstr "" + +#. module: product +#: field:product.template,loc_case:0 +msgid "Case" +msgstr "" + +#. module: product +#: view:product.product:0 +#: model:res.groups,name:product.group_product_variant +msgid "Product Variant" +msgstr "変形製品" + +#. module: product +#: model:product.category,name:product.product_category_shelves0 +msgid "Shelves" +msgstr "" + +#. module: product +#: code:addons/product/pricelist.py:375 +#, python-format +msgid "Other Pricelist" +msgstr "" + +#. module: product +#: model:ir.model,name:product.model_product_template +#: field:product.pricelist.item,product_tmpl_id:0 +#: field:product.product,product_tmpl_id:0 +#: view:product.template:0 +msgid "Product Template" +msgstr "" + +#. module: product +#: field:product.template,cost_method:0 +msgid "Costing Method" +msgstr "" + +#. module: product +#: view:product.packaging:0 +#: view:product.product:0 +msgid "Palletization" +msgstr "" + +#. module: product +#: help:product.template,volume:0 +msgid "The volume in m3." +msgstr "" + +#. module: product +#: selection:product.template,state:0 +msgid "End of Lifecycle" +msgstr "" + +#. module: product +#: help:product.product,packaging:0 +msgid "" +"Gives the different ways to package the same product. This has no impact on " +"the picking order and is mainly used if you use the EDI module." +msgstr "" + +#. module: product +#: model:ir.actions.act_window,name:product.product_pricelist_action +#: model:ir.ui.menu,name:product.menu_product_pricelist_action +#: field:product.pricelist,version_id:0 +msgid "Pricelist Versions" +msgstr "" + +#. module: product +#: model:product.template,name:product.product_product_span100_product_template +msgid "Shelf Panel" +msgstr "" + +#. module: product +#: help:product.pricelist.item,price_round:0 +msgid "" +"Sets the price so that it is a multiple of this value.\n" +"Rounding is applied after the discount and before the surcharge.\n" +"To have prices that end in 9.99, set rounding 10, surcharge -0.01" +msgstr "" + +#. module: product +#: field:product.template,list_price:0 +msgid "Sale Price" +msgstr "" + +#. module: product +#: constraint:product.category:0 +msgid "Error ! You cannot create recursive categories." +msgstr "" + +#. module: product +#: field:product.category,type:0 +msgid "Category Type" +msgstr "" + +#. module: product +#: model:product.category,name:product.cat2 +msgid "Private" +msgstr "" + +#. module: product +#: help:product.template,uos_coeff:0 +msgid "" +"Coefficient to convert UOM to UOS\n" +" uos = uom * coeff" +msgstr "" + +#. module: product +#: constraint:res.partner:0 +msgid "Error ! You cannot create recursive associated members." +msgstr "" + +#. module: product +#: field:product.pricelist.item,price_discount:0 +msgid "Price Discount" +msgstr "" diff --git a/addons/product/product.py b/addons/product/product.py index 4201c16402a..f81378be04e 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -518,7 +518,7 @@ class product_product(osv.osv): 'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the product without removing it."), 'variants': fields.char('Variants', size=64), 'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=True, ondelete="cascade"), - 'ean13': fields.char('EAN13', size=13), + 'ean13': fields.char('EAN13', size=13, help="The numbers encoded in EAN-13 bar codes are product identification numbers."), 'packaging' : fields.one2many('product.packaging', 'product_id', 'Logistical Units', help="Gives the different ways to package the same product. This has no impact on the picking order and is mainly used if you use the EDI module."), 'price_extra': fields.float('Variant Price Extra', digits_compute=dp.get_precision('Sale Price')), 'price_margin': fields.float('Variant Price Margin', digits_compute=dp.get_precision('Sale Price')), diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml index 5d06a80b024..98ae3671eb2 100644 --- a/addons/product/product_view.xml +++ b/addons/product/product_view.xml @@ -68,7 +68,7 @@ <field name="type">form</field> <field eval="7" name="priority"/> <field name="arch" type="xml"> - <form string="Product"> + <form string="Product" layout="auto"> <group colspan="4" col="8"> <group colspan="4" col="2"> <separator string="Name" colspan="2"/> @@ -78,7 +78,7 @@ <group colspan="1" col="2"> <separator string="Codes" colspan="2"/> <field name="default_code"/> - <field name="ean13"/> + <field name="ean13" placeholder="5901234123457" /> </group> <group colspan="1" col="2"> <separator string="Characteristics" colspan="2"/> @@ -163,9 +163,9 @@ <separator string="Description"/> <field colspan="4" name="description" nolabel="1"/> <separator string="Sale Description"/> - <field colspan="4" name="description_sale" nolabel="1"/> + <field colspan="4" name="description_sale" nolabel="1" placeholder="This note will be displayed on quotations..."/> <separator string="Purchase Description"/> - <field colspan="4" name="description_purchase" nolabel="1"/> + <field colspan="4" name="description_purchase" nolabel="1" placeholder="This note will be displayed on requests for quotation..."/> </page> <page groups="product.group_stock_packaging" string="Packaging"> <field colspan="4" name="packaging" nolabel="1"> @@ -190,7 +190,9 @@ </field> </page> </notebook> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <div class="oe_form_sheet_width"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </div> </form> </field> </record> @@ -358,7 +360,7 @@ action="product_category_action" id="product.menu_products_category" parent="base.menu_product" - sequence="0"/> + sequence="0" groups="base.group_no_one"/> <record id="product_category_action_form" model="ir.actions.act_window"> <field name="name">Product Categories</field> <field name="type">ir.actions.act_window</field> @@ -414,7 +416,7 @@ <group col="2" colspan="2"> <separator string="Unit of Measure Properties" colspan="4"/> <field name="name" select="1"/> - <field name="category_id" select="1" widget="selection"/> + <field name="category_id" select="1"/> <field name="active"/> </group> <group col="4" colspan="4"> @@ -467,7 +469,7 @@ <field name="view_mode">tree,form</field> <field name="help">Create and manage the units of measure categories you want to be used in your system. If several units of measure are in the same category, they can be converted to each other. For example, in the unit of measure category "Time", you will have the following UoM: Hours, Days.</field> </record> - <menuitem action="product_uom_categ_form_action" id="menu_product_uom_categ_form_action" parent="base.menu_base_config" sequence="25" groups="product.group_uom"/> + <menuitem action="product_uom_categ_form_action" id="menu_product_uom_categ_form_action" parent="base.menu_base_config" sequence="25" groups="base.group_no_one"/> <record id="product_ul_form_view" model="ir.ui.view"> <field name="name">product.ul.form.view</field> diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index ef26425d3c9..2c53fc2a28a 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -28,7 +28,7 @@ "category": "Project Management", "sequence": 8, "images": ["images/gantt.png", "images/project_dashboard.jpeg","images/project_task_tree.jpeg","images/project_task.jpeg","images/project.jpeg","images/task_analysis.jpeg"], - "depends": ["base_setup", "product", "analytic", "board", "mail", "resource","web_kanban"], + "depends": ["base_setup", "base_status", "product", "analytic", "board", "mail", "resource","web_kanban"], "description": """ Project management module tracks multi-level projects, tasks, work done on tasks, eso. ====================================================================================== diff --git a/addons/project/board_project_view.xml b/addons/project/board_project_view.xml index fa6816ebbf7..a4b302f33f2 100644 --- a/addons/project/board_project_view.xml +++ b/addons/project/board_project_view.xml @@ -17,11 +17,8 @@ <field name="planned_hours" widget="float_time"/> <field name="effective_hours" widget="float_time"/> <field name="progress" widget="progressbar"/> - <field name="state" invisible="context.get('set_visible',False)"/> - <button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel" help="For cancelling the task"/> - <button name="do_open" states="pending,draft,done,cancel" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state" invisible="context.get('set_visible',False)"/> - <button name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-sort-descending" help="For changing to delegate state"/> - <button name="action_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close" help="For changing to done state"/> + <field name="stage_id" invisible="context.get('set_visible',False)"/> + <field name="state" invisible="context.get('set_visible',False)" groups="base.group_no_one"/> </tree> </field> </record> @@ -39,10 +36,8 @@ <field name="date_deadline"/> <field name="total_hours" widget="float_time"/> <field name="progress" widget="progressbar"/> - <field name="state" invisible="context.get('set_visible',False)"/> - <button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel" help="For cancelling the task"/> - <button name="do_open" states="pending,draft,done,cancel" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state" invisible="context.get('set_visible',False)"/> - <button name="action_close" states="draft,pending,open" string="Done" type="object" icon="gtk-apply" help="For changing to done state"/> + <field name="stage_id" invisible="context.get('set_visible',False)"/> + <field name="state" invisible="context.get('set_visible',False)" groups="base.group_no_one"/> </tree> </field> </record> diff --git a/addons/project/project.py b/addons/project/project.py index 0b23196a67f..e7af9f49b7d 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# Copyright (C) 2004-today OpenERP SA (<http://www.openerp.com>) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,18 +19,15 @@ # ############################################################################## -from lxml import etree -import time +from base_status.base_stage import base_stage from datetime import datetime, date - -from tools.translate import _ +from lxml import etree from osv import fields, osv from openerp.addons.resource.faces import task as Task +import time +from tools.translate import _ -# I think we can remove this in v6.1 since VMT's improvements in the framework ? -#class project_project(osv.osv): -# _name = 'project.project' -#project_project() +_TASK_STATE = [('draft', 'New'),('open', 'In Progress'),('pending', 'Pending'), ('done', 'Done'), ('cancelled', 'Cancelled')] class project_task_type(osv.osv): _name = 'project.task.type' @@ -40,14 +37,20 @@ class project_task_type(osv.osv): 'name': fields.char('Stage Name', required=True, size=64, translate=True), 'description': fields.text('Description'), 'sequence': fields.integer('Sequence'), - 'project_default': fields.boolean('Common to All Projects', help="If you check this field, this stage will be proposed by default on each new project. It will not assign this stage to existing projects."), + 'case_default': fields.boolean('Common to All Projects', + help="If you check this field, this stage will be proposed by default on each new project. It will not assign this stage to existing projects."), 'project_ids': fields.many2many('project.project', 'project_task_type_rel', 'type_id', 'project_id', 'Projects'), + 'state': fields.selection(_TASK_STATE, 'State', required=True, + help="The related state for the stage. The state of your document will automatically change regarding the selected stage. Example, a stage is related to the state 'Close', when your document reach this stage, it will be automatically closed."), + 'fold': fields.boolean('Hide in views if empty', + help="This stage is not visible, for example in status bar or kanban view, when there are no records in that stage to display."), } _defaults = { - 'sequence': 1 + 'sequence': 1, + 'state': 'draft', + 'fold': False, } _order = 'sequence' -project_task_type() class project(osv.osv): _name = "project.project" @@ -208,7 +211,7 @@ class project(osv.osv): return True def _get_type_common(self, cr, uid, context): - ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) + ids = self.pool.get('project.task.type').search(cr, uid, [('case_default','=',1)], context=context) return ids _order = "sequence" @@ -239,7 +242,7 @@ class project(osv.osv): def set_done(self, cr, uid, ids, context=None): task_obj = self.pool.get('project.task') task_ids = task_obj.search(cr, uid, [('project_id', 'in', ids), ('state', 'not in', ('cancelled', 'done'))]) - task_obj.write(cr, uid, task_ids, {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0}) + task_obj.case_close(cr, uid, task_ids, context=context) self.write(cr, uid, ids, {'state':'close'}, context=context) self.set_close_send_note(cr, uid, ids, context=context) return True @@ -247,7 +250,7 @@ class project(osv.osv): def set_cancel(self, cr, uid, ids, context=None): task_obj = self.pool.get('project.task') task_ids = task_obj.search(cr, uid, [('project_id', 'in', ids), ('state', '!=', 'done')]) - task_obj.write(cr, uid, task_ids, {'state': 'cancelled', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0}) + task_obj.case_cancel(cr, uid, task_ids, context=context) self.write(cr, uid, ids, {'state':'cancelled'}, context=context) self.set_cancel_send_note(cr, uid, ids, context=context) return True @@ -501,49 +504,60 @@ def Project(): def set_close_send_note(self, cr, uid, ids, context=None): message = _("Project has been <b>closed</b>.") return self.message_append_note(cr, uid, ids, body=message, context=context) - -project() -class task(osv.osv): + +class task(base_stage, osv.osv): _name = "project.task" _description = "Task" - _log_create = True _date_name = "date_start" _inherit = ['ir.needaction_mixin', 'mail.thread'] + def _get_default_project_id(self, cr, uid, context=None): + """ Gives default section by checking if present in the context """ + return (self._resolve_project_id_from_context(cr, uid, context=context) or False) + + def _get_default_stage_id(self, cr, uid, context=None): + """ Gives default stage_id """ + project_id = self._get_default_project_id(cr, uid, context=context) + return self.stage_find(cr, uid, [], project_id, [('state', '=', 'draft')], context=context) def _resolve_project_id_from_context(self, cr, uid, context=None): - """Return ID of project based on the value of 'project_id' - context key, or None if it cannot be resolved to a single project. + """ Returns ID of project based on the value of 'default_project_id' + context key, or None if it cannot be resolved to a single + project. """ if context is None: context = {} if type(context.get('default_project_id')) in (int, long): - project_id = context['default_project_id'] - return project_id + return context['default_project_id'] if isinstance(context.get('default_project_id'), basestring): project_name = context['default_project_id'] - project_ids = self.pool.get('project.project').name_search(cr, uid, name=project_name) + project_ids = self.pool.get('project.project').name_search(cr, uid, name=project_name, context=context) if len(project_ids) == 1: return project_ids[0][0] + return None - def _read_group_type_id(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): + def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): stage_obj = self.pool.get('project.task.type') - project_id = self._resolve_project_id_from_context(cr, uid, context=context) order = stage_obj._order access_rights_uid = access_rights_uid or uid - if read_group_order == 'type_id desc': - # lame way to allow reverting search, should just work in the trivial case + # lame way to allow reverting search, should just work in the trivial case + if read_group_order == 'stage_id desc': order = '%s desc' % order + # retrieve section_id from the context and write the domain + # - ('id', 'in', 'ids'): add columns that should be present + # - OR ('case_default', '=', True), ('fold', '=', False): add default columns that are not folded + # - OR ('project_ids', 'in', project_id), ('fold', '=', False) if project_id: add project columns that are not folded + search_domain = [] + project_id = self._resolve_project_id_from_context(cr, uid, context=context) if project_id: - domain = ['|', ('id','in',ids), ('project_ids','in',project_id)] - else: - domain = ['|', ('id','in',ids), ('project_default','=',1)] - stage_ids = stage_obj._search(cr, uid, domain, order=order, access_rights_uid=access_rights_uid, context=context) + search_domain += ['|', '&', ('project_ids', '=', project_id), ('fold', '=', False)] + search_domain += ['|', ('id', 'in', ids), '&', ('case_default', '=', True), ('fold', '=', False)] + stage_ids = stage_obj._search(cr, uid, search_domain, order=order, access_rights_uid=access_rights_uid, context=context) result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context) # restore order of the search result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) return result - + def _read_group_user_id(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): res_users = self.pool.get('res.users') project_id = self._resolve_project_id_from_context(cr, uid, context=context) @@ -562,11 +576,10 @@ class task(osv.osv): return result _group_by_full = { - 'type_id': _read_group_type_id, - 'user_id': _read_group_user_id + 'stage_id': _read_group_stage_ids, + 'user_id': _read_group_user_id, } - def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False): obj_project = self.pool.get('project.project') for domain in args: @@ -597,7 +610,6 @@ class task(osv.osv): res[task.id]['progress'] = 100.0 return res - def onchange_remaining(self, cr, uid, ids, remaining=0.0, planned = 0.0): if remaining and not planned: return {'value':{'planned_hours': remaining}} @@ -640,7 +652,7 @@ class task(osv.osv): if not default.get('remaining_hours', False): default['remaining_hours'] = float(self.read(cr, uid, id, ['planned_hours'])['planned_hours']) default['active'] = True - default['type_id'] = False + default['stage_id'] = False if not default.get('name', False): default['name'] = self.browse(cr, uid, id, context=context).name or '' if not context.get('copy',False): @@ -670,10 +682,15 @@ class task(osv.osv): 'description': fields.text('Description'), 'priority': fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Important'), ('0','Very important')], 'Priority', select=True), 'sequence': fields.integer('Sequence', select=True, help="Gives the sequence order when displaying a list of tasks."), - 'type_id': fields.many2one('project.task.type', 'Stage'), - 'state': fields.selection([('draft', 'New'),('cancelled', 'Cancelled'),('open', 'In Progress'),('pending', 'Pending'), ('done', 'Done')], 'Status', readonly=True, required=True, - help='If the task is created the state is \'Draft\'.\n If the task is started, the state becomes \'In Progress\'.\n If review is needed the task is in \'Pending\' state.\ - \n If the task is over, the states is set to \'Done\'.'), + 'stage_id': fields.many2one('project.task.type', 'Stage', + domain="['|', ('project_ids', '=', project_id), ('case_default', '=', True)]"), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=_TASK_STATE, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If the case needs to be reviewed then the state is \ + set to \'Pending\'.'), 'kanban_state': fields.selection([('normal', 'Normal'),('blocked', 'Blocked'),('done', 'Ready To Pull')], 'Kanban State', help="A task's kanban state indicates special situations affecting it:\n" " * Normal is the default situation\n" @@ -722,6 +739,8 @@ class task(osv.osv): } _defaults = { + 'stage_id': _get_default_stage_id, + 'project_id': _get_default_project_id, 'state': 'draft', 'kanban_state': 'normal', 'priority': '2', @@ -729,7 +748,7 @@ class task(osv.osv): 'sequence': 10, 'active': True, 'user_id': lambda obj, cr, uid, context: uid, - 'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'project.task', context=c) + 'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'project.task', context=c), } _order = "priority, sequence, date_start, name, id" @@ -828,6 +847,41 @@ class task(osv.osv): res['fields'][f]['string'] = res['fields'][f]['string'].replace('Hours',tm) return res + # **************************************** + # Case management + # **************************************** + + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the lead: + - section_id: if set, stages must belong to this section or + be a default stage; if not set, stages must be default + stages + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + section_ids = [] + if section_id: + section_ids.append(section_id) + for task in cases: + if task.project_id: + section_ids.append(task.project_id.id) + # OR all section_ids and OR with case_default + search_domain = [] + if section_ids: + search_domain += [('|')] * len(section_ids) + for section_id in section_ids: + search_domain.append(('project_ids', '=', section_id)) + search_domain.append(('case_default', '=', True)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('project.task.type').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] + return False + def _check_child_task(self, cr, uid, ids, context=None): if context == None: context = {} @@ -840,9 +894,9 @@ class task(osv.osv): return True def action_close(self, cr, uid, ids, context=None): - # This action open wizard to send email to partner or project manager after close task. - if context == None: - context = {} + """ This action closes the task, then opens the wizard to send an + email to the partner or the project manager. + """ task_id = len(ids) and ids[0] or False self._check_child_task(cr, uid, ids, context=context) if not task_id: return False @@ -863,28 +917,17 @@ class task(osv.osv): } return res - def do_close(self, cr, uid, ids, context={}): - """ - Close Task - """ + def do_close(self, cr, uid, ids, context=None): + """ Compatibility when changing to case_close. """ + return self.case_close(cr, uid, ids, context=context) + + def case_close(self, cr, uid, ids, context=None): + """ Closes Task """ request = self.pool.get('res.request') - if not isinstance(ids,list): ids = [ids] + if not isinstance(ids, list): ids = [ids] for task in self.browse(cr, uid, ids, context=context): vals = {} project = task.project_id - if project: - # Send request to project manager - if project.warn_manager and project.user_id and (project.user_id.id != uid): - request.create(cr, uid, { - 'name': _("Task '%s' closed") % task.name, - 'state': 'waiting', - 'act_from': uid, - 'act_to': project.user_id.id, - 'ref_partner_id': task.partner_id.id, - 'ref_doc1': 'project.task,%d'% (task.id,), - 'ref_doc2': 'project.project,%d'% (project.id,), - }, context=context) - for parent_id in task.parent_ids: if parent_id.state in ('pending','draft'): reopen = True @@ -893,71 +936,61 @@ class task(osv.osv): reopen = False if reopen: self.do_reopen(cr, uid, [parent_id.id], context=context) - vals.update({'state': 'done'}) - vals.update({'remaining_hours': 0.0}) + # close task + vals['remaining_hours'] = 0.0 if not task.date_end: - vals.update({ 'date_end':time.strftime('%Y-%m-%d %H:%M:%S')}) - self.write(cr, uid, [task.id],vals, context=context) - self.do_close_send_note(cr, uid, [task.id], context) + vals['date_end'] = fields.datetime.now() + self.case_set(cr, uid, [task.id], 'done', vals, context=context) + self.case_close_send_note(cr, uid, [task.id], context=context) return True def do_reopen(self, cr, uid, ids, context=None): - request = self.pool.get('res.request') - for task in self.browse(cr, uid, ids, context=context): project = task.project_id - if project and project.warn_manager and project.user_id.id and (project.user_id.id != uid): - request.create(cr, uid, { - 'name': _("Task '%s' set in progress") % task.name, - 'state': 'waiting', - 'act_from': uid, - 'act_to': project.user_id.id, - 'ref_partner_id': task.partner_id.id, - 'ref_doc1': 'project.task,%d' % task.id, - 'ref_doc2': 'project.project,%d' % project.id, - }, context=context) - - self.write(cr, uid, [task.id], {'state': 'open'}, context=context) - self.do_open_send_note(cr, uid, [task.id], context) + self.case_set(cr, uid, [task.id], 'open', {}, context=context) + self.case_open_send_note(cr, uid, [task.id], context) return True - def do_cancel(self, cr, uid, ids, context={}): + def do_cancel(self, cr, uid, ids, context=None): + """ Compatibility when changing to case_cancel. """ + return self.case_cancel(cr, uid, ids, context=context) + + def case_cancel(self, cr, uid, ids, context=None): request = self.pool.get('res.request') tasks = self.browse(cr, uid, ids, context=context) self._check_child_task(cr, uid, ids, context=context) for task in tasks: - project = task.project_id - if project.warn_manager and project.user_id and (project.user_id.id != uid): - request.create(cr, uid, { - 'name': _("Task '%s' cancelled") % task.name, - 'state': 'waiting', - 'act_from': uid, - 'act_to': project.user_id.id, - 'ref_partner_id': task.partner_id.id, - 'ref_doc1': 'project.task,%d' % task.id, - 'ref_doc2': 'project.project,%d' % project.id, - }, context=context) - self.write(cr, uid, [task.id], {'state': 'cancelled', 'remaining_hours':0.0}, context=context) - self.do_cancel_send_note(cr, uid, [task.id], context) + self.case_set(cr, uid, [task.id], 'cancelled', {'remaining_hours': 0.0}, context=context) + self.case_cancel_send_note(cr, uid, [task.id], context=context) return True - def do_open(self, cr, uid, ids, context={}): + def do_open(self, cr, uid, ids, context=None): + """ Compatibility when changing to case_open. """ + return self.case_open(cr, uid, ids, context=context) + + def case_open(self, cr, uid, ids, context=None): if not isinstance(ids,list): ids = [ids] - tasks= self.browse(cr, uid, ids, context=context) - for t in tasks: - data = {'state': 'open'} - if not t.date_start: - data['date_start'] = time.strftime('%Y-%m-%d %H:%M:%S') - self.write(cr, uid, [t.id], data, context=context) - self.do_open_send_note(cr, uid, [t.id], context) + self.case_set(cr, uid, ids, 'open', {'date_start': fields.datetime.now()}, context=context) + self.case_open_send_note(cr, uid, ids, context) return True - def do_draft(self, cr, uid, ids, context={}): - self.write(cr, uid, ids, {'state': 'draft'}, context=context) - self.do_draft_send_note(cr, uid, ids, context) + def do_draft(self, cr, uid, ids, context=None): + """ Compatibility when changing to case_draft. """ + return self.case_draft(cr, uid, ids, context=context) + + def case_draft(self, cr, uid, ids, context=None): + self.case_set(cr, uid, ids, 'draft', {}, context=context) + self.case_draft_send_note(cr, uid, ids, context=context) return True - + def do_pending(self, cr, uid, ids, context=None): + """ Compatibility when changing to case_pending. """ + return self.case_pending(cr, uid, ids, context=context) + + def case_pending(self, cr, uid, ids, context=None): + self.case_set(cr, uid, ids, 'pending', {}, context=context) + return self.case_pending_send_note(cr, uid, ids, context=context) + def _delegate_task_attachments(self, cr, uid, task_id, delegated_task_id, context=None): attachment = self.pool.get('ir.attachment') attachment_ids = attachment.search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', task_id)], context=context) @@ -966,7 +999,6 @@ class task(osv.osv): new_attachment_ids.append(attachment.copy(cr, uid, attachment_id, default={'res_id': delegated_task_id}, context=context)) return new_attachment_ids - def do_delegate(self, cr, uid, ids, delegate_data={}, context=None): """ Delegate Task to another users. @@ -1000,11 +1032,6 @@ class task(osv.osv): delegated_tasks[task.id] = delegated_task_id return delegated_tasks - def do_pending(self, cr, uid, ids, context={}): - self.write(cr, uid, ids, {'state': 'pending'}, context=context) - self.do_pending_send_note(cr, uid, ids, context) - return True - def set_remaining_time(self, cr, uid, ids, remaining_time=1.0, context=None): for task in self.browse(cr, uid, ids, context=context): if (task.state=='draft') or (task.planned_hours==0.0): @@ -1033,36 +1060,6 @@ class task(osv.osv): def set_kanban_state_done(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'kanban_state': 'done'}, context=context) - def _change_type(self, cr, uid, ids, next, context=None): - """ - go to the next stage - if next is False, go to previous stage - """ - for task in self.browse(cr, uid, ids): - if task.project_id.type_ids: - typeid = task.type_id.id - types_seq={} - for type in task.project_id.type_ids : - types_seq[type.id] = type.sequence - if next: - types = sorted(types_seq.items(), lambda x, y: cmp(x[1], y[1])) - else: - types = sorted(types_seq.items(), lambda x, y: cmp(y[1], x[1])) - sorted_types = [x[0] for x in types] - if not typeid: - self.write(cr, uid, task.id, {'type_id': sorted_types[0]}) - elif typeid and typeid in sorted_types and sorted_types.index(typeid) != len(sorted_types)-1: - index = sorted_types.index(typeid) - self.write(cr, uid, task.id, {'type_id': sorted_types[index+1]}) - self.state_change_send_note(cr, uid, [task.id], context) - return True - - def next_type(self, cr, uid, ids, context=None): - return self._change_type(cr, uid, ids, True, context=context) - - def prev_type(self, cr, uid, ids, context=None): - return self._change_type(cr, uid, ids, False, context=context) - def _store_history(self, cr, uid, ids, context=None): for task in self.browse(cr, uid, ids, context=context): self.pool.get('project.task.history').create(cr, uid, { @@ -1070,7 +1067,7 @@ class task(osv.osv): 'remaining_hours': task.remaining_hours, 'planned_hours': task.planned_hours, 'kanban_state': task.kanban_state, - 'type_id': task.type_id.id, + 'type_id': task.stage_id.id, 'state': task.state, 'user_id': task.user_id.id @@ -1084,22 +1081,25 @@ class task(osv.osv): return task_id # Overridden to reset the kanban_state to normal whenever - # the stage (type_id) of the task changes. + # the stage (stage_id) of the task changes. def write(self, cr, uid, ids, vals, context=None): if isinstance(ids, (int, long)): ids = [ids] - if vals and not 'kanban_state' in vals and 'type_id' in vals: - new_stage = vals.get('type_id') + if vals and not 'kanban_state' in vals and 'stage_id' in vals: + new_stage = vals.get('stage_id') vals_reset_kstate = dict(vals, kanban_state='normal') for t in self.browse(cr, uid, ids, context=context): - write_vals = vals_reset_kstate if t.type_id != new_stage else vals + #TO FIX:Kanban view doesn't raise warning + #stages = [stage.id for stage in t.project_id.type_ids] + #if new_stage not in stages: + #raise osv.except_osv(_('Warning !'), _('Stage is not defined in the project.')) + write_vals = vals_reset_kstate if t.stage_id != new_stage else vals super(task,self).write(cr, uid, [t.id], write_vals, context=context) result = True else: result = super(task,self).write(cr, uid, ids, vals, context=context) - if ('type_id' in vals) or ('remaining_hours' in vals) or ('user_id' in vals) or ('state' in vals) or ('kanban_state' in vals): + if ('stage_id' in vals) or ('remaining_hours' in vals) or ('user_id' in vals) or ('state' in vals) or ('kanban_state' in vals): self._store_history(cr, uid, ids, context=context) - self.state_change_send_note(cr, uid, ids, context) return result def unlink(self, cr, uid, ids, context=None): @@ -1139,7 +1139,11 @@ class task(osv.osv): # --------------------------------------------------- # OpenChatter methods and notifications # --------------------------------------------------- - + + def case_get_note_msg_prefix(self, cr, uid, id, context=None): + """ Override of default prefix for notifications. """ + return 'Task' + 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): @@ -1156,28 +1160,16 @@ class task(osv.osv): sub_ids.append(obj.manager_id.id) return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + stage_name = self.pool.get('project.task.type').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to <b>%s</b>.") % (stage_name), context=context) + def create_send_note(self, cr, uid, ids, context=None): return self.message_append_note(cr, uid, ids, body=_("Task has been <b>created</b>."), context=context) - def do_pending_send_note(self, cr, uid, ids, context=None): - if not isinstance(ids,list): ids = [ids] - msg = _('Task is now <b>pending</b>.') - return self.message_append_note(cr, uid, ids, body=msg, context=context) - - def do_open_send_note(self, cr, uid, ids, context=None): - msg = _('Task has been <b>opened</b>.') - return self.message_append_note(cr, uid, ids, body=msg, context=context) - - def do_cancel_send_note(self, cr, uid, ids, context=None): - msg = _('Task has been <b>canceled</b>.') - return self.message_append_note(cr, uid, ids, body=msg, context=context) - - def do_close_send_note(self, cr, uid, ids, context=None): - msg = _('Task has been <b>closed</b>.') - return self.message_append_note(cr, uid, ids, body=msg, context=context) - - def do_draft_send_note(self, cr, uid, ids, context=None): - msg = _('Task has been <b>renewed</b>.') + def case_draft_send_note(self, cr, uid, ids, context=None): + msg = _('Task has been set as <b>draft</b>.') return self.message_append_note(cr, uid, ids, body=msg, context=context) def do_delegation_send_note(self, cr, uid, ids, context=None): @@ -1186,13 +1178,6 @@ class task(osv.osv): self.message_append_note(cr, uid, [task.id], body=msg, context=context) return True - def state_change_send_note(self, cr, uid, ids, context=None): - for task in self.browse(cr, uid, ids, context=context): - msg = _('Stage changed to <b>%s</b>') % (task.type_id.name) - self.message_append_note(cr, uid, [task.id], body=msg, context=context) - return True - -task() class project_work(osv.osv): _name = "project.task.work" @@ -1231,7 +1216,7 @@ class project_work(osv.osv): for work in self.browse(cr, uid, ids): cr.execute('update project_task set remaining_hours=remaining_hours + %s where id=%s', (work.hours, work.task_id.id)) return super(project_work,self).unlink(cr, uid, ids,*args, **kwargs) -project_work() + class account_analytic_account(osv.osv): @@ -1252,7 +1237,6 @@ class account_analytic_account(osv.osv): raise osv.except_osv(_('Warning !'), _('Please delete the project linked with this account first.')) return super(account_analytic_account, self).unlink(cr, uid, ids, *args, **kwargs) -account_analytic_account() # # Tasks History, used for cumulative flow charts (Lean/Agile) @@ -1313,7 +1297,7 @@ class project_task_history(osv.osv): _defaults = { 'date': fields.date.context_today, } -project_task_history() + class project_task_history_cumulative(osv.osv): _name = 'project.task.history.cumulative' @@ -1341,4 +1325,4 @@ class project_task_history_cumulative(osv.osv): ) as history ) """) -project_task_history_cumulative() + diff --git a/addons/project/project_data.xml b/addons/project/project_data.xml index b7b59911fa4..4c95373d91f 100644 --- a/addons/project/project_data.xml +++ b/addons/project/project_data.xml @@ -24,22 +24,40 @@ <record id="project_tt_specification" model="project.task.type"> <field name="sequence">1</field> <field name="name">Design</field> - <field name="project_default" eval="1"/> + <field name="state">draft</field> + <field name="case_default" eval="True"/> </record> <record id="project_tt_development" model="project.task.type"> <field name="sequence">2</field> <field name="name">Development</field> - <field name="project_default" eval="1"/> + <field name="state">open</field> + <field name="case_default" eval="True"/> </record> <record id="project_tt_testing" model="project.task.type"> <field name="sequence">3</field> <field name="name">Testing</field> - <field name="project_default" eval="1"/> + <field name="state">open</field> + <field name="case_default" eval="True"/> </record> - <record id="project_tt_merge" model="project.task.type"> + <record id="project_tt_pending" model="project.task.type"> <field name="sequence">4</field> + <field name="name">Pending</field> + <field name="state">pending</field> + <field name="case_default" eval="True"/> + <field name="fold" eval="True"/> + </record> + <record id="project_tt_merge" model="project.task.type"> + <field name="sequence">5</field> <field name="name">Deployment</field> - <field name="project_default" eval="1"/> + <field name="state">done</field> + <field name="case_default" eval="True"/> + </record> + <record id="project_tt_cancel" model="project.task.type"> + <field name="sequence">6</field> + <field name="name">Cancelled</field> + <field name="state">cancelled</field> + <field name="case_default" eval="True"/> + <field name="fold" eval="True"/> </record> </data> </openerp> diff --git a/addons/project/project_demo.xml b/addons/project/project_demo.xml index 2f8c9e9638a..f685f14c85b 100644 --- a/addons/project/project_demo.xml +++ b/addons/project/project_demo.xml @@ -77,7 +77,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Prepare Requirements Document</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> <field name="color">3</field> </record> @@ -88,7 +88,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Make SRS</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <record id="project_task_3" model="project.task"> @@ -99,7 +99,7 @@ <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Design Use Cases</field> <field name="date_deadline" eval="time.strftime('%Y-%m-24')"/> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <record id="project_task_4" model="project.task"> @@ -112,7 +112,7 @@ <field name="description">Use the account_budget module</field> <field name="date_deadline" eval="time.strftime('%Y-%m-19')"/> <field name="color">3</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <record id="project_task_5" model="project.task"> @@ -125,7 +125,7 @@ <field name="kanban_state">done</field> <field name="priority">0</field> <field name="date_deadline" eval="time.strftime('%Y-%m-%d')"/> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <record id="project_task_6" model="project.task"> @@ -135,7 +135,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Risk Management Planning</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <record id="project_task_7" model="project.task"> @@ -145,7 +145,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Create Project Schedules</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <record id="project_task_8" model="project.task"> @@ -156,7 +156,7 @@ <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Dataflow Design</field> <field name="priority">0</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <record id="project_task_9" model="project.task"> @@ -166,7 +166,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">User Interface Design</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <record id="project_task_10" model="project.task"> @@ -177,7 +177,7 @@ <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Develop Module in Sale Management</field> <field name="kanban_state">blocked</field> - <field name="type_id" ref="project_tt_development"/> + <field name="stage_id" ref="project_tt_development"/> </record> <record id="project_task_11" model="project.task"> @@ -187,7 +187,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Develop module in Warehouse</field> - <field name="type_id" ref="project_tt_merge"/> + <field name="stage_id" ref="project_tt_merge"/> </record> <function model="project.task" name="do_close" eval="[ref('project_task_11')], {'install_mode': True}"/> @@ -199,7 +199,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Integrate Modules</field> - <field name="type_id" ref="project_tt_development"/> + <field name="stage_id" ref="project_tt_development"/> </record> <function model="project.task" name="do_close" eval="[ref('project_task_12')], {'install_mode': True}"/> @@ -211,7 +211,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Unit Testing</field> - <field name="type_id" ref="project_tt_development"/> + <field name="stage_id" ref="project_tt_development"/> </record> <function model="project.task" name="do_pending" eval="[ref('project_task_13')], {'install_mode': True}"/> @@ -223,8 +223,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Regression Test</field> - <field name="type_id" ref="project_tt_development"/> - <field name="state">pending</field> + <field name="stage_id" ref="project_tt_development"/> </record> <record id="project_task_15" model="project.task"> @@ -234,7 +233,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Documentation</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> <field name="date_start">2011-02-06</field> </record> @@ -247,7 +246,7 @@ <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Performance Tuning</field> <field name="description">Test on Runbot</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <function model="project.task" name="do_open" eval="[ref('project_task_16')], {'install_mode': True}"/> @@ -258,7 +257,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Deploy and Review on Customer System</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <function model="project.task" name="do_open" eval="[ref('project_task_17')], {'install_mode': True}"/> @@ -269,7 +268,7 @@ <field name="priority">2</field> <field name="project_id" ref="project.project_integrate_openerp"/> <field name="name">Training and Presentation</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <!-- @@ -322,7 +321,7 @@ <record id="project_task_116" model="project.task"> <field name="planned_hours">38.0</field> <field name="remaining_hours">38.0</field> - <field name="type_id" ref="project_tt_development"/> + <field name="stage_id" ref="project_tt_development"/> <field name="user_id" eval="False"/> <field name="project_id" ref="project_project_22"/> <field name="description">BoM, After sales returns, interventions. Traceability.</field> @@ -334,7 +333,7 @@ <field name="planned_hours">16.0</field> <field name="remaining_hours">16.0</field> <field name="user_id" eval="False"/> - <field name="type_id" ref="project_tt_development"/> + <field name="stage_id" ref="project_tt_development"/> <field name="project_id" ref="project_project_23"/> <field name="name">Data importation + Doc</field> </record> @@ -344,7 +343,7 @@ <field name="planned_hours">16.0</field> <field name="remaining_hours">16.0</field> <field name="user_id" eval="False"/> - <field name="type_id" ref="project_tt_development"/> + <field name="stage_id" ref="project_tt_development"/> <field name="project_id" ref="project_project_23"/> <field name="name">Modifications asked by the customer.</field> </record> @@ -353,7 +352,7 @@ <record id="project_task_184" model="project.task"> <field name="planned_hours">16.0</field> <field name="remaining_hours">16.0</field> - <field name="type_id" ref="project_tt_testing"/> + <field name="stage_id" ref="project_tt_testing"/> <field name="user_id" eval="False"/> <field name="priority">0</field> <field name="project_id" ref="project_project_21"/> @@ -364,7 +363,7 @@ <field name="sequence">15</field> <field name="planned_hours">8.0</field> <field name="remaining_hours">8.0</field> - <field name="type_id" ref="project_tt_testing"/> + <field name="stage_id" ref="project_tt_testing"/> <field name="user_id" eval="False"/> <field name="project_id" ref="project_project_21"/> <field name="name">Internal testing + Software Install</field> @@ -374,7 +373,7 @@ <field name="sequence">17</field> <field name="planned_hours">16.0</field> <field name="remaining_hours">16.0</field> - <field name="type_id" ref="project_tt_development"/> + <field name="stage_id" ref="project_tt_development"/> <field name="user_id" eval="False"/> <field name="priority">2</field> <field name="project_id" ref="project_project_21"/> @@ -389,7 +388,7 @@ <field name="user_id" eval="False"/> <field name="project_id" ref="project_project_23"/> <field name="name">Parameters</field> - <field name="type_id" ref="project_tt_specification"/> + <field name="stage_id" ref="project_tt_specification"/> </record> <function model="project.task" name="do_open" eval="[ref('project_task_189')], {'install_mode': True}"/> @@ -398,10 +397,9 @@ <field name="planned_hours">32.0</field> <field name="remaining_hours">32.0</field> <field name="user_id" eval="False"/> - <field name="state">open</field> <field name="project_id" ref="project_project_21"/> <field name="name">Start of the doc redaction + MRP</field> - <field name="type_id" ref="project_tt_testing"/> + <field name="stage_id" ref="project_tt_testing"/> </record> <!-- Schedule tasks to assign users and dates --> diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 70cdac1efa0..853c1e49dce 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -19,7 +19,7 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Project" layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="set_done" string="Done" type="object" states="open,pending"/> <button name="set_open" string="Re-open project" type="object" states="pending,cancelled,close"/> <button name="set_pending" string="Pending" type="object" states="open"/> @@ -27,11 +27,8 @@ <button string="New Project Based on Template" name="duplicate_template" type="object" states="template" context="{'parent_id':parent_id}"/> <button name="reset_project" string="Reset as Project" type="object" states="template"/> <button name="set_cancel" string="Cancel" type="object" states="open,pending"/> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="open,close" statusbar_colors='{"pending":"blue"}' select="1" readonly="1"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="open,close" statusbar_colors='{"pending":"blue"}' readonly="1"/> + </header> <sheet string="Project" layout="auto"> <group colspan="6" col="6"> <field name="name" string="Project Name" select="1"/> @@ -102,7 +99,7 @@ <newline/> </sheet> <div class="oe_form_bottom"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> @@ -161,9 +158,9 @@ </tree> </field> </record> - + <act_window - context="{'search_default_project_id': [active_id], 'default_project_id': active_id}" + context="{'search_default_project_id': active_id, 'default_project_id': active_id}" id="act_project_project_2_project_task_all" name="Tasks" res_model="project.task" @@ -188,7 +185,7 @@ <field name="task_count"/> <templates> <t t-name="kanban-box"> - <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_auto_height"> + <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_auto_height oe_kanban_global_click"> <a class="oe_kanban_menuaction oe_i">B</a> <ul class="oe_kanban_menu"> <li><a type="edit">Edit...</a></li> @@ -304,19 +301,27 @@ <field eval="2" name="priority"/> <field name="arch" type="xml"> <form string="Project" layout="manual"> - <div class="oe_form_topbar"> - <button name="action_close" states="pending,open" string="Done" type="object"/> - <button name="do_open" states="pending,draft" string="Start Task" type="object"/> - <button name="%(action_project_task_reevaluate)d" states="done,cancelled" string="Reactivate" type="action" context="{'button_reactivate':True}" /> - <button name="do_pending" states="open" string="Pending" type="object"/> - <button name="do_draft" states="open" string="Draft" type="object"/> - <button name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action"/> - <button name="do_cancel" states="draft,open,pending" string="Cancel" type="object"/> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}' select="1"/> - </div> - <div class="oe_clear"/> - </div> + <header> + <button name="do_open" string="Start Task" type="object" + states="draft,pending"/> + <button name="%(action_project_task_reevaluate)d" string="Reactivate" type="action" + states="done,cancelled" context="{'button_reactivate':True}"/> + <button name="do_pending" string="Pending" type="object" + states="open"/> + <button name="action_close" string="Done" type="object" + states="draft,open,pending"/> + <button name="do_draft" string="Draft" type="object" + states="cancel,done"/> + <button name="%(action_project_task_delegate)d" string="Delegate" type="action" + states="pending,open,draft"/> + <button name="do_cancel" string="Cancel" type="object" + states="draft,open,pending" /> + <button name="stage_previous" string="Previous Stage" type="object" + states="open,pending" icon="gtk-go-back" attrs="{'invisible': [('stage_id','=', False)]}"/> + <button name="stage_next" string="Next Stage" type="object" + states="open,pending" icon="gtk-go-forward" attrs="{'invisible': [('stage_id','=', False)]}"/> + <field name="stage_id" widget="statusbar"/> + </header> <sheet string="Task edition" layout="auto"> <group colspan="6" col="6"> <field name="name" select="1"/> @@ -362,7 +367,8 @@ <tree string="Delegated tasks"> <field name="name"/> <field name="user_id"/> - <field name="state"/> + <field name="stage_id"/> + <field name="state" groups="base.group_no_one"/> <field name="effective_hours" widget="float_time"/> <field name="progress" widget="progressbar"/> <field name="remaining_hours" widget="float_time"/> @@ -376,43 +382,40 @@ <separator string="Planning" colspan="2"/> <field name="priority"/> <field name="sequence"/> + <field name="state" groups="base.group_no_one"/> </group> <separator string="Miscellaneous" colspan="4"/> <field name="partner_id" /> <field name="company_id" select="1" groups="base.group_multi_company" widget="selection"/> - <group col="4" colspan="2"> - <field name="type_id" widget="selection" readonly="1"/> - <button name="prev_type" string="Previous" type="object" icon="gtk-go-back" help="Change to Previous Stage"/> - <button name="next_type" string="Next" type="object" icon="gtk-go-forward" help="Change to Next Stage"/> - </group> + <field name="state" groups="base.group_no_one"/> <separator colspan="4" string="Notes"/> <field colspan="4" name="notes" nolabel="1"/> </page> </notebook> </sheet> <div class="oe_form_bottom"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> </record> - + <!-- Project Task Kanban View --> <record model="ir.ui.view" id="view_task_kanban"> <field name="name">project.task.kanban</field> <field name="model">project.task</field> <field name="type">kanban</field> <field name="arch" type="xml"> - <kanban default_group_by="type_id" > + <kanban default_group_by="stage_id" > <field name="color"/> <field name="priority"/> - <field name="type_id"/> + <field name="stage_id"/> <field name="user_id"/> <field name="user_email"/> <field name="description"/> <field name="sequence"/> - <field name="state"/> + <field name="state" groups="base.group_no_one"/> <field name="kanban_state"/> <field name="remaining_hours" sum="Remaining Time" groups="project.group_time_work_estimation_tasks"/> <field name="date_deadline"/> @@ -476,9 +479,9 @@ <a name="action_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close"/> </div> <div class="oe_kanban_right"> - <a name="set_kanban_state_blocked" string="Mark as Blocked" kanban_states="normal,done" type="object" icon="kanban-stop"/> - <a name="set_kanban_state_normal" string="Normal" kanban_states="blocked,done" type="object" icon="gtk-media-play"/> - <a name="set_kanban_state_done" string="Done" kanban_states="blocked,normal" type="object" icon="kanban-apply"/> + <a name="set_kanban_state_blocked" string="Mark as Blocked" attrs="{'invisible' : [('kanban_state', 'not in', ('normal', 'done'))]}" type="object" icon="kanban-stop"/> + <a name="set_kanban_state_normal" string="Normal" attrs="{'invisible' : [('kanban_state', 'not in', ('blocked', 'done'))]}" type="object" icon="gtk-media-play"/> + <a name="set_kanban_state_done" string="Done" attrs="{'invisible' : [('kanban_state', 'not in', ('blocked', 'normal'))]}" type="object" icon="kanban-apply"/> </div> <div class="oe_kanban_clear"/> </div> @@ -508,20 +511,11 @@ <field name="effective_hours" widget="float_time" sum="Spent Hours" invisible="1"/> <field name="remaining_hours" widget="float_time" sum="Remaining Hours" on_change="onchange_remaining(remaining_hours,planned_hours)" invisible="context.get('set_visible',False)" groups="project.group_time_work_estimation_tasks"/> <field name="date_deadline" invisible="context.get('deadline_visible',True)"/> - <field name="type_id" invisible="context.get('set_visible',False)"/> - <button name="next_type" invisible="context.get('set_visible',False)" - states="draft,open,pending" - string="Change Stage" - type="object" - icon="gtk-go-forward" - help="Change Type"/> + <field name="stage_id" invisible="context.get('set_visible',False)"/> + <field name="state" invisible="context.get('set_visible',False)" groups="base.group_no_one"/> <field name="date_start" invisible="1" groups="base.group_no_one"/> <field name="date_end" invisible="1" groups="base.group_no_one"/> <field name="progress" widget="progressbar" invisible="context.get('set_visible',False)"/> - <field name="state" invisible="context.get('set_visible',False)"/> - <button name="do_open" states="pending,draft,done,cancelled" string="Start Task" type="object" icon="gtk-media-play" help="For changing to open state" invisible="context.get('set_visible',False)"/> - <button name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="terp-personal" help="For changing to delegate state"/> - <button name="action_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close" help="For changing to done state"/> </tree> </field> </record> @@ -578,6 +572,7 @@ <separator orientation="vertical"/> <field name="name"/> <filter name="project" string="Project" domain="[('project_id.user_id','=',uid)]" help="My Projects" icon="terp-check"/> + <field name="project_id"/> <field name="user_id"> <filter string="My Tasks" domain="[('user_id','=',uid)]" help="My Tasks" icon="terp-personal" /> <filter string="Unassigned Tasks" domain="[('user_id','=',False)]" help="Unassigned Tasks" icon="terp-personal-" /> @@ -589,7 +584,7 @@ <separator orientation="vertical"/> <filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/> <separator orientation="vertical"/> - <filter string="Stage" name="group_stage_id" icon="terp-stage" domain="[]" context="{'group_by':'type_id'}"/> + <filter string="Stage" name="group_stage_id" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/> <filter string="Status" name="group_state" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> <separator orientation="vertical"/> <filter string="Deadline" icon="terp-gnome-cpu-frequency-applet+" domain="[]" context="{'group_by':'date_deadline'}"/> @@ -660,7 +655,7 @@ <field name="arch" type="xml"> <search string="Tasks Stages"> <group> - <filter icon="terp-check" string="Common" name="common" domain="[('project_default', '=', 1)]" help="Stages common to all projects"/> + <filter icon="terp-check" string="Common" name="common" domain="[('case_default', '=', 1)]" help="Stages common to all projects"/> <separator orientation="vertical"/> <field name="name"/> </group> @@ -674,10 +669,14 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Task Stage"> - <group colspan="4" col="6"> - <field name="name"/> - <field name="project_default"/> - <field name="sequence"/> + <group colspan="2" col="2"> + <field name="name"/> + <field name="state"/> + </group> + <group colspan="2" col="4"> + <field name="case_default"/> + <field name="sequence"/> + <field name="fold"/> </group> <separator string="Description" colspan="4"/> <field colspan="4" name="description" nolabel="1"/> @@ -693,6 +692,7 @@ <tree string="Task Stage"> <field name="sequence"/> <field name="name"/> + <field name="state"/> </tree> </field> </record> @@ -707,12 +707,12 @@ <menuitem id="menu_tasks_config" name="GTD" parent="project.menu_definitions" sequence="1"/> - <menuitem id="menu_project_config_project" name="Stages" parent="menu_definitions" sequence="1"/> + <menuitem id="menu_project_config_project" name="Stages" parent="project.menu_definitions" sequence="1"/> - <menuitem action="open_task_type_form" id="menu_task_types_view" parent="menu_project_config_project" sequence="2" groups="base.group_no_one"/> + <menuitem action="open_task_type_form" name="Task Stages" id="menu_task_types_view" parent="menu_project_config_project" sequence="2"/> <menuitem action="open_view_project_all" id="menu_projects" name="Projects" parent="menu_project_management" sequence="1"/> - <act_window context="{'search_default_user_id': [active_id], 'default_user_id': active_id}" id="act_res_users_2_project_project" name="User's projects" res_model="project.project" src_model="res.users" view_mode="tree,form" view_type="form"/> + <act_window context="{'search_default_user_id': active_id, 'default_user_id': active_id}" id="act_res_users_2_project_project" name="User's projects" res_model="project.project" src_model="res.users" view_mode="tree,form" view_type="form"/> <record id="task_company" model="ir.ui.view"> <field name="name">res.company.task.config</field> diff --git a/addons/project/report/project_cumulative.xml b/addons/project/report/project_cumulative.xml index 89667992f0a..3c04d36feb6 100644 --- a/addons/project/report/project_cumulative.xml +++ b/addons/project/report/project_cumulative.xml @@ -15,7 +15,8 @@ <field name="user_id"/> <field name="remaining_hours"/> <field name="kanban_state"/> - <field name="state"/> + <field name="stage_id"/> + <field name="state" groups="base.group_no_one"/> </tree> </field> </record> diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py index 1012ca9d518..58f7739e96d 100644 --- a/addons/project/report/project_report.py +++ b/addons/project/report/project_report.py @@ -82,7 +82,7 @@ class report_project_task_user(osv.osv): t.name as name, t.company_id, t.partner_id, - t.type_id, + t.stage_id, remaining_hours as remaining_hours, total_hours as total_hours, t.delay_hours as hours_delay, @@ -114,7 +114,7 @@ class report_project_task_user(osv.osv): name, t.company_id, t.partner_id, - t.type_id + t.stage_id """) diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml index 3bdec47fcb9..240176f7941 100644 --- a/addons/project/report/project_report_view.xml +++ b/addons/project/report/project_report_view.xml @@ -214,7 +214,7 @@ <tree string="Task By Days" > <field name="day"/> <field name="total_task"/> - <field name="state"/> + <field name="state" groups="base.group_no_one"/> </tree> </field> </record> diff --git a/addons/project/res_config_view.xml b/addons/project/res_config_view.xml index ee937bfdcfc..4914ff26e88 100644 --- a/addons/project/res_config_view.xml +++ b/addons/project/res_config_view.xml @@ -8,10 +8,10 @@ <field name="priority" eval="20"/> <field name="arch" type="xml"> <form string="Configure Project" layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Apply" type="object" name="execute"/> <button string="Cancel" special="cancel"/> - </div> + </header> <sheet layout="auto"> <separator string="Project" colspan="4"/> <field name="module_project_mrp"/> diff --git a/addons/project/test/task_process.yml b/addons/project/test/task_process.yml index c4d17f783f6..ad4bbe53bb3 100644 --- a/addons/project/test/task_process.yml +++ b/addons/project/test/task_process.yml @@ -40,7 +40,7 @@ I change the stage of task to next stage. - !python {model: project.task}: | - self.next_type(cr, uid, [ref("project_task_1")]) + self.stage_next(cr, uid, [ref("project_task_1")]) - !record {model: project.task.reevaluate, id: reevaluate_id}: remaining_hours : 120 @@ -68,9 +68,9 @@ I change the stage of task to previous stage. - !python {model: project.task}: | - self.prev_type(cr, uid, [ref("project_task_1")]) + self.stage_previous(cr, uid, [ref("project_task_1")]) - I cancel Task. - !python {model: project.task}: | - self.do_cancel(cr, uid, [ref("project_task_2")])
\ No newline at end of file + self.do_cancel(cr, uid, [ref("project_task_2")]) diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py index fc88372fe90..9037523d41e 100644 --- a/addons/project_issue/__openerp__.py +++ b/addons/project_issue/__openerp__.py @@ -38,6 +38,7 @@ and decide on their status as they evolve. 'website': 'http://www.openerp.com', 'images': ['images/issue_analysis.jpeg','images/project_issue.jpeg'], 'depends': [ + 'base_status', 'crm', 'project', ], diff --git a/addons/project_issue/board_project_issue_view.xml b/addons/project_issue/board_project_issue_view.xml index a070bdbe521..b6e1f8a5d99 100644 --- a/addons/project_issue/board_project_issue_view.xml +++ b/addons/project_issue/board_project_issue_view.xml @@ -35,7 +35,7 @@ <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="vertical" string="Project Issue" type="bar"> - <field name="type_id"/> + <field name="stage_id"/> <field name="nbr" operator="+"/> <field group="True" name="user_id"/> </graph> @@ -96,18 +96,10 @@ <field name="partner_id"/> <field name="project_id" /> <field name="priority" string="Priority"/> - <field name="type_id" widget="selection" readonly="1"/> - <button name="prev_type" string="Previous" type="object" icon="gtk-go-back" help="Change to Previous Stage"/> - <button name="next_type" string="Next" type="object" icon="gtk-go-forward" help="Change to Next Stage"/> <field name="version_id" widget="selection"/> <field name="progress" widget="progressbar" attrs="{'invisible':[('task_id','=',False)]}"/> - <field name="state"/> - <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/> - <button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/> - <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward" help="To Do"/> - <button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/> - <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" icon="gtk-go-up"/> - <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/> + <field name="stage_id" widget="selection" readonly="1"/> + <field name="state" groups="base.group_no_one"/> <field name="categ_id" invisible="1"/> <field name="task_id" invisible="1"/> </tree> diff --git a/addons/project_issue/i18n/sv.po b/addons/project_issue/i18n/sv.po new file mode 100644 index 00000000000..134b7a9477b --- /dev/null +++ b/addons/project_issue/i18n/sv.po @@ -0,0 +1,952 @@ +# 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 01:37+0100\n" +"PO-Revision-Date: 2012-05-30 19:13+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-05-31 04:54+0000\n" +"X-Generator: Launchpad (build 15322)\n" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Previous Month" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,delay_open:0 +msgid "Avg. Delay to Open" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 view:project.issue.report:0 +msgid "Group By..." +msgstr "" + +#. module: project_issue +#: field:project.issue,working_hours_open:0 +msgid "Working Hours to Open the Issue" +msgstr "" + +#. module: project_issue +#: constraint:project.project:0 +msgid "Error! project start-date must be lower then project end-date." +msgstr "" + +#. module: project_issue +#: field:project.issue,date_open:0 +msgid "Opened" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,opening_date:0 +msgid "Date of Opening" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "March" +msgstr "" + +#. module: project_issue +#: field:project.issue,progress:0 +msgid "Progress (%)" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:406 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: project_issue +#: field:project.issue,company_id:0 view:project.issue.report:0 +#: field:project.issue.report,company_id:0 +msgid "Company" +msgstr "" + +#. module: project_issue +#: field:project.issue,email_cc:0 +msgid "Watchers Emails" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Today's features" +msgstr "" + +#. module: project_issue +#: model:ir.model,name:project_issue.model_project_issue_version +msgid "project.issue.version" +msgstr "" + +#. module: project_issue +#: field:project.issue,day_open:0 +msgid "Days to Open" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:406 +#, python-format +msgid "" +"You cannot escalate this issue.\n" +"The relevant Project has not configured the Escalation Project!" +msgstr "" + +#. module: project_issue +#: constraint:project.project:0 +msgid "Error! You cannot assign escalation to the same project!" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Highest" +msgstr "" + +#. module: project_issue +#: help:project.issue,inactivity_days:0 +msgid "Difference in days between last action and current date" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 field:project.issue.report,day:0 +msgid "Day" +msgstr "" + +#. module: project_issue +#: field:project.issue,days_since_creation:0 +msgid "Days since creation date" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Add Internal Note" +msgstr "" + +#. module: project_issue +#: field:project.issue,task_id:0 view:project.issue.report:0 +#: field:project.issue.report,task_id:0 +msgid "Task" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "Issues By Stage" +msgstr "" + +#. module: project_issue +#: field:project.issue,message_ids:0 +msgid "Messages" +msgstr "" + +#. module: project_issue +#: field:project.issue,inactivity_days:0 +msgid "Days since last action" +msgstr "" + +#. module: project_issue +#: model:ir.model,name:project_issue.model_project_project +#: view:project.issue:0 field:project.issue,project_id:0 +#: view:project.issue.report:0 field:project.issue.report,project_id:0 +msgid "Project" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_view_my_open_project_issue_tree +msgid "My Open Project issues" +msgstr "" + +#. module: project_issue +#: selection:project.issue,state:0 selection:project.issue.report,state:0 +msgid "Cancelled" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Change to Next Stage" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,date_closed:0 +msgid "Date of Closing" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Issue Tracker Search" +msgstr "" + +#. module: project_issue +#: field:project.issue,color:0 +msgid "Color Index" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Issue / Partner" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,working_hours_open:0 +msgid "Avg. Working Hours to Open" +msgstr "" + +#. module: project_issue +#: field:project.issue,date_action_next:0 +msgid "Next Action" +msgstr "" + +#. module: project_issue +#: help:project.project,project_escalation_id:0 +msgid "" +"If any issue is escalated from the current Project, it will be listed under " +"the project selected here." +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Extra Info" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,help:project_issue.action_project_issue_report +msgid "" +"This report on the project issues allows you to analyse the quality of your " +"support or after-sales services. You can track the issues per age. You can " +"analyse the time required to open or close an issue, the number of email to " +"exchange and the time spent on average by issues." +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Change Color" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:482 +#, python-format +msgid " (copy)" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Responsible" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Low" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Statistics" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Convert To Task" +msgstr "" + +#. module: project_issue +#: model:crm.case.categ,name:project_issue.bug_categ +msgid "Maintenance" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_project_issue_report +#: model:ir.ui.menu,name:project_issue.menu_project_issue_report_tree +#: view:project.issue.report:0 +msgid "Issues Analysis" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Next" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,priority:0 +#: view:project.issue.report:0 field:project.issue.report,priority:0 +msgid "Priority" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Send New Email" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,version_id:0 +#: view:project.issue.report:0 field:project.issue.report,version_id:0 +msgid "Version" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 selection:project.issue,state:0 +#: view:project.issue.report:0 +msgid "New" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.project_issue_categ_action +msgid "Issue Categories" +msgstr "" + +#. module: project_issue +#: field:project.issue,email_from:0 +msgid "Email" +msgstr "" + +#. module: project_issue +#: field:project.issue,channel_id:0 field:project.issue.report,channel_id:0 +msgid "Channel" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Lowest" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Unassigned Issues" +msgstr "" + +#. module: project_issue +#: field:project.issue,create_date:0 view:project.issue.report:0 +#: field:project.issue.report,creation_date:0 +msgid "Creation Date" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.project_issue_version_action +#: model:ir.ui.menu,name:project_issue.menu_project_issue_version_act +msgid "Versions" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "To Do Issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Reset to Draft" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Today" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.open_board_project_issue +#: model:ir.ui.menu,name:project_issue.menu_deshboard_project_issue +msgid "Project Issue Dashboard" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 selection:project.issue,state:0 +#: view:project.issue.report:0 +msgid "Done" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "July" +msgstr "" + +#. module: project_issue +#: model:ir.ui.menu,name:project_issue.menu_project_issue_category_act +msgid "Categories" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 view:project.issue.report:0 +#: field:project.issue.report,type_id:0 +msgid "Stage" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "History Information" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_view_current_project_issue_tree +#: model:ir.actions.act_window,name:project_issue.action_view_pending_project_issue_tree +msgid "Project issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Communication & History" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "My Open Project Issue" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_view_my_project_issue_tree +msgid "My Project Issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Contact" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,partner_id:0 +#: view:project.issue.report:0 field:project.issue.report,partner_id:0 +msgid "Partner" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "My Issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Change to Previous Stage" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,help:project_issue.project_issue_version_action +msgid "" +"You can use the issues tracker in OpenERP to handle bugs in the software " +"development project, to handle claims in after-sales services, etc. Define " +"here the different versions of your products on which you can work on issues." +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:330 +#, python-format +msgid "Tasks" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,nbr:0 +msgid "# of Issues" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "September" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "December" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Issue Tracker Tree" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 view:project.issue.report:0 +#: field:project.issue.report,month:0 +msgid "Month" +msgstr "" + +#. module: project_issue +#: model:ir.model,name:project_issue.model_project_issue_report +msgid "project.issue.report" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:408 view:project.issue:0 +#, python-format +msgid "Escalate" +msgstr "" + +#. module: project_issue +#: model:crm.case.categ,name:project_issue.feature_request_categ +msgid "Feature Requests" +msgstr "" + +#. module: project_issue +#: field:project.issue,write_date:0 +msgid "Update Date" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Open Features" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Previous" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,categ_id:0 +#: view:project.issue.report:0 field:project.issue.report,categ_id:0 +msgid "Category" +msgstr "" + +#. module: project_issue +#: field:project.issue,user_email:0 +msgid "User Email" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "#Number of Project Issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Reset to New" +msgstr "" + +#. module: project_issue +#: help:project.issue,channel_id:0 +msgid "Communication channel." +msgstr "" + +#. module: project_issue +#: help:project.issue,email_cc:0 +msgid "" +"These email addresses will be added to the CC field of all inbound and " +"outbound emails for this record before being sent. Separate multiple email " +"addresses with a comma" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,state:0 +msgid "Draft" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Contact Information" +msgstr "" + +#. module: project_issue +#: field:project.issue,date_closed:0 selection:project.issue.report,state:0 +msgid "Closed" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Reply" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,delay_close:0 +msgid "Avg. Delay to Close" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 selection:project.issue,state:0 +#: view:project.issue.report:0 selection:project.issue.report,state:0 +msgid "Pending" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Status" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "#Project Issues" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "Current Issues" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "August" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Normal" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Global CC" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 view:project.issue.report:0 +msgid "To Do" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "June" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "New Issues" +msgstr "" + +#. module: project_issue +#: field:project.issue,day_close:0 +msgid "Days to Close" +msgstr "" + +#. module: project_issue +#: field:project.issue,active:0 field:project.issue.version,active:0 +msgid "Active" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "November" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Search" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "October" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "Issues Dashboard" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,type_id:0 +msgid "Stages" +msgstr "" + +#. module: project_issue +#: help:project.issue,days_since_creation:0 +msgid "Difference in days between creation date and current date" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "January" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Feature Tracker Tree" +msgstr "" + +#. module: project_issue +#: help:project.issue,email_from:0 +msgid "These people will receive email." +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "Issues By State" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,date:0 +msgid "Date" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "History" +msgstr "" + +#. module: project_issue +#: field:project.issue,user_id:0 view:project.issue.report:0 +#: field:project.issue.report,user_id:0 +msgid "Assigned to" +msgstr "" + +#. module: project_issue +#: field:project.project,reply_to:0 +msgid "Reply-To Email Address" +msgstr "" + +#. module: project_issue +#: field:project.issue,partner_address_id:0 +msgid "Partner Contact" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Issue Tracker Form" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,state:0 +#: view:project.issue.report:0 field:project.issue.report,state:0 +msgid "State" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "General" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Current Features" +msgstr "" + +#. module: project_issue +#: view:project.issue.version:0 +msgid "Issue Version" +msgstr "" + +#. module: project_issue +#: field:project.issue.version,name:0 +msgid "Version Number" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Cancel" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Close" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 selection:project.issue.report,state:0 +msgid "Open" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.act_project_project_2_project_issue_all +#: model:ir.actions.act_window,name:project_issue.project_issue_categ_act0 +#: model:ir.ui.menu,name:project_issue.menu_project_confi +#: model:ir.ui.menu,name:project_issue.menu_project_issue_track +#: view:project.issue:0 +msgid "Issues" +msgstr "" + +#. module: project_issue +#: selection:project.issue,state:0 +msgid "In Progress" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_stage +#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_state +#: model:ir.model,name:project_issue.model_project_issue +#: view:project.issue.report:0 +msgid "Project Issue" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Creation Month" +msgstr "" + +#. module: project_issue +#: help:project.issue,progress:0 +msgid "Computed as: Time Spent / Total Time." +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,help:project_issue.project_issue_categ_act0 +msgid "" +"Issues such as system bugs, customer complaints, and material breakdowns are " +"collected here. You can define the stages assigned when solving the project " +"issue (analysis, development, done). With the mailgateway module, issues can " +"be integrated through an email address (example: support@mycompany.com)" +msgstr "" + +#. module: project_issue +#: view:board.board:0 view:project.issue:0 +msgid "Pending Issues" +msgstr "" + +#. module: project_issue +#: field:project.issue,name:0 +msgid "Issue" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Feature Tracker Search" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 field:project.issue,description:0 +msgid "Description" +msgstr "" + +#. module: project_issue +#: field:project.issue,section_id:0 +msgid "Sales Team" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "May" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 field:project.issue.report,email:0 +msgid "# Emails" +msgstr "" + +#. module: project_issue +#: help:project.issue,state:0 +msgid "" +"The state is set to 'Draft', when a case is created. " +" \n" +"If the case is in progress the state is set to 'Open'. " +" \n" +"When the case is over, the state is set to 'Done'. " +" \n" +"If the case needs to be reviewed then the state is set to 'Pending'." +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "February" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:70 +#, python-format +msgid "Issue '%s' has been opened." +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Feature description" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Edit" +msgstr "" + +#. module: project_issue +#: field:project.project,project_escalation_id:0 +msgid "Project Escalation" +msgstr "" + +#. module: project_issue +#: help:project.issue,section_id:0 +msgid "" +"Sales team to which Case belongs to. Define " +"Responsible user and Email account for mail gateway." +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Month-1" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:85 +#, python-format +msgid "Issue '%s' has been closed." +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "April" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "References" +msgstr "" + +#. module: project_issue +#: field:project.issue,working_hours_close:0 +msgid "Working Hours to Close the Issue" +msgstr "" + +#. module: project_issue +#: field:project.issue,id:0 +msgid "ID" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Current Year" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:415 +#, python-format +msgid "No Title" +msgstr "" + +#. module: project_issue +#: help:project.issue.report,delay_close:0 +#: help:project.issue.report,delay_open:0 +msgid "Number of Days to close the project issue" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 field:project.issue.report,section_id:0 +msgid "Sale Team" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,working_hours_close:0 +msgid "Avg. Working Hours to Close" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "High" +msgstr "" + +#. module: project_issue +#: field:project.issue,date_deadline:0 +msgid "Deadline" +msgstr "" + +#. module: project_issue +#: field:project.issue,date_action_last:0 +msgid "Last Action" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 field:project.issue.report,name:0 +msgid "Year" +msgstr "" + +#. module: project_issue +#: field:project.issue,duration:0 +msgid "Duration" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "My Open Issues by Creation Date" +msgstr "" diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 176ffa61acd..ad6e7afdbcc 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -19,6 +19,7 @@ # ############################################################################## +from base_status.base_stage import base_stage from crm import crm from datetime import datetime from osv import fields,osv @@ -42,12 +43,62 @@ class project_issue_version(osv.osv): } project_issue_version() -class project_issue(crm.crm_case, osv.osv): +_ISSUE_STATE= [('draft', 'New'), ('open', 'In Progress'), ('cancel', 'Cancelled'), ('done', 'Done'),('pending', 'Pending')] + +class project_issue(base_stage, osv.osv): _name = "project.issue" _description = "Project Issue" _order = "priority, create_date desc" _inherit = ['ir.needaction_mixin', 'mail.thread'] + def _get_default_project_id(self, cr, uid, context=None): + """ Gives default project by checking if present in the context """ + return self._resolve_project_id_from_context(cr, uid, context=context) + + def _get_default_stage_id(self, cr, uid, context=None): + """ Gives default stage_id """ + project_id = self._get_default_project_id(cr, uid, context=context) + return self.stage_find(cr, uid, [], project_id, [('state', '=', 'draft')], context=context) + + def _resolve_project_id_from_context(self, cr, uid, context=None): + """ Returns ID of project based on the value of 'default_project_id' + context key, or None if it cannot be resolved to a single + project. + """ + if context is None: + context = {} + if type(context.get('default_project_id')) in (int, long): + return context.get('default_project_id') + if isinstance(context.get('default_project_id'), basestring): + project_name = context['default_project_id'] + project_ids = self.pool.get('project.project').name_search(cr, uid, name=project_name, context=context) + if len(project_ids) == 1: + return int(project_ids[0][0]) + return None + + def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): + access_rights_uid = access_rights_uid or uid + stage_obj = self.pool.get('project.task.type') + order = stage_obj._order + # lame hack to allow reverting search, should just work in the trivial case + if read_group_order == 'stage_id desc': + order = "%s desc" % order + # retrieve section_id from the context and write the domain + # - ('id', 'in', 'ids'): add columns that should be present + # - OR ('case_default', '=', True), ('fold', '=', False): add default columns that are not folded + # - OR ('project_ids', 'in', project_id), ('fold', '=', False) if project_id: add project columns that are not folded + search_domain = [] + project_id = self._resolve_project_id_from_context(cr, uid, context=context) + if project_id: + search_domain += ['|', '&', ('project_ids', '=', project_id), ('fold', '=', False)] + search_domain += ['|', ('id', 'in', ids), '&', ('case_default', '=', True), ('fold', '=', False)] + # perform search + stage_ids = stage_obj._search(cr, uid, search_domain, order=order, access_rights_uid=access_rights_uid, context=context) + result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context) + # restore order of the search + result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0]))) + return result + def _compute_day(self, cr, uid, ids, fields, args, context=None): """ @param cr: the current row, from the database cursor, @@ -173,11 +224,13 @@ class project_issue(crm.crm_case, osv.osv): 'partner_id': fields.many2one('res.partner', 'Partner', select=1), 'company_id': fields.many2one('res.company', 'Company'), 'description': fields.text('Description'), - 'state': fields.selection([('draft', 'New'), ('cancel', 'Cancelled'), ('open', 'In Progress'),('pending', 'Pending'),('done', 'Done') ], 'Status', size=16, readonly=True, - help='The state is set to \'Draft\', when a case is created.\ - \nIf the case is in progress the state is set to \'Open\'.\ - \nWhen the case is over, the state is set to \'Done\'.\ - \nIf the case needs to be reviewed then the state is set to \'Pending\'.'), + 'state': fields.related('stage_id', 'state', type="selection", store=True, + selection=_ISSUE_STATE, string="State", readonly=True, + help='The state is set to \'Draft\', when a case is created.\ + If the case is in progress the state is set to \'Open\'.\ + When the case is over, the state is set to \'Done\'.\ + If the case needs to be reviewed then the state is \ + set to \'Pending\'.'), 'email_from': fields.char('Email', size=128, help="These people will receive email.", select=1), 'email_cc': fields.char('Watchers Emails', size=256, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"), 'date_open': fields.datetime('Opened', readonly=True,select=True), @@ -188,7 +241,8 @@ class project_issue(crm.crm_case, osv.osv): 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('object_id.model', '=', 'crm.project.bug')]"), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True), 'version_id': fields.many2one('project.issue.version', 'Version'), - 'type_id': fields.many2one ('project.task.type', 'Stages', domain="[('project_ids', '=', project_id)]"), + 'stage_id': fields.many2one ('project.task.type', 'Stages', + domain="['|', ('project_ids', '=', project_id), ('case_default', '=', True)]"), 'project_id':fields.many2one('project.project', 'Project'), 'duration': fields.float('Duration'), 'task_id': fields.many2one('project.task', 'Task', domain="[('project_id','=',project_id)]"), @@ -205,7 +259,6 @@ class project_issue(crm.crm_case, osv.osv): multi='compute_day', type="integer", help="Difference in days between last action and current date"), 'color': fields.integer('Color Index'), 'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True), - 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]), 'date_action_last': fields.datetime('Last Action', readonly=1), 'date_action_next': fields.datetime('Next Action', readonly=1), 'progress': fields.function(_hours_get, string='Progress (%)', multi='hours', group_operator="avg", help="Computed as: Time Spent / Total Time.", @@ -221,15 +274,20 @@ class project_issue(crm.crm_case, osv.osv): _defaults = { 'active': 1, - 'partner_id': crm.crm_case._get_default_partner, - 'email_from': crm.crm_case._get_default_email, + 'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c), + 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), 'state': 'draft', - 'section_id': crm.crm_case._get_section, + 'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c), + 'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c), 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c), 'priority': crm.AVAILABLE_PRIORITIES[2][0], 'categ_id' : lambda *a: False, } + _group_by_full = { + 'stage_id': _read_group_stage_ids + } + def set_priority(self, cr, uid, ids, priority): """Set lead priority """ @@ -312,36 +370,20 @@ class project_issue(crm.crm_case, osv.osv): def convert_to_bug(self, cr, uid, ids, context=None): return self._convert(cr, uid, ids, 'bug_categ', context=context) - def next_type(self, cr, uid, ids, context=None): - for task in self.browse(cr, uid, ids): - typeid = task.type_id.id - types = map(lambda x:x.id, task.project_id.type_ids or []) - if types: - if not typeid: - self.write(cr, uid, [task.id], {'type_id': types[0]}) - elif typeid and typeid in types and types.index(typeid) != len(types)-1 : - index = types.index(typeid) - self.write(cr, uid, [task.id], {'type_id': types[index+1]}) - return True - - def prev_type(self, cr, uid, ids, context=None): - for task in self.browse(cr, uid, ids): - typeid = task.type_id.id - types = map(lambda x:x.id, task.project_id and task.project_id.type_ids or []) - if types: - if typeid and typeid in types: - index = types.index(typeid) - self.write(cr, uid, [task.id], {'type_id': index and types[index-1] or False}) - return True - + def copy(self, cr, uid, id, default=None, context=None): + issue = self.read(cr, uid, id, ['name'], context=context) + if not default: + default = {} + default = default.copy() + default['name'] = issue['name'] + _(' (copy)') + return super(project_issue, self).copy(cr, uid, id, default=default, + context=context) + def write(self, cr, uid, ids, vals, context=None): #Update last action date every time the user change the stage, the state or send a new email - logged_fields = ['type_id', 'state', 'message_ids'] + logged_fields = ['stage_id', 'state', 'message_ids'] if any([field in vals for field in logged_fields]): vals['date_action_last'] = time.strftime('%Y-%m-%d %H:%M:%S') - if vals.get('type_id', False): - stage = self.pool.get('project.task.type').browse(cr, uid, vals['type_id'], context=context) - self.message_append_note(cr, uid, ids, body=_("Stage changed to <b>%s</b>.") % stage.name, context=context) return super(project_issue, self).write(cr, uid, ids, vals, context) def onchange_task_id(self, cr, uid, ids, task_id, context=None): @@ -363,15 +405,51 @@ class project_issue(crm.crm_case, osv.osv): self.create_send_note(cr, uid, [obj_id], context=context) return obj_id - def case_open(self, cr, uid, ids, context=None): - res = super(project_issue, self).case_open(cr, uid, ids, context) - self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S'), 'user_id' : uid}) - return res + # ------------------------------------------------------- + # Stage management + # ------------------------------------------------------- + + def stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None): + """ Override of the base.stage method + Parameter of the stage search taken from the issue: + - type: stage type must be the same or 'both' + - section_id: if set, stages must belong to this section or + be a default case + """ + if isinstance(cases, (int, long)): + cases = self.browse(cr, uid, cases, context=context) + # collect all section_ids + section_ids = [] + if section_id: + section_ids.append(section_id) + for task in cases: + if task.project_id: + section_ids.append(task.project_id.id) + # OR all section_ids and OR with case_default + search_domain = [] + if section_ids: + search_domain += [('|')] * len(section_ids) + for section_id in section_ids: + search_domain.append(('project_ids', '=', section_id)) + search_domain.append(('case_default', '=', True)) + # AND with the domain in parameter + search_domain += list(domain) + # perform search, return the first found + stage_ids = self.pool.get('project.task.type').search(cr, uid, search_domain, order=order, context=context) + if stage_ids: + return stage_ids[0] + return False + + def case_cancel(self, cr, uid, ids, context=None): + """ Cancels case """ + self.case_set(cr, uid, ids, 'cancelled', {'active': True}, context=context) + self.case_cancel_send_note(cr, uid, ids, context=context) + return True def case_escalate(self, cr, uid, ids, context=None): cases = self.browse(cr, uid, ids) for case in cases: - data = {'state' : 'draft'} + data = {} if case.project_id.project_escalation_id: data['project_id'] = case.project_id.project_escalation_id.id if case.project_id.project_escalation_id.user_id: @@ -380,10 +458,14 @@ class project_issue(crm.crm_case, osv.osv): self.pool.get('project.task').write(cr, uid, [case.task_id.id], {'project_id': data['project_id'], 'user_id': False}) else: raise osv.except_osv(_('Warning !'), _('You cannot escalate this issue.\nThe relevant Project has not configured the Escalation Project!')) - self.write(cr, uid, [case.id], data) - self.case_escalate_send_note(cr, uid, [case.id], context) + self.case_set(cr, uid, ids, 'draft', data, context=context) + self.case_escalate_send_note(cr, uid, [case.id], context=context) return True + # ------------------------------------------------------- + # Mail gateway + # ------------------------------------------------------- + def message_new(self, cr, uid, msg, custom_values=None, context=None): """Automatically called when new email message arrives""" if context is None: @@ -434,7 +516,7 @@ class project_issue(crm.crm_case, osv.osv): # Reassign the 'open' state to the case if this one is in pending or done for record in self.browse(cr, uid, ids, context=context): if record.state in ('pending', 'done'): - record.write({'state' : 'open'}) + self.case_set(cr, uid, ids, 'open', {}, context=context) vls = { } for line in msg['body_text'].split('\n'): @@ -448,15 +530,6 @@ class project_issue(crm.crm_case, osv.osv): res = self.write(cr, uid, ids, vals) self.message_append_dict(cr, uid, ids, msg, context=context) return res - - def copy(self, cr, uid, id, default=None, context=None): - issue = self.read(cr, uid, id, ['name'], context=context) - if not default: - default = {} - default = default.copy() - default['name'] = issue['name'] + _(' (copy)') - return super(project_issue, self).copy(cr, uid, id, default=default, - context=context) # ------------------------------------------------------- # OpenChatter methods and notifications @@ -475,9 +548,15 @@ class project_issue(crm.crm_case, osv.osv): if obj.user_id: sub_ids.append(obj.user_id.id) return self.pool.get('res.users').read(cr, uid, sub_ids, context=context) - + + def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): + """ Override of the (void) default notification method. """ + stage_name = self.pool.get('project.task.type').name_get(cr, uid, [stage_id], context=context)[0][1] + return self.message_append_note(cr, uid, ids, body= _("Stage changed to <b>%s</b>.") % (stage_name), context=context) + def case_get_note_msg_prefix(self, cr, uid, id, context=None): - return 'Project issue ' + """ Override of default prefix for notifications. """ + return 'Project issue' def convert_to_task_send_note(self, cr, uid, ids, context=None): message = _("Project issue has been <b>converted</b> in to task.") diff --git a/addons/project_issue/project_issue_demo.xml b/addons/project_issue/project_issue_demo.xml index 358e9e55aa5..a213cb02c2e 100644 --- a/addons/project_issue/project_issue_demo.xml +++ b/addons/project_issue/project_issue_demo.xml @@ -7,7 +7,6 @@ <field eval=""5"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_agrolait"/> - <field eval=""open"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field name="categ_id" ref="bug_categ"/> @@ -15,7 +14,7 @@ <field eval="15.0" name="duration"/> <field eval=""Bug in Accounts module"" name="name"/> <field eval=""agr@agrolait.com"" name="email_from"/> - <field name="type_id" ref="project.project_tt_specification"/> + <field name="stage_id" ref="project.project_tt_specification"/> </record> <record id="crm_case_programnotgivingproperoutput0" model="project.issue"> @@ -23,28 +22,26 @@ <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_asus"/> - <field eval=""done"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="3.5" name="duration"/> <field name="categ_id" ref="bug_categ"/> <field eval=""Program not giving proper output"" name="name"/> <field name="project_id" ref="project.project_project_22"/> - <field name="type_id" ref="project.project_tt_specification"/> + <field name="stage_id" ref="project.project_tt_specification"/> </record> <record id="crm_case_outputincorrect0" model="project.issue"> <field eval="time.strftime('%Y-%m-18 14:30:00')" name="date"/> <field eval=""4"" name="priority"/> <field name="user_id" ref="base.user_demo"/> - <field eval=""cancel"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="2.3" name="duration"/> <field name="categ_id" ref="bug_categ"/> <field name="project_id" ref="project.project_project_23"/> <field eval=""Output incorrect"" name="name"/> - <field name="type_id" ref="project.project_tt_development"/> + <field name="stage_id" ref="project.project_tt_development"/> </record> <record id="crm_case_problemloadingpage0" model="project.issue"> @@ -52,14 +49,13 @@ <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_14"/> - <field eval=""cancel"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="4.0" name="duration"/> <field name="categ_id" ref="bug_categ"/> <field name="project_id" ref="project.project_project_22"/> <field eval=""Problem loading page"" name="name"/> - <field name="type_id" ref="project.project_tt_testing"/> + <field name="stage_id" ref="project.project_tt_testing"/> </record> <record id="crm_case_pagenotfound0" model="project.issue"> @@ -67,14 +63,13 @@ <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_desertic_hispafuentes"/> - <field eval=""draft"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="1.0" name="duration"/> <field name="categ_id" ref="bug_categ"/> <field name="project_id" ref="project.project_project_22"/> <field eval=""Page not Found"" name="name"/> - <field name="type_id" ref="project.project_tt_development"/> + <field name="stage_id" ref="project.project_tt_development"/> </record> <record id="crm_case_programmingerror0" model="project.issue"> @@ -82,14 +77,13 @@ <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_5"/> - <field eval=""pending"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="4.0" name="duration"/> <field name="categ_id" ref="bug_categ"/> <field name="project_id" ref="project.project_project_22"/> <field eval=""Programming Error"" name="name"/> - <field name="type_id" ref="project.project_tt_testing"/> + <field name="stage_id" ref="project.project_tt_testing"/> </record> <record id="crm_case_logicalerrorinprogram0" model="project.issue"> @@ -97,14 +91,13 @@ <field eval=""2"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_6"/> - <field eval=""pending"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="2.0" name="duration"/> <field name="categ_id" ref="bug_categ"/> <field name="project_id" ref="project.project_project_9"/> <field eval=""Logical Error in Program"" name="name"/> - <field name="type_id" ref="project.project_tt_testing"/> + <field name="stage_id" ref="project.project_tt_testing"/> </record> <record id="crm_case_constrainterror0" model="project.issue"> @@ -112,14 +105,13 @@ <field eval=""2"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_6"/> - <field eval=""pending"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="7.3" name="duration"/> <field name="categ_id" ref="bug_categ"/> <field name="project_id" ref="project.project_project_9"/> <field eval=""Constraint Error"" name="name"/> - <field name="type_id" ref="project.project_tt_testing"/> + <field name="stage_id" ref="project.project_tt_testing"/> </record> <record id="crm_case_errorinprogram0" model="project.issue"> @@ -127,13 +119,12 @@ <field eval=""2"" name="priority"/> <field name="user_id" ref="base.user_demo"/> <field name="partner_id" ref="base.res_partner_5"/> - <field eval=""open"" name="state"/> <field eval="1" name="active"/> <field eval="1.3" name="duration"/> <field name="categ_id" ref="feature_request_categ"/> <field name="project_id" ref="project.project_project_22"/> <field eval=""Error in Program"" name="name"/> - <field name="type_id" ref="project.project_tt_testing"/> + <field name="stage_id" ref="project.project_tt_testing"/> </record> <record id="crm_case_patcheserrorinprogram0" model="project.issue"> @@ -141,14 +132,13 @@ <field eval=""2"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_2"/> - <field eval=""open"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="13.0" name="duration"/> <field name="categ_id" ref="feature_request_categ"/> <field name="project_id" ref="project.project_project_9"/> <field eval=""Patches Error in Program"" name="name"/> - <field name="type_id" ref="project.project_tt_testing"/> + <field name="stage_id" ref="project.project_tt_testing"/> </record> <record id="crm_case_newfeaturestobeadded0" model="project.issue"> @@ -156,14 +146,13 @@ <field eval=""4"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_maxtor"/> - <field eval=""open"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="3.2" name="duration"/> <field name="categ_id" ref="feature_request_categ"/> <field name="project_id" ref="project.project_project_21"/> <field eval=""New Features To Be Added"" name="name"/> - <field name="type_id" ref="project.project_tt_merge"/> + <field name="stage_id" ref="project.project_tt_merge"/> </record> <record id="crm_case_addmenustothemodule0" model="project.issue"> @@ -171,7 +160,6 @@ <field eval=""1"" name="priority"/> <field name="user_id" ref="base.user_demo"/> <field name="partner_id" ref="base.res_partner_9"/> - <field eval=""done"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="3.0" name="duration"/> @@ -179,7 +167,7 @@ <field name="project_id" ref="project.project_project_21"/> <field eval=""Add menus to the module"" name="name"/> <field eval=""info@opensides.be"" name="email_from"/> - <field name="type_id" ref="project.project_tt_development"/> + <field name="stage_id" ref="project.project_tt_development"/> </record> <record id="crm_case_includeattendancesheetinproject0" model="project.issue"> @@ -187,7 +175,6 @@ <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_10"/> - <field eval=""cancel"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="2.0" name="duration"/> @@ -195,7 +182,7 @@ <field name="project_id" ref="project.project_project_9"/> <field eval=""Include Attendance sheet in Project"" name="name"/> <field eval=""contact@tecsas.fr"" name="email_from"/> - <field name="type_id" ref="project.project_tt_development"/> + <field name="stage_id" ref="project.project_tt_development"/> </record> <record id="crm_case_createnewobject0" model="project.issue"> @@ -203,14 +190,13 @@ <field eval=""3"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_6"/> - <field eval=""draft"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="2.45" name="duration"/> <field name="categ_id" ref="feature_request_categ"/> <field name="project_id" ref="project.project_project_22"/> <field eval=""Create new object"" name="name"/> - <field name="type_id" ref="project.project_tt_specification"/> + <field name="stage_id" ref="project.project_tt_specification"/> </record> <record id="crm_case_improvereportsinhrms0" model="project.issue"> @@ -218,14 +204,13 @@ <field eval=""4"" name="priority"/> <field name="user_id" ref="base.user_root"/> <field name="partner_id" ref="base.res_partner_11"/> - <field eval=""pending"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="15.0" name="duration"/> <field name="categ_id" ref="feature_request_categ"/> <field name="project_id" ref="project.project_project_22"/> <field eval=""Improve Reports in HRMS"" name="name"/> - <field name="type_id" ref="project.project_tt_development"/> + <field name="stage_id" ref="project.project_tt_development"/> </record> <record id="crm_case_improvereportsinpms0" model="project.issue"> @@ -233,14 +218,13 @@ <field eval=""2"" name="priority"/> <field name="user_id" ref="base.user_demo"/> <field name="partner_id" ref="base.res_partner_11"/> - <field eval=""pending"" name="state"/> <field name="section_id" ref="crm.section_sales_department"/> <field eval="1" name="active"/> <field eval="06.15" name="duration"/> <field name="categ_id" ref="feature_request_categ"/> <field name="project_id" ref="project.project_project_22"/> <field eval=""Improve Reports in PMS"" name="name"/> - <field name="type_id" ref="project.project_tt_specification"/> + <field name="stage_id" ref="project.project_tt_specification"/> </record> </data> diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 716a02f2f60..895b4594185 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -51,18 +51,27 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> - <button name="case_open" string="Open" states="draft,pending" type="object"/> - <button name="case_close" string="Done" states="open,draft,pending" type="object"/> - <button name="case_pending" string="Pending" states="draft,open" type="object"/> - <button name="case_reset" string="Reset to New" states="done,cancel" type="object"/> - <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object"/> - <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object"/> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <header> + <button name="case_open" string="Open" type="object" + states="draft,pending"/> + <button name="case_close" string="Done" type="object" + states="draft,open,pending"/> + <button name="case_pending" string="Pending" type="object" + states="draft,open"/> + <button name="case_escalate" string="Escalate" type="object" + states="draft,open,pending"/> + <button name="case_reset" string="Reset to New" type="object" + states="cancelled,done"/> + <button name="stage_previous" string="Previous Stage" type="object" + states="open,pending" icon="gtk-go-back" + attrs="{'invisible': [('stage_id','=', False)]}"/> + <button name="stage_next" string="Next Stage" type="object" + states="open,pending" icon="gtk-go-forward" + attrs="{'invisible': [('stage_id','=', False)]}"/> + <button name="case_cancel" string="Cancel" type="object" + states="draft,open,pending"/> + <field name="stage_id" widget="statusbar"/> + </header> <sheet string="Issue Tracker Form" layout="auto"> <group colspan="4" col="6"> <field name="name"/> @@ -75,11 +84,7 @@ </group> <field name="user_id"/> <field name="version_id" colspan="2" widget="selection"/> - <group colspan="2" col="4"> - <field name="type_id" string="Stages" /> - <button name="prev_type" string="Previous" type="object" icon="gtk-go-back" help="Change to Previous Stage"/> - <button name="next_type" string="Next" type="object" icon="gtk-go-forward" help="Change to Next Stage"/> - </group> + <field name="state" groups="base.group_no_one"/> </group> <notebook colspan="4"> <page string="General"> @@ -118,9 +123,9 @@ </page> </notebook> </sheet> - <div class="oe_form_sheet_width"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> - </div> + <div class="oe_form_sheet_width"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </div> </form> </field> </record> @@ -138,19 +143,11 @@ <field name="partner_id"/> <field name="project_id" /> <field name="priority" string="Priority"/> - <field name="type_id" widget="selection" readonly="1" string="Stages" /> - <button name="prev_type" string="Previous" type="object" icon="gtk-go-back" help="Change to Previous Stage"/> - <button name="next_type" string="Next" type="object" icon="gtk-go-forward" help="Change to Next Stage"/> <field name="version_id" widget="selection"/> <field name="user_id"/> <field name="progress" widget="progressbar" attrs="{'invisible':[('task_id','=',False)]}"/> - <field name="state"/> - <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/> - <button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/> - <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward" help="To Do"/> - <button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/> - <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" icon="gtk-go-up"/> - <button name="case_reset" string="Reset to New" states="done,cancel" type="object" icon="gtk-convert"/> + <field name="stage_id" widget="selection" readonly="1"/> + <field name="state" groups="base.group_no_one"/> <field name="categ_id" invisible="1"/> <field name="task_id" invisible="1"/> </tree> @@ -192,7 +189,7 @@ <filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}" /> <filter string="Stage" icon="terp-stage" domain="[]" - context="{'group_by':'type_id'}" /> + context="{'group_by':'stage_id'}" /> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}" /> <separator orientation="vertical" /> @@ -224,9 +221,9 @@ <field name="model">project.issue</field> <field name="type">kanban</field> <field name="arch" type="xml"> - <kanban default_group_by="type_id"> + <kanban default_group_by="stage_id"> <field name="color"/> - <field name="state"/> + <field name="state" groups="base.group_no_one"/> <field name="priority"/> <field name="user_email"/> <field name="user_id"/> @@ -270,8 +267,7 @@ <a string="Convert To Task" name="convert_issue_task" icon="gtk-index" type="object"/> </div> <div class="oe_kanban_right"> - <a name="case_open" string="Open" states="draft,pending" type="object" icon="kanban-apply" /> - <a name="case_pending" string="Pending" states="draft,open" type="object" icon="kanban-pause"/> + <a name="case_open" string="Open" states="draft,pending" type="object" icon="kanban-apply"/> <a name="case_close" string="Close" states="open,draft,pending" type="object" icon="kanban-stop"/> </div> <div class="oe_kanban_clear"/> @@ -304,18 +300,10 @@ <field name="name" string="Feature description"/> <field name="partner_id"/> <field name="priority" string="Priority"/> - <field name="type_id" widget="selection" readonly="1"/> - <button name="prev_type" string="Previous" type="object" icon="gtk-go-back" help="Change to Previous Stage"/> - <button name="next_type" string="Next" type="object" icon="gtk-go-forward" help="Change to Next Stage"/> <field name="version_id"/> <field name="user_id"/> - <field name="state"/> - <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/> - <button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/> - <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/> - <button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/> - <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" icon="gtk-go-up"/> - <button name="case_reset" string="Reset to New" states="done,cancel" type="object" icon="gtk-convert"/> + <field name="stage_id" widget="selection" readonly="1"/> + <field name="state" groups="base.group_no_one"/> </tree> </field> </record> @@ -326,13 +314,13 @@ <field name="type">search</field> <field name="arch" type="xml"> <search string="Feature Tracker Search"> - <filter icon="terp-go-today" string="Today" + <filter icon="terp-go-today" string="Today" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]" help="Today's features"/> <separator orientation="vertical"/> <group> <field name="name" string="Feature description"/> <field name="user_id"/> - <field name="state"> + <field name="state" groups="base.group_no_one"> <filter icon="terp-check" domain="[('state','in',('open','draft'))]" help="Current Features" name="current_feature"/> <filter icon="terp-camera_test" domain="[('state','=','open')]" help="Open Features"/> </field> diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py index 7cc520308e8..be3309d7175 100644 --- a/addons/project_issue/report/project_issue_report.py +++ b/addons/project_issue/report/project_issue_report.py @@ -51,7 +51,7 @@ class project_issue_report(osv.osv): 'creation_date': fields.date('Creation Date', readonly=True), 'date_closed': fields.date('Date of Closing', readonly=True), 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'project.issue')]"), - 'type_id': fields.many2one('project.task.type', 'Stage'), + 'stage_id': fields.many2one('project.task.type', 'Stage'), 'nbr': fields.integer('# of Issues', readonly=True), 'working_hours_open': fields.float('Avg. Working Hours to Open', readonly=True), 'working_hours_close': fields.float('Avg. Working Hours to Close', readonly=True), @@ -87,7 +87,7 @@ class project_issue_report(osv.osv): c.working_hours_close, c.section_id, c.categ_id, - c.type_id, + c.stage_id, to_char(c.date_closed, 'YYYY-mm-dd') as date_closed, c.company_id as company_id, c.priority as priority, diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml index ee0a4fbd1ed..43a49abf2b8 100644 --- a/addons/project_issue/report/project_issue_report_view.xml +++ b/addons/project_issue/report/project_issue_report_view.xml @@ -11,7 +11,7 @@ <field name="name" invisible="1"/> <field name="month" invisible="1"/> <field name="project_id" invisible="1"/> - <field name="type_id" invisible="1"/> + <field name="stage_id" invisible="1"/> <field name="version_id" string="Version" invisible="1"/> <field name="priority" invisible="1"/> <field name="company_id" invisible="1" groups="base.group_multi_company"/> @@ -103,7 +103,7 @@ <filter string="Version" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'version_id'}"/> <separator orientation="vertical" /> <filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}" /> - <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'type_id'}"/> + <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/> <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}" /> <separator orientation="vertical"/> diff --git a/addons/project_issue/test/cancel_issue.yml b/addons/project_issue/test/cancel_issue.yml index ff05d923ed0..76ffa212638 100644 --- a/addons/project_issue/test/cancel_issue.yml +++ b/addons/project_issue/test/cancel_issue.yml @@ -7,7 +7,7 @@ I check the issue is in cancel state. - !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue is in cancel state}: - - state == 'cancel' + - state == 'cancelled' - I re-open the Issue. - @@ -37,7 +37,7 @@ I check the issue is in cancel state. - !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue is in cancel state}: - - state == 'cancel' + - state == 'cancelled' - I close Issue. - @@ -57,4 +57,4 @@ I check the issue is in cancel state. - !assert {model: project.issue, id: crm_case_buginaccountsmodule0, severity: error, string: Issue is in cancel state}: - - state == 'cancel'
\ No newline at end of file + - state == 'cancelled' diff --git a/addons/project_issue_sheet/i18n/sv.po b/addons/project_issue_sheet/i18n/sv.po new file mode 100644 index 00000000000..f9b6304f43d --- /dev/null +++ b/addons/project_issue_sheet/i18n/sv.po @@ -0,0 +1,77 @@ +# 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-04 10:33+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-05 04:54+0000\n" +"X-Generator: Launchpad (build 15353)\n" + +#. module: project_issue_sheet +#: model:ir.model,name:project_issue_sheet.model_account_analytic_line +msgid "Analytic Line" +msgstr "Objektrad" + +#. module: project_issue_sheet +#: code:addons/project_issue_sheet/project_issue_sheet.py:57 +#, python-format +msgid "The Analytic Account is in pending !" +msgstr "Objektkontot är väntande" + +#. module: project_issue_sheet +#: model:ir.model,name:project_issue_sheet.model_project_issue +msgid "Project Issue" +msgstr "Projektärenden" + +#. module: project_issue_sheet +#: model:ir.model,name:project_issue_sheet.model_hr_analytic_timesheet +msgid "Timesheet Line" +msgstr "Tidrapportrad" + +#. module: project_issue_sheet +#: code:addons/project_issue_sheet/project_issue_sheet.py:57 +#: field:project.issue,analytic_account_id:0 +#, python-format +msgid "Analytic Account" +msgstr "Objektkonto" + +#. module: project_issue_sheet +#: view:project.issue:0 +msgid "Worklogs" +msgstr "Arbetslogg" + +#. module: project_issue_sheet +#: field:account.analytic.line,create_date:0 +msgid "Create Date" +msgstr "Registreringsdatum" + +#. module: project_issue_sheet +#: view:project.issue:0 +#: field:project.issue,timesheet_ids:0 +msgid "Timesheets" +msgstr "Tidkort" + +#. module: project_issue_sheet +#: constraint:hr.analytic.timesheet:0 +msgid "You cannot modify an entry in a Confirmed/Done timesheet !." +msgstr "Du kan inte ändra en post i en bekräftad/färdig tidrapport !" + +#. module: project_issue_sheet +#: field:hr.analytic.timesheet,issue_id:0 +msgid "Issue" +msgstr "Ärende" + +#. module: project_issue_sheet +#: constraint:account.analytic.line:0 +msgid "You can not create analytic line on view account." +msgstr "Du kan inte skapa objekttransaktioner med rubrikkonton." diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 1e9f50cdd87..0c175a4ef7e 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -142,17 +142,14 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Start Phase" name="set_open" states="pending,draft"/> <button string="Done" name="set_done" states="pending,open"/> <button string="Pending" name="set_pending" states="open"/> <button string="Draft" name="set_draft" states="open"/> <button string="Cancel" name="set_cancel" states="draft,open,pending"/> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}' select="1"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/> + </header> <sheet string="Project Phase" layout="auto"> <group colspan="6" col="6"> <group colspan="6" col="7" > @@ -330,7 +327,7 @@ <field name="type">search</field> <field name="inherit_id" ref="project.view_task_search_form"/> <field name="arch" type="xml"> - <field name="project_id" position="after"> + <field name="user_id" position="before"> <field name="phase_id" select="1"/> </field> </field> diff --git a/addons/project_mailgate/__openerp__.py b/addons/project_mailgate/__openerp__.py index 4679f5b65ca..dad9fd09eae 100644 --- a/addons/project_mailgate/__openerp__.py +++ b/addons/project_mailgate/__openerp__.py @@ -45,7 +45,6 @@ There are two common alternatives to configure the mailbox integration: """, "init_xml": [], "update_xml": ["security/ir.model.access.csv", - "project_mailgate_view.xml", ], 'demo_xml': [ ], diff --git a/addons/project_mailgate/project_mailgate.py b/addons/project_mailgate/project_mailgate.py index 9715a32c151..a36366f450e 100644 --- a/addons/project_mailgate/project_mailgate.py +++ b/addons/project_mailgate/project_mailgate.py @@ -26,21 +26,14 @@ import binascii class project_tasks(osv.osv): - _name = "project.task" - _inherit = ['mail.thread','project.task'] - - _columns = { - 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)], readonly=True), - } + _inherit = 'project.task' def message_new(self, cr, uid, msg, custom_values=None, context=None): res_id = super(project_tasks,self).message_new(cr, uid, msg, custom_values=custom_values, context=context) subject = msg.get('subject') - body = msg.get('body_text') msg_from = msg.get('from') data = { 'name': subject, - 'description': body, 'planned_hours': 0.0, } data.update(self.message_partner_by_email(cr, uid, msg_from)) @@ -48,12 +41,9 @@ class project_tasks(osv.osv): return res_id def message_update(self, cr, uid, ids, msg, data={}, default_act='pending'): - data.update({ - 'description': msg['body_text'], - }) act = 'do_'+default_act - maps = { + maps = { 'cost':'planned_hours', } for line in msg['body_text'].split('\n'): @@ -73,7 +63,7 @@ class project_tasks(osv.osv): self.write(cr, uid, ids, data, context=context) getattr(self,act)(cr, uid, ids, context=context) - self.message_append_dict(cr, uid, [res_id], msg, context=context) + self.message_append_note(cr, uid, [res_id], body=msg, context=context) return True def message_thread_followers(self, cr, uid, ids, context=None): @@ -84,37 +74,5 @@ class project_tasks(osv.osv): followers[task.id] = filter(None, task_followers) return followers - def do_draft(self, cr, uid, ids, context=None): - res = super(project_tasks, self).do_draft(cr, uid, ids, context) - tasks = self.browse(cr, uid, ids, context=context) - self.message_append(cr, uid, tasks, _('Draft'), context=context) - return res - - def do_open(self, cr, uid, ids, context=None): - res = super(project_tasks, self).do_open(cr, uid, ids, context) - tasks = self.browse(cr, uid, ids, context=context) - self.message_append(cr, uid, tasks, _('Open'), context=context) - return res - - def do_pending(self, cr, uid, ids, context=None): - res = super(project_tasks, self).do_pending(cr, uid, ids, context) - tasks = self.browse(cr, uid, ids, context=context) - self.message_append(cr, uid, tasks, _('Pending'), context=context) - return res - - def do_close(self, cr, uid, ids, context=None): - res = super(project_tasks, self).do_close(cr, uid, ids, context) - tasks = self.browse(cr, uid, ids, context=context) - for task in tasks: - if task.state == 'done': - self.message_append(cr, uid, tasks, _('Done'), context=context) - return res - - def do_cancel(self, cr, uid, ids, context=None): - res = super(project_tasks, self).do_cancel(cr, uid, ids, context=context) - tasks = self.browse(cr, uid, ids, context=context) - self.message_append(cr, uid, tasks, _('Cancel'), context=context) - return res - project_tasks() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_mailgate/project_mailgate_view.xml b/addons/project_mailgate/project_mailgate_view.xml deleted file mode 100644 index ea9855e9ec1..00000000000 --- a/addons/project_mailgate/project_mailgate_view.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<openerp> - <data> - <record id="view_task_mailgate_form" model="ir.ui.view"> - <field name="name">task.mailgate.form</field> - <field name="model">project.task</field> - <field name="type">form</field> - <field name="inherit_id" ref="project.view_task_form2"/> - <field name="arch" type="xml"> - <xpath expr="//notebook/page[@string='Extra Info']" position="before"> - <page string="History"> - <field name="message_ids" colspan="4" nolabel="1" mode="tree" readonly="1"> - <tree string="History"> - <field name="display_text" string="History Information"/> - </tree> - </field> - </page> - </xpath> - </field> - </record> - </data> -</openerp> diff --git a/addons/project_messages/i18n/sv.po b/addons/project_messages/i18n/sv.po new file mode 100644 index 00000000000..d298d5bcf8a --- /dev/null +++ b/addons/project_messages/i18n/sv.po @@ -0,0 +1,113 @@ +# 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-04 10:37+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-05 04:54+0000\n" +"X-Generator: Launchpad (build 15353)\n" + +#. module: project_messages +#: field:project.messages,to_id:0 +msgid "To" +msgstr "Till" + +#. module: project_messages +#: model:ir.model,name:project_messages.model_project_messages +msgid "project.messages" +msgstr "project.messages" + +#. module: project_messages +#: field:project.messages,from_id:0 +msgid "From" +msgstr "Från" + +#. module: project_messages +#: view:project.messages:0 +msgid "Group By..." +msgstr "Gruppera på..." + +#. module: project_messages +#: field:project.messages,create_date:0 +msgid "Creation Date" +msgstr "Registeringsdatum" + +#. module: project_messages +#: help:project.messages,to_id:0 +msgid "Keep this empty to broadcast the message." +msgstr "Håll detta tomt för att sända meddelandet." + +#. module: project_messages +#: model:ir.actions.act_window,name:project_messages.act_project_messages +#: model:ir.actions.act_window,name:project_messages.action_view_project_editable_messages_tree +#: view:project.messages:0 +#: view:project.project:0 +#: field:project.project,message_ids:0 +msgid "Messages" +msgstr "Meddelanden" + +#. module: project_messages +#: model:ir.model,name:project_messages.model_project_project +#: view:project.messages:0 +#: field:project.messages,project_id:0 +msgid "Project" +msgstr "Projekt" + +#. module: project_messages +#: model:ir.actions.act_window,help:project_messages.messages_form +msgid "" +"An in-project messaging system allows for an efficient and trackable " +"communication between project members. The messages are stored in the system " +"and can be used for post analysis." +msgstr "" +"En inom-projektetmeddelandehanteringssystem möjliggör en effektiv och " +"spårbar kommunikation mellan projektmedlemmar. De meddelanden som lagras i " +"systemet och kan också användas för efter-analys." + +#. module: project_messages +#: view:project.messages:0 +msgid "Today" +msgstr "Idag" + +#. module: project_messages +#: view:project.messages:0 +msgid "Message To" +msgstr "Meddelande till" + +#. module: project_messages +#: constraint:project.project:0 +msgid "Error! You cannot assign escalation to the same project!" +msgstr "Fel! Du kan inte eskalera till samma projekt" + +#. module: project_messages +#: view:project.messages:0 +#: field:project.messages,message:0 +msgid "Message" +msgstr "Meddelande" + +#. module: project_messages +#: view:project.messages:0 +msgid "Message From" +msgstr "Meddelande från" + +#. module: project_messages +#: model:ir.actions.act_window,name:project_messages.messages_form +#: model:ir.ui.menu,name:project_messages.menu_messages_form +#: view:project.messages:0 +msgid "Project Messages" +msgstr "Projektmeddelanden" + +#. module: project_messages +#: constraint:project.project:0 +msgid "Error! project start-date must be lower then project end-date." +msgstr "Fel! projektets startdatum måste föregå projekets slutdatum." diff --git a/addons/project_mrp/project_procurement.py b/addons/project_mrp/project_procurement.py index 7d3045aede0..9252e3bbd11 100644 --- a/addons/project_mrp/project_procurement.py +++ b/addons/project_mrp/project_procurement.py @@ -81,6 +81,7 @@ class procurement_order(osv.osv): 'company_id': procurement.company_id.id, },context=context) self.write(cr, uid, [procurement.id], {'task_id': task_id, 'state': 'running'}, context=context) + self.running_send_note(cr, uid, ids, context=None) return task_id procurement_order() diff --git a/addons/project_planning/project_planning_view.xml b/addons/project_planning/project_planning_view.xml index 11e9b057c06..fd65ae61b88 100644 --- a/addons/project_planning/project_planning_view.xml +++ b/addons/project_planning/project_planning_view.xml @@ -27,16 +27,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="action_open" states="draft" string="Open" type="object" /> <button name="action_done" states="open" string="Done" type="object" /> <button name="action_draft" states="done,cancel" string="Reset to Draft" type="object" /> <button name="action_cancel" states="draft,open" string="Cancel" type="object" /> - <div class="oe_right"> - <field name="state" select="1" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,open"/> + </header> <sheet string="Planning by Account" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="name" select="1" /> @@ -129,7 +126,7 @@ <field name="sequence"/> </group> <separator string="Miscellaneous" colspan="4"/> - <field name="type_id"/> + <field name="stage_id"/> <field name="active"/> <field name="partner_id"/> <separator colspan="4" string="Notes"/> diff --git a/addons/project_scrum/board_project_scrum_view.xml b/addons/project_scrum/board_project_scrum_view.xml index 284208ee21f..08e3fd1bb25 100644 --- a/addons/project_scrum/board_project_scrum_view.xml +++ b/addons/project_scrum/board_project_scrum_view.xml @@ -16,12 +16,6 @@ <field name="effective_hours" sum="Effective hours" widget="float_time"/> <field name="expected_hours" sum="Expected hours" widget="float_time"/> <field name="state"/> - <button type="object" string="Open" name="button_open" states="draft,pending" icon="gtk-ok"/> - <button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/> - <button type="object" string="Close" name="button_close" states="open,pending" icon="terp-dialog-close"/> - <button type="object" string="Set to Draft" name="button_draft" states="cancel,done" icon="gtk-convert"/> - <button name="%(project_scrum.report_scrum_sprint_burndown_chart)d" states="open,draft,close,cancel" - string="Burndown Chart" type="action" icon="gtk-print"/> </tree> </field> </record> @@ -114,8 +108,6 @@ <field name="progress" widget="progressbar"/> <field name="effective_hours" widget="float_time"/> <field name="expected_hours" widget="float_time"/> - <button name="%(project_scrum.report_scrum_sprint_burndown_chart)d" - string="Burndown Chart" type="action" icon="gtk-print"/> </tree> </field> </record> diff --git a/addons/project_scrum/project_scrum.py b/addons/project_scrum/project_scrum.py index 22824ecc3fe..78907226010 100644 --- a/addons/project_scrum/project_scrum.py +++ b/addons/project_scrum/project_scrum.py @@ -44,6 +44,7 @@ class project_scrum_sprint(osv.osv): _name = 'project.scrum.sprint' _description = 'Project Scrum Sprint' _order = 'date_start desc' + _inherit = ['mail.thread'] def _compute(self, cr, uid, ids, fields, arg, context=None): res = {}.fromkeys(ids, 0.0) progress = {} @@ -71,28 +72,27 @@ class project_scrum_sprint(osv.osv): def button_cancel(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state':'cancel'}, context=context) + self.cancel_send_note(cr, uid, ids, context=None) return True def button_draft(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state':'draft'}, context=context) + self.draft_send_note(cr, uid, ids, context=None) return True def button_open(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state':'open'}, context=context) - for (id, name) in self.name_get(cr, uid, ids): - message = _("The sprint '%s' has been opened.") % (name,) - self.log(cr, uid, id, message) + self.open_send_note(cr, uid, ids, context=None) return True def button_close(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state':'done'}, context=context) - for (id, name) in self.name_get(cr, uid, ids): - message = _("The sprint '%s' has been closed.") % (name,) - self.log(cr, uid, id, message) + self.close_send_note(cr, uid, ids, context=None) return True def button_pending(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state':'pending'}, context=context) + self.pending_send_note(cr, uid, ids, context=None) return True _columns = { @@ -138,6 +138,33 @@ class project_scrum_sprint(osv.osv): v['date_stop'] = (datetime.now() + relativedelta(days=int(proj.sprint_size or 14))).strftime('%Y-%m-%d') return {'value':v} + # ---------------------------------------- + # OpenChatter methods and notifications + # ---------------------------------------- + + def create(self, cr, uid, vals, context=None): + obj_id = super(project_scrum_sprint, self).create(cr, uid, vals, context) + self.create_send_note(cr, uid, [obj_id], context=context) + return obj_id + + def draft_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Sprint has been set to <b>draft</b>."), context=context) + + def create_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Sprint has been <b>created</b>."), context=context) + + def open_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Sprint has been <b>opened</b>."), context=context) + + def pending_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Sprint has been set to <b>pending</b>."), context=context) + + def cancel_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Sprint has been <b>cancelled</b>."), context=context) + + def close_send_note(self, cr, uid, ids, context=None): + self.message_append_note(cr, uid, ids, body=_("Sprint has been <b>closed</b>."), context=context) + project_scrum_sprint() class project_scrum_product_backlog(osv.osv): diff --git a/addons/project_scrum/project_scrum_demo.xml b/addons/project_scrum/project_scrum_demo.xml index 50c67146716..6e3de7665bd 100644 --- a/addons/project_scrum/project_scrum_demo.xml +++ b/addons/project_scrum/project_scrum_demo.xml @@ -265,7 +265,6 @@ <field model="res.users" name="user_id" search="[('login','=','demo')]"/> <field name="project_id" ref="project.project_project_9"/> <field name="name">Review all English Terms</field> - <field name="state">done</field> <field eval="time.strftime('%Y-%m-%d')" name="date_end"/> <field name="product_backlog_id" ref="scrum_product_backlog_3"/> </record> @@ -274,7 +273,6 @@ <field model="res.users" name="user_id" search="[('login','=','demo')]"/> <field name="project_id" ref="project.project_project_9"/> <field name="name">Review all french terms</field> - <field name="state">done</field> <field eval="time.strftime('%Y-%m-%d')" name="date_end"/> <field name="product_backlog_id" ref="scrum_product_backlog_3"/> </record> @@ -283,7 +281,6 @@ <field model="res.users" name="user_id" search="[('login','=','demo')]"/> <field name="project_id" ref="project.project_project_9"/> <field name="name">Analytic Accounting features</field> - <field name="state">done</field> <field eval="time.strftime('%Y-%m-%d')" name="date_end"/> <field name="product_backlog_id" ref="scrum_product_backlog_1"/> </record> @@ -292,7 +289,6 @@ <field model="res.users" name="user_id" search="[('login','=','demo')]"/> <field name="project_id" ref="project.project_project_9"/> <field name="name">Test and improve automatic migration system</field> - <field name="state">open</field> <field name="product_backlog_id" ref="scrum_product_backlog_0"/> </record> <record id="scrum_task_7" model="project.task"> @@ -300,7 +296,6 @@ <field model="res.users" name="user_id" search="[('login','=','demo')]"/> <field name="project_id" ref="project.project_project_9"/> <field name="name">General accounting features</field> - <field name="state">open</field> <field name="product_backlog_id" ref="scrum_product_backlog_1"/> </record> <record id="scrum_task_8" model="project.task"> @@ -316,7 +311,6 @@ <field name="project_id" ref="project.project_project_9"/> <field name="description">Cash book, general ledger, accounts list, aged trial balance</field> <field name="name">Accounting Report General</field> - <field name="state">open</field> <field eval="[(6,0,[ref('scrum_task_8')])]" name="child_ids"/> <field name="product_backlog_id" ref="scrum_product_backlog_1"/> </record> @@ -332,7 +326,6 @@ <field model="res.users" name="user_id" search="[('login','=','demo')]"/> <field name="project_id" ref="project.project_project_9"/> <field name="name">Accounting Report Analytic</field> - <field name="state">open</field> <field name="product_backlog_id" ref="scrum_product_backlog_1"/> </record> <record id="scrum_task_12" model="project.task"> @@ -340,7 +333,6 @@ <field model="res.users" name="user_id" search="[('login','=','demo')]"/> <field name="project_id" ref="project.project_project_9"/> <field name="name">Bugfix - memory leak</field> - <field name="state">done</field> <field eval="time.strftime('%Y-%m-%d')" name="date_end"/> <field name="product_backlog_id" ref="scrum_product_backlog_4"/> </record> @@ -349,7 +341,6 @@ <field model="res.users" name="user_id" search="[('login','=','demo')]"/> <field name="project_id" ref="project.project_project_9"/> <field name="name">Bugfix - Translations</field> - <field name="state">open</field> <field eval="[(6,0,[ref('scrum_task_12')])]" name="child_ids"/> <field name="product_backlog_id" ref="scrum_product_backlog_4"/> </record> @@ -358,7 +349,6 @@ <field model="res.users" name="user_id" search="[('login','=','demo')]"/> <field name="project_id" ref="project.project_project_9"/> <field name="name">Finish the automated plugin system</field> - <field name="state">pending</field> <field name="product_backlog_id" ref="scrum_product_backlog_2"/> </record> <record id="scrum_task_15" model="project.task"> @@ -373,7 +363,6 @@ <field model="res.users" name="user_id" search="[('login','=','demo')]"/> <field name="project_id" ref="project.project_project_9"/> <field name="name">Test 3.2.0 before releasing</field> - <field name="state">open</field> <field name="product_backlog_id" ref="scrum_product_backlog_5"/> </record> <record id="scrum_task_17" model="project.task"> @@ -382,7 +371,6 @@ <field name="project_id" ref="project.project_project_9"/> <field name="description">default values, onchange, required, add on top or bottom and shortcuts (Ctrl S, Ctrl X, ...)</field> <field name="name">Editable trees</field> - <field name="state">open</field> <field name="product_backlog_id" ref="scrum_product_backlog_7"/> </record> diff --git a/addons/project_scrum/project_scrum_view.xml b/addons/project_scrum/project_scrum_view.xml index ef8a2681620..4e69dfd3550 100644 --- a/addons/project_scrum/project_scrum_view.xml +++ b/addons/project_scrum/project_scrum_view.xml @@ -43,10 +43,6 @@ <field name="expected_hours" sum="Planned hours" widget="float_time" string="Total Planned Hours"/> <field name="effective_hours" sum="Spent hours" widget="float_time" string="Total Spent Hours"/> <field name="state"/> - <button type="object" string="Open" name="button_open" states="draft,pending" icon="terp-camera_test"/> - <button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/> - <button type="action" string="Convert to Task" name="%(action_scrum_backlog_to_task)d" states="pending" icon="terp-stock_effects-object-colorize"/> - <button type="object" string="Close" name="button_close" states="open,pending" icon="terp-dialog-close"/> </tree> </field> </record> @@ -57,18 +53,15 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button type="object" string="Open" name="button_open" states="draft,pending"/> <button type="object" string="Close" name="button_close" states="open,pending"/> <button type="object" string="Pending" name="button_pending" states="open"/> <button type="action" string="Convert to Task" name="%(action_scrum_backlog_to_task)d" states="pending"/> <button type="object" string="Set to Draft" name="button_draft" states="cancel,done"/> <button type="object" string="Cancel" name="button_cancel" states="draft,open,pending"/> - <div class="oe_right"> - <field name="state" select="1" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,open"/> + </header> <sheet string="Product backlog" layout="auto"> <group colspan="4" col="8" class="oe_form_header"> <field name="name" select="1"/> @@ -106,7 +99,7 @@ <field name="type_id" invisible="context.get('set_visible',False)"/> <field name="date_start" invisible="1"/> <field name="date_end" invisible="1"/> - <button name="next_type" invisible="context.get('set_visible',False)" + <button name="stage_next" invisible="context.get('set_visible',False)" states="draft,open,pending" string="Change Stage" type="object" @@ -223,12 +216,6 @@ <field name="effective_hours" sum="Effective hours" widget="float_time"/> <field name="expected_hours" sum="Planned hours" widget="float_time"/> <field name="state"/> - <button type="object" string="Open" name="button_open" states="draft,pending" icon="terp-camera_test"/> - <button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/> - <button type="object" string="Close" name="button_close" states="open,pending" icon="terp-dialog-close"/> - <button type="object" string="Set to Draft" name="button_draft" states="cancel,done" icon="gtk-convert"/> - <button name="%(project_scrum.report_scrum_sprint_burndown_chart)d" states="open,draft,close,cancel" - string="Burndown Chart" type="action" icon="gtk-print"/> </tree> </field> </record> @@ -238,18 +225,15 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button type="object" string="Open" name="button_open" states="draft,pending"/> <button type="object" string="Close" name="button_close" states="open,pending"/> <button type="object" string="Pending" name="button_pending" states="open"/> <button name="%(project_scrum.report_scrum_sprint_burndown_chart)d" string="Burndown Chart" type="action"/> <button type="object" string="Set to Draft" name="button_draft" states="cancel,done"/> - <div class="oe_right"> - <field name="state" readonly="1" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,open"/> + </header> <sheet string="Scrum Sprint" layout="auto"> <group colspan="4" col="6" class="oe_form_header"> <field name="name" select="1"/> @@ -317,6 +301,9 @@ </page> </notebook> </sheet> + <div class="oe_form_sheet_width"> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </div> </form> </field> </record> @@ -578,7 +565,7 @@ <field name="type">search</field> <field name="inherit_id" ref="project.view_task_search_form"/> <field name="arch" type="xml"> - <field name="project_id" position="after"> + <field name="user_id" position="before"> <field name="sprint_id" context="{'sprint_invisible':False}"> <filter icon="terp-check" context="{'sprint_invisible':False}" domain="[('sprint_id.state','in',('draft','open'))]" help="Current Sprints"/> <filter icon="gtk-find" context="{'sprint_invisible':False}" domain="[]" help="View Sprints"/> diff --git a/addons/project_scrum/wizard/project_scrum_backlog_sprint.py b/addons/project_scrum/wizard/project_scrum_backlog_sprint.py index 72b80a969fb..ab017231e89 100644 --- a/addons/project_scrum/wizard/project_scrum_backlog_sprint.py +++ b/addons/project_scrum/wizard/project_scrum_backlog_sprint.py @@ -24,6 +24,7 @@ from tools.translate import _ class backlog_sprint_assign(osv.osv_memory): _name = 'project.scrum.backlog.assign.sprint' _description = 'Assign sprint to backlogs' + _inherit = ['mail.thread'] _columns = { 'sprint_id': fields.many2one('project.scrum.sprint', 'Sprint', required=True, help="Select Sprint to assign backlog."), 'state_open': fields.boolean('Open Backlog', help="Change the state of product backlogs to open if its in draft state"), @@ -55,12 +56,12 @@ class backlog_sprint_assign(osv.osv_memory): 'remaining_hours':backlog.expected_hours, }) message = _("Product Backlog '%s' is converted into Task %d.") %(backlog.name, task_id) - self.log(cr, uid, backlog.id, message) + self.message_append_note(cr, uid, [backlog.id], body=message, context=context) if data.state_open and backlog.state == "draft": backlog_obj.write(cr, uid, backlog.id, {'state':'open'}) sprint = sprint_obj.browse(cr, uid, data.sprint_id.id, context=context) message = _("Product Backlog '%s' is assigned to sprint %s") %(backlog.name, sprint.name) - self.log(cr, uid, backlog.id, message) + self.message_append_note(cr, uid, [backlog.id], body=message, context=context) backlog_obj.write(cr, uid, backlog_ids, {'sprint_id': data.sprint_id.id}, context=context) return {'type': 'ir.actions.act_window_close'} diff --git a/addons/purchase/edi/purchase_order.py b/addons/purchase/edi/purchase_order.py index 787974646ff..42cbb04842c 100644 --- a/addons/purchase/edi/purchase_order.py +++ b/addons/purchase/edi/purchase_order.py @@ -24,6 +24,7 @@ from dateutil.relativedelta import relativedelta from osv import fields, osv, orm from edi import EDIMixin +from edi.models import edi from tools import DEFAULT_SERVER_DATE_FORMAT from tools.translate import _ @@ -56,11 +57,22 @@ PURCHASE_ORDER_EDI_STRUCT = { 'amount_total': True, 'amount_untaxed': True, 'amount_tax': True, + 'state':True, } class purchase_order(osv.osv, EDIMixin): _inherit = 'purchase.order' + def wkf_send_rfq(self, cr, uid, ids, context=None): + """"Override this method to add a link to mail""" + if context is None: + context = {} + purchase_objs = self.browse(cr, uid, ids, context=context) + edi_token = self.pool.get('edi.document').export_edi(cr, uid, purchase_objs, context = context)[0] + web_root_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url') + ctx = dict(context, edi_web_url_view=edi.EDI_VIEW_WEB_URL % (web_root_url, cr.dbname, edi_token)) + return super(purchase_order, self).wkf_send_rfq(cr, uid, ids, context=ctx) + def edi_export(self, cr, uid, records, edi_struct=None, context=None): """Exports a purchase order""" edi_struct = dict(edi_struct or PURCHASE_ORDER_EDI_STRUCT) diff --git a/addons/purchase/edi/purchase_order_action_data.xml b/addons/purchase/edi/purchase_order_action_data.xml index c4a7f75819a..70d402de598 100644 --- a/addons/purchase/edi/purchase_order_action_data.xml +++ b/addons/purchase/edi/purchase_order_action_data.xml @@ -2,6 +2,7 @@ <openerp> <data> <!--Export edi document --> + <!-- <record id="ir_actions_server_edi_purchase" model="ir.actions.server"> <field name="code">if not object.partner_id.opt_out: object.edi_export_and_email(template_ext_id='purchase.email_template_edi_purchase', context=context)</field> <field name="state">code</field> @@ -10,6 +11,7 @@ <field name="condition">True</field> <field name="name">Auto-email confirmed purchase orders</field> </record> + --> <!-- EDI related Email Templates menu --> <record model="ir.actions.act_window" id="action_email_templates"> @@ -27,9 +29,11 @@ so users can freely customize/delete them --> <data noupdate="1"> <!-- bind the mailing server action to purchase.order confirmed activity --> + <!-- <record id="purchase.act_confirmed" model="workflow.activity"> <field name="action_id" ref="ir_actions_server_edi_purchase"/> </record> + --> <!--Email template --> <record id="email_template_edi_purchase" model="email.template"> @@ -44,7 +48,7 @@ <p>Hello${object.partner_id.name and ' ' or ''}${object.partner_id.name or ''},</p> - <p>Here is a purchase order confirmation from ${object.company_id.name}: </p> + <p>Here is a ${object.state in ('draft', 'sent') and 'request for quotation' or 'purchase order confirmation'} from ${object.company_id.name}: </p> <p style="border-left: 1px solid #8e0000; margin-left: 30px;"> <strong>REFERENCES</strong><br /> @@ -61,7 +65,7 @@ </p> <p> - You can view the order confirmation document and download it using the following link: + You can view the ${object.state in ('draft', 'sent') and 'request for quotation' or 'order confirmation'} document and download it using the following link: </p> <a style="display:block; width: 150px; height:20px; margin-left: 120px; color: #FFF; font-family: 'Lucida Grande', Helvetica, Arial, sans-serif; font-size: 13px; font-weight: bold; text-align: center; text-decoration: none !important; line-height: 1; padding: 5px 0px 0px 0px; background-color: #8E0000; border-radius: 5px 5px; background-repeat: repeat no-repeat;" href="${ctx.get('edi_web_url_view') or ''}">View Order</a> @@ -107,7 +111,7 @@ <field name="body_text"><![CDATA[ Hello${object.partner_id.name and ' ' or ''}${object.partner_id.name or ''}, -Here is a purchase order confirmation from ${object.company_id.name}: +Here is a ${object.state in ('draft', 'sent') and 'request for quotation' or 'purchase order confirmation'} from ${object.company_id.name}: | Order number: *${object.name}* | Order total: *${object.amount_total} ${object.pricelist_id.currency_id.name}* | Order date: ${object.date_order} @@ -119,7 +123,7 @@ Here is a purchase order confirmation from ${object.company_id.name}: % endif | Your contact: ${object.validator.name} ${object.validator.user_email and '<%s>'%(object.validator.user_email) or ''} -You can view the order confirmation and download it using the following link: +You can view the ${object.state in ('draft', 'sent') and 'request for quotation' or 'order confirmation'} and download it using the following link: ${ctx.get('edi_web_url_view') or 'n/a'} If you have any question, do not hesitate to contact us. @@ -151,4 +155,4 @@ ${object.company_id.website or ''} ]]></field> </record> </data> -</openerp>
\ No newline at end of file +</openerp> diff --git a/addons/purchase/i18n/nl.po b/addons/purchase/i18n/nl.po index 40ad6f9c252..046e2a2a4e7 100644 --- a/addons/purchase/i18n/nl.po +++ b/addons/purchase/i18n/nl.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-18 15:04+0000\n" +"PO-Revision-Date: 2012-06-01 08:41+0000\n" "Last-Translator: Erwin <Unknown>\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:40+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-02 05:35+0000\n" +"X-Generator: Launchpad (build 15342)\n" #. module: purchase #: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder0 @@ -113,7 +113,7 @@ msgstr "Te factureren" #. module: purchase #: view:purchase.order.line_invoice:0 msgid "Do you want to generate the supplier invoices?" -msgstr "" +msgstr "Wilt u de leveranciersfacturen genereren?" #. module: purchase #: model:ir.actions.act_window,help:purchase.purchase_form_action @@ -194,7 +194,7 @@ msgstr "Fouten in facturatie" #. module: purchase #: model:product.pricelist,name:purchase.list0 msgid "Default Purchase Pricelist" -msgstr "Standaard inkoopprijslijst" +msgstr "Inkoopprijslijst" #. module: purchase #: help:purchase.order,dest_address_id:0 @@ -1849,7 +1849,7 @@ msgstr "" #. module: purchase #: view:purchase.order.group:0 msgid "Are you sure you want to merge these orders?" -msgstr "" +msgstr "Weet u zeker dat u deze orders wilt samenvoegen?" #. module: purchase #: model:process.transition,name:purchase.process_transition_purchaseinvoice0 diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index f3f66af047e..b6f06dfd4bf 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -142,14 +142,15 @@ class purchase_order(osv.osv): return res STATE_SELECTION = [ - ('draft', 'Request for Quotation'), - ('cancel', 'Cancelled'), + ('draft', 'Draft PO'), ('wait', 'Waiting'), + ('sent', 'RFQ Sent'), ('confirmed', 'Waiting Approval'), - ('approved', 'Approved'), + ('approved', 'Purchase Order'), ('except_picking', 'Shipping Exception'), ('except_invoice', 'Invoice Exception'), ('done', 'Done'), + ('cancel', 'Cancelled') ] _columns = { @@ -177,7 +178,7 @@ class purchase_order(osv.osv): 'picking_ids': fields.one2many('stock.picking.in', 'purchase_id', 'Picking List', readonly=True, help="This is the list of incomming shipments that have been generated for this purchase order."), 'shipped':fields.boolean('Received', readonly=True, select=True, help="It indicates that a picking has been done"), 'shipped_rate': fields.function(_shipped_rate, string='Received', type='float'), - 'invoiced': fields.function(_invoiced, string='Invoiced & Paid', type='boolean', help="It indicates that an invoice has been paid"), + 'invoiced': fields.function(_invoiced, string='Invoice Received', type='boolean', help="It indicates that an invoice has been paid"), 'invoiced_rate': fields.function(_invoiced_rate, string='Invoiced', type='float'), 'invoice_method': fields.selection([('manual','Based on Purchase Order lines'),('order','Based on generated draft invoice'),('picking','Bases on incoming shipments')], 'Invoicing Control', required=True, help="Based on Purchase Order lines: place individual lines in 'Invoice Control > Based on P.O. lines' from where you can selectively create an invoice.\n" \ @@ -277,10 +278,90 @@ class purchase_order(osv.osv): fiscal_position = supplier.property_account_position and supplier.property_account_position.id or False return {'value':{'pricelist_id': pricelist, 'fiscal_position': fiscal_position}} + def view_invoice(self, cr, uid, ids, context=None): + ''' + This function returns an action that display existing invoices of given sale order ids. It can either be a in a list or in a form view, if there is only one invoice to show. + ''' + mod_obj = self.pool.get('ir.model.data') + wizard_obj = self.pool.get('purchase.order.line_invoice') + #compute the number of invoices to display + inv_ids = [] + for po in self.browse(cr, uid, ids, context=context): + if po.invoice_method == 'manual': + if not po.invoice_ids: + context.update({'active_ids' : [line.id for line in po.order_line]}) + wizard_obj.makeInvoices(cr, uid, [], context=context) + + for po in self.browse(cr, uid, ids, context=context): + inv_ids+= [invoice.id for invoice in po.invoice_ids] + res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_supplier_form') + res_id = res and res[1] or False + + return { + 'name': _('Supplier Invoices'), + 'view_type': 'form', + 'view_mode': 'form', + 'view_id': [res_id], + 'res_model': 'account.invoice', + 'context': "{'type':'in_invoice', 'journal_type': 'purchase'}", + 'type': 'ir.actions.act_window', + 'nodestroy': True, + 'target': 'current', + 'res_id': inv_ids and inv_ids[0] or False, + } + + def view_picking(self, cr, uid, ids, context=None): + ''' + This function returns an action that display existing pîcking orders of given purchase order ids. + ''' + mod_obj = self.pool.get('ir.model.data') + pick_ids = [] + for po in self.browse(cr, uid, ids, context=context): + pick_ids += [picking.id for picking in po.picking_ids] + + res = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_in_form') + res_id = res and res[1] or False + + return { + 'name': _('Receptions'), + 'view_type': 'form', + 'view_mode': 'form', + 'view_id': [res_id], + 'res_model': 'stock.picking', + 'context': "{'contact_display': 'partner'}", + 'type': 'ir.actions.act_window', + 'nodestroy': True, + 'target': 'current', + 'res_id': pick_ids and pick_ids[0] or False, + } + def wkf_approve_order(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state': 'approved', 'date_approve': fields.date.context_today(self,cr,uid,context=context)}) return True + def wkf_send_rfq(self, cr, uid, ids, context=None): + ''' + This function opens a window to compose an email, with the edi purchase template message loaded by default + ''' + mod_obj = self.pool.get('ir.model.data') + template = mod_obj.get_object_reference(cr, uid, 'purchase', 'email_template_edi_purchase') + template_id = template and template[1] or False + res = mod_obj.get_object_reference(cr, uid, 'mail', 'email_compose_message_wizard_form') + res_id = res and res[1] or False + ctx = dict(context, active_model='purchase.order', active_id=ids[0]) + ctx.update({'mail.compose.template_id': template_id}) + return { + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'mail.compose.message', + 'views': [(res_id,'form')], + 'view_id': res_id, + 'type': 'ir.actions.act_window', + 'target': 'new', + 'context': ctx, + 'nodestroy': True, + } + #TODO: implement messages system def wkf_confirm_order(self, cr, uid, ids, context=None): todo = [] @@ -290,8 +371,6 @@ class purchase_order(osv.osv): for line in po.order_line: if line.state=='draft': todo.append(line.id) - message = _("Purchase order '%s' is confirmed.") % (po.name,) - self.log(cr, uid, po.id, message) # current_name = self.name_get(cr, uid, ids)[0][1] self.pool.get('purchase.order.line').action_confirm(cr, uid, todo, context) for id in ids: @@ -318,7 +397,7 @@ class purchase_order(osv.osv): 'account_analytic_id': order_line.account_analytic_id.id or False, } - def action_cancel_draft(self, cr, uid, ids, *args): + def action_cancel_draft(self, cr, uid, ids, context=None): if not len(ids): return False self.write(cr, uid, ids, {'state':'draft','shipped':0}) @@ -327,9 +406,7 @@ class purchase_order(osv.osv): # Deleting the existing instance of workflow for PO wf_service.trg_delete(uid, 'purchase.order', p_id, cr) wf_service.trg_create(uid, 'purchase.order', p_id, cr) - for (id,name) in self.name_get(cr, uid, ids): - message = _("Purchase order '%s' has been set in draft state.") % name - self.log(cr, uid, id, message) + self.draft_send_note(cr, uid, ids, context=context) return True def action_invoice_create(self, cr, uid, ids, context=None): @@ -433,8 +510,7 @@ class purchase_order(osv.osv): for (id, name) in self.name_get(cr, uid, ids): wf_service.trg_validate(uid, 'purchase.order', id, 'purchase_cancel', cr) - message = _("Purchase order '%s' is cancelled.") % name - self.log(cr, uid, id, message) + self.cancel_send_note(cr, uid, ids, context) return True def _prepare_order_picking(self, cr, uid, order, context=None): @@ -445,6 +521,8 @@ class purchase_order(osv.osv): 'partner_id': order.dest_address_id.id or order.partner_id.id, 'invoice_state': '2binvoiced' if order.invoice_method == 'picking' else 'none', 'type': 'in', + 'partner_id': order.dest_address_id.id or order.partner_id.id, + 'invoice_state': '2binvoiced' if order.invoice_method == 'picking' else 'none', 'purchase_id': order.id, 'company_id': order.company_id.id, 'move_lines' : [], @@ -688,6 +766,9 @@ class purchase_order(osv.osv): def invoice_done_send_note(self, cr, uid, ids, context=None): self.message_append_note(cr, uid, ids, body=_("Invoice <b>paid</b>."), context=context) + + def draft_send_note(self, cr, uid, ids, context=None): + return self.message_append_note(cr, uid, ids, body=_("Purchase Order has been set to <b>draft</b>."), context=context) def cancel_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): @@ -993,7 +1074,20 @@ class procurement_order(osv.osv): } res[procurement.id] = self.create_procurement_purchase_order(cr, uid, procurement, po_vals, line_vals, context=context) self.write(cr, uid, [procurement.id], {'state': 'running', 'purchase_id': res[procurement.id]}) + self.running_send_note(cr, uid, [procurement.id], context=context) return res procurement_order() + +class mail_message(osv.osv): + _name = 'mail.message' + _inherit = 'mail.message' + + def _postprocess_sent_message(self, cr, uid, message, context=None): + if message.model == 'purchase.order': + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'purchase.order', message.res_id, 'send_rfq', cr) + return super(mail_message, self)._postprocess_sent_message(cr, uid, message=message, context=context) + +mail_message() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index 3e6170048da..e561473363a 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -131,21 +131,21 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> - <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/> + <header> + <button name="purchase_confirm" states="draft,sent" string="Confirm Order" class="oe_form_button_hi"/> + <button name="wkf_send_rfq" states="draft" string="Send RFQ" type="object" context="{'send_rfq':True}"/> + <button name="wkf_send_rfq" states="confirmed" string="Resend Purchase Order" type="object"/> + <button name="action_cancel" states="except_picking,except_invoice,wait" string="Cancel" type="object" /> <button name="picking_ok" states="except_picking" string="Manually Corrected"/> <button name="invoice_ok" states="except_invoice" string="Manually Corrected"/> - <button name="purchase_confirm" states="draft" string="Confirm Purchase"/> - <button name="purchase_appbuyer" states="wait_auth" string="Approve Purchase"/> - <button name="purchase_approve" states="confirmed" string="Approved"/> - <button name="%(report_purchase_order)d" string="Print" states="approved" type="action"/> - <button name="action_cancel" states="approved,except_picking,except_invoice,wait" string="Cancel" type="object"/> - <button name="purchase_cancel" states="draft,confirmed,wait_auth" string="Cancel"/> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,approved,done" statusbar_colors='{"except_picking":"red","except_invoice":"red","confirmed":"blue","wait":"blue"}' readonly="1"/> - </div> - <div class="oe_clear"/> - </div> + <button name="purchase_appbuyer" states="wait_auth" string="Approve Purchase" class="oe_form_button_hi"/> + <button name="purchase_approve" states="confirmed" string="Approve Order" class="oe_form_button_hi"/> + <button name="view_invoice" string="Receive Invoice" type="object" attrs="{'invisible': ['|', ('invoice_method','=','picking'), '|', ('state','!=', 'approved'), ('invoiced','=',True) ]}"/> + <button name="view_picking" string="Receive Products" type="object" attrs="{'invisible': ['|', ('shipped','=',True), ('state','!=', 'approved')]}"/> + <button name="action_cancel_draft" states="cancel,sent,confirmed" string="Set to Draft" type="object"/> + <button name="purchase_cancel" states="draft,confirmed,wait_auth,sent" string="Cancel"/> + <field name="state" widget="statusbar" statusbar_visible="draft,approved,done" statusbar_colors='{"except_picking":"red","except_invoice":"red","confirmed":"blue","wait":"blue"}' readonly="1"/> + </header> <sheet string="Purchase Order" layout="auto"> <group col="6" colspan="4"> <field name="name"/> @@ -209,7 +209,7 @@ </notebook> </sheet> <div class="oe_form_sheet_width"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> @@ -225,9 +225,8 @@ <filter icon="terp-document-new" name="draft" string="Quotations" domain="[('state','=','draft')]" help="Purchase order which are in draft state"/> <filter icon="terp-check" name="approved" string="Approved" domain="[('state','in',('approved','done'))]" help="Approved purchase order"/> <separator orientation="vertical"/> - <filter icon="terp-emblem-important" name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]" help="Purchase order which are in the exception state"/> - <separator orientation="vertical"/> <filter icon="terp-gtk-go-back-rtl" name="not_invoiced" string="Not Invoiced" domain="[('invoice_ids','=', False)]" help="Purchase orders that include lines not invoiced."/> + <filter icon="terp-emblem-important" name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]" help="Purchase order which are in the exception state"/> <separator orientation="vertical"/> <field name="name" string="Reference"/> <field name="partner_id"/> @@ -257,13 +256,10 @@ <search string="Search Purchase Order"> <group> <filter icon="terp-document-new" name="draft" string="Quotations" domain="[('state','=','draft')]" help="Purchase orders which are in draft state"/> - <filter icon="terp-gtk-jump-to-ltr" name="to_approve" string="To Approve" domain="[('state','in',('draft','wait','confirmed'))]" help="Purchase orders which are not approved yet."/> - <filter icon="terp-check" name="approved" string="Approved" domain="[('state','=','approved')]" help="Approved purchase orders"/> - <filter icon="terp-accessories-archiver+" string="Done" domain="[('state','=','done')]" help="Purchase orders which are in done state."/> - <separator orientation="vertical"/> - <filter icon="terp-emblem-important" name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]" help="Purchase orders which are in exception state"/> + <filter icon="terp-check" name="approved" string="Purchase Orders" domain="[('state','not in',('draft','cancel'))]" help="Approved purchase orders"/> <separator orientation="vertical"/> <filter icon="terp-gtk-go-back-rtl" name="not_invoiced" string="Not Invoiced" domain="[('invoice_ids','=', False)]" help="Purchase orders that include lines not invoiced."/> + <filter icon="terp-emblem-important" name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]" help="Purchase orders which are in exception state"/> <separator orientation="vertical"/> <field name="name" string="Reference"/> <field name="partner_id"/> @@ -308,12 +304,12 @@ </record> <record id="purchase_rfq" model="ir.actions.act_window"> - <field name="name">Requests for Quotation</field> + <field name="name">Quotations</field> <field name="type">ir.actions.act_window</field> <field name="res_model">purchase.order</field> <field name="context">{'search_default_draft': 1}</field> <field name="view_mode">tree,form,graph,calendar</field> - <field name="search_view_id" ref="view_request_for_quotation_filter"/> + <field name="search_view_id" ref="view_purchase_order_filter"/> <field name="help">You can create a request for quotation when you want to buy products to a supplier but the purchase is not confirmed yet. Use also this menu to review requests for quotation created automatically based on your logistic rules (minimum stock, MTO, etc). You can convert the request for quotation into a purchase order once the order is confirmed. If you use the extended interface (from user's preferences), you can select the way to control your supplier invoices: based on the order, based on the receptions or manual encoding.</field> </record> <menuitem action="purchase_rfq" id="menu_purchase_rfq" @@ -513,7 +509,7 @@ <field name="inherit_id" ref="procurement.procurement_form_view"/> <field name="type">form</field> <field name="arch" type="xml"> - <xpath expr="//field[@name='close_move']" position="before"> + <xpath expr="/form/sheet/notebook/page/field[@name='close_move']" position="before"> <field name="purchase_id"/> </xpath> </field> diff --git a/addons/purchase/purchase_workflow.xml b/addons/purchase/purchase_workflow.xml index b26363a02f2..0342afec893 100644 --- a/addons/purchase/purchase_workflow.xml +++ b/addons/purchase/purchase_workflow.xml @@ -13,6 +13,12 @@ <field name="flow_start">True</field> <field name="name">draft</field> </record> + <record id="act_sent" model="workflow.activity"> + <field name="wkf_id" ref="purchase_order"/> + <field name="name">sent</field> + <field name="kind">function</field> + <field name="action">write({'state':'sent'})</field> + </record> <record id="act_confirmed" model="workflow.activity"> <field name="wkf_id" ref="purchase_order"/> <field name="name">confirmed</field> @@ -90,6 +96,22 @@ <field name="act_to" ref="act_confirmed"/> <field name="signal">purchase_confirm</field> </record> + <record id="trans_draft_sent" model="workflow.transition"> + <field name="act_from" ref="act_draft"/> + <field name="act_to" ref="act_sent"/> + <field name="signal">send_rfq</field> + </record> + <record id="trans_sent_confirmed" model="workflow.transition"> + <field name="act_from" ref="act_sent"/> + <field name="act_to" ref="act_confirmed"/> + <field name="signal">purchase_confirm</field> + </record> + <record id="trans_sent_cancel" model="workflow.transition"> + <field name="act_from" ref="act_sent"/> + <field name="act_to" ref="act_cancel"/> + <field name="signal">purchase_cancel</field> + </record> + <record id="trans_confirmed_cancel" model="workflow.transition"> <field name="act_from" ref="act_confirmed"/> <field name="act_to" ref="act_cancel"/> diff --git a/addons/purchase/res_config_view.xml b/addons/purchase/res_config_view.xml index 3d4c96b9587..575863fddc4 100644 --- a/addons/purchase/res_config_view.xml +++ b/addons/purchase/res_config_view.xml @@ -7,10 +7,10 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Purchases" layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Apply" type="object" name="execute"/> <button string="Cancel" special="cancel"/> - </div> + </header> <sheet layout="auto"> <separator string="Invoicing" colspan="4"/> <field name="default_invoice_method"/> diff --git a/addons/purchase_double_validation/__openerp__.py b/addons/purchase_double_validation/__openerp__.py index fe05cbd412f..47124e689ef 100644 --- a/addons/purchase_double_validation/__openerp__.py +++ b/addons/purchase_double_validation/__openerp__.py @@ -38,6 +38,7 @@ that exceeds minimum amount set by configuration wizard. 'update_xml': [ 'purchase_double_validation_workflow.xml', 'purchase_double_validation_installer.xml', + 'purchase_double_validation_view.xml', 'board_purchase_view.xml' ], 'test': [ diff --git a/addons/purchase_double_validation/purchase_double_validation_view.xml b/addons/purchase_double_validation/purchase_double_validation_view.xml new file mode 100644 index 00000000000..e6b255e3245 --- /dev/null +++ b/addons/purchase_double_validation/purchase_double_validation_view.xml @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<openerp> + <data> + <record model="ir.ui.view" id="purchase_order_search_inherit"> + <field name="name">purchase.order.list.select.inherit</field> + <field name="type">form</field> + <field name="model">purchase.order</field> + <field name="inherit_id" ref="purchase.view_purchase_order_filter"/> + <field name="arch" type="xml"> + <xpath expr="//filter[@name='draft']" position="after"> + <filter icon="terp-gtk-jump-to-ltr" name="to_approve" string="To Approve" domain="[('state','in',('wait','confirmed'))]" help="Purchase orders which are not approved yet."/> + </xpath> + </field> + </record> + </data> +</openerp> diff --git a/addons/purchase_requisition/purchase_requisition.py b/addons/purchase_requisition/purchase_requisition.py index 3f3afa47e3b..566497df729 100644 --- a/addons/purchase_requisition/purchase_requisition.py +++ b/addons/purchase_requisition/purchase_requisition.py @@ -259,7 +259,7 @@ class procurement_order(osv.osv): })], 'purchase_ids': [(6,0,[po_id])] }) - self.write(cr,uid,proc_id,{'requisition_id':requisition_id}) + self.write(cr,uid,[proc_id],{'requisition_id':requisition_id},context=context) return res procurement_order() diff --git a/addons/purchase_requisition/purchase_requisition_view.xml b/addons/purchase_requisition/purchase_requisition_view.xml index a9faaf43c5a..2b2323308b2 100644 --- a/addons/purchase_requisition/purchase_requisition_view.xml +++ b/addons/purchase_requisition/purchase_requisition_view.xml @@ -21,22 +21,8 @@ <field name="model">purchase.order</field> <field name="inherit_id" ref="purchase.view_purchase_order_filter"/> <field name="arch" type="xml"> - <xpath expr="/search/group/filter[@name='not_invoiced']" position="after"> - <separator orientation="vertical"/> - <filter icon="terp-gtk-jump-to-rtl" string="Requisition" domain="[('requisition_id','!=',False)]" help="Purchase Orders with requisition"/> - </xpath> - </field> - </record> - - <record model="ir.ui.view" id="request_for_quotation_inherit"> - <field name="name">request.for.quotation.select.inherit</field> - <field name="type">form</field> - <field name="model">purchase.order</field> - <field name="inherit_id" ref="purchase.view_request_for_quotation_filter"/> - <field name="arch" type="xml"> - <xpath expr="/search/group/filter[@name='not_invoiced']" position="after"> - <separator orientation="vertical"/> - <filter icon="terp-gtk-jump-to-rtl" string="Requisition" domain="[('requisition_id','!=',False)]" help="Purchase Orders with requisition"/> + <xpath expr="//filter[@name='approved']" position="after"> + <filter icon="terp-gtk-jump-to-rtl" string="Requisition" domain="[('requisition_id','!=',False)]" help="Purchase Orders with requisition"/> </xpath> </field> </record> @@ -47,16 +33,13 @@ <field name="model">purchase.requisition</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="tender_in_progress" states="draft" string="Start" 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_cancel" states="draft,in_progress" string="Cancel" type="object" /> - <div class="oe_right"> - <field name="state" nolabel="1" select="1" readonly ="1" widget="statusbar" statusbar_visible="draft,in_progress,done" statusbar_colors='{"in_progress":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,in_progress,done" statusbar_colors='{"in_progress":"blue"}'/> + </header> <sheet string="Purchase Requisition" layout="auto"> <group colspan="4" col="6"> <field name="name"/> diff --git a/addons/report_webkit/header_view.xml b/addons/report_webkit/header_view.xml index 267bc7cb0a4..c66afd4f66c 100644 --- a/addons/report_webkit/header_view.xml +++ b/addons/report_webkit/header_view.xml @@ -53,7 +53,7 @@ <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <menuitem action="action_header_img" id="menu_header_img" parent="base.menu_res_company_global" sequence="14"/> + <menuitem action="action_header_img" id="menu_header_img" parent="base.menu_custom" sequence="14"/> <record id="action_header_webkit" model="ir.actions.act_window"> <field name="name">Webkit Headers/Footers</field> @@ -61,7 +61,7 @@ <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <menuitem action="action_header_webkit" id="menu_header_webkit" parent="base.menu_res_company_global" sequence="14"/> + <menuitem action="action_header_webkit" id="menu_header_webkit" parent="base.menu_custom" sequence="14"/> </data> </openerp> diff --git a/addons/sale/edi/sale_order.py b/addons/sale/edi/sale_order.py index 180b0e6f9a6..d1cbe3a98fa 100644 --- a/addons/sale/edi/sale_order.py +++ b/addons/sale/edi/sale_order.py @@ -24,6 +24,7 @@ from dateutil.relativedelta import relativedelta from osv import fields, osv, orm from edi import EDIMixin +from edi.models import edi from tools import DEFAULT_SERVER_DATE_FORMAT SALE_ORDER_LINE_EDI_STRUCT = { @@ -59,11 +60,21 @@ SALE_ORDER_EDI_STRUCT = { 'payment_term': True, 'order_policy': True, 'user_id': True, + 'state': True, } class sale_order(osv.osv, EDIMixin): _inherit = 'sale.order' + def action_quotation_send(self, cr, uid, ids, context=None): + if context is None: + context = {} + sale_objs = self.browse(cr, uid, ids, context=context) + edi_token = self.pool.get('edi.document').export_edi(cr, uid, sale_objs, context = context)[0] + web_root_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url') + ctx = dict(context, edi_web_url_view=edi.EDI_VIEW_WEB_URL % (web_root_url, cr.dbname, edi_token)) + return super(sale_order, self).action_quotation_send(cr, uid, ids, context=ctx) + def edi_export(self, cr, uid, records, edi_struct=None, context=None): """Exports a Sale order""" edi_struct = dict(edi_struct or SALE_ORDER_EDI_STRUCT) diff --git a/addons/sale/edi/sale_order_action_data.xml b/addons/sale/edi/sale_order_action_data.xml index 9fcee173014..2fe0a8cbfd3 100644 --- a/addons/sale/edi/sale_order_action_data.xml +++ b/addons/sale/edi/sale_order_action_data.xml @@ -47,7 +47,7 @@ <p>Hello${object.partner_id.name and ' ' or ''}${object.partner_id.name or ''},</p> - <p>Here is your order confirmation for ${object.partner_id.name}: </p> + <p>Here is your ${object.state in ('draft', 'sent') and 'quotation' or 'order confirmation'} from {$object.company_id.name}: </p> <p style="border-left: 1px solid #8e0000; margin-left: 30px;"> <strong>REFERENCES</strong><br /> @@ -64,12 +64,12 @@ </p> <p> - You can view the order confirmation document, download it and pay online using the following link: + You can view the ${object.state in ('draft', 'sent') and 'quotation' or 'order confirmation'} document, download it and pay online using the following link: </p> <a style="display:block; width: 150px; height:20px; margin-left: 120px; color: #FFF; font-family: 'Lucida Grande', Helvetica, Arial, sans-serif; font-size: 13px; font-weight: bold; text-align: center; text-decoration: none !important; line-height: 1; padding: 5px 0px 0px 0px; background-color: #8E0000; border-radius: 5px 5px; background-repeat: repeat no-repeat;" href="${ctx.get('edi_web_url_view') or ''}">View Order</a> - % if object.order_policy in ('prepaid','manual') and object.company_id.paypal_account: + % if object.order_policy in ('prepaid','manual') and object.company_id.paypal_account and object.state not in ('draft', 'sent'): <% comp_name = quote(object.company_id.name) order_name = quote(object.name) @@ -129,7 +129,7 @@ <field name="body_text"><![CDATA[ Hello${object.partner_id.name and ' ' or ''}${object.partner_id.name or ''}, -Here is your order confirmation for ${object.partner_id.name}: +Here is your ${object.state in ('draft', 'sent') and 'quotation' or 'order confirmation'} from ${object.company_id.name}: | Order number: *${object.name}* | Order total: *${object.amount_total} ${object.pricelist_id.currency_id.name}* | Order date: ${object.date_order} @@ -141,10 +141,10 @@ Here is your order confirmation for ${object.partner_id.name}: % endif | Your contact: ${object.user_id.name} ${object.user_id.user_email and '<%s>'%(object.user_id.user_email) or ''} -You can view the order confirmation, download it and even pay online using the following link: +You can view the ${object.state in ('draft', 'sent') and 'quotation' or 'order confirmation'}, download it and even pay online using the following link: ${ctx.get('edi_web_url_view') or 'n/a'} -% if object.order_policy in ('prepaid','manual') and object.company_id.paypal_account: +% if object.order_policy in ('prepaid','manual') and object.company_id.paypal_account and object.state not in ('draft', 'sent'): <% comp_name = quote(object.company_id.name) order_name = quote(object.name) diff --git a/addons/sale/i18n/is.po b/addons/sale/i18n/is.po new file mode 100644 index 00000000000..d69da3752bc --- /dev/null +++ b/addons/sale/i18n/is.po @@ -0,0 +1,2173 @@ +# Icelandic 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 01:37+0100\n" +"PO-Revision-Date: 2012-05-29 17:26+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Icelandic <is@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-05-30 05:21+0000\n" +"X-Generator: Launchpad (build 15316)\n" + +#. module: sale +#: field:sale.config.picking_policy,timesheet:0 +msgid "Based on Timesheet" +msgstr "Samkvæmt Tímaskjali" + +#. module: sale +#: view:sale.order.line:0 +msgid "" +"Sale Order Lines that are confirmed, done or in exception state and haven't " +"yet been invoiced" +msgstr "" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_sales_by_salesman +msgid "Sales by Salesman in last 90 days" +msgstr "Sala eftir sölumanni síðustu 90 daga" + +#. module: sale +#: help:sale.order,picking_policy:0 +msgid "" +"If you don't have enough stock available to deliver all at once, do you " +"accept partial shipments or not?" +msgstr "" +"Ef þú hefur ekki nægan lager til að afhenta allt í einu, villtu þá leyfa að " +"senda hluta sendingar eða ekki?" + +#. module: sale +#: view:sale.order:0 +msgid "UoS" +msgstr "" + +#. module: sale +#: help:sale.order,partner_shipping_id:0 +msgid "Shipping address for current sales order." +msgstr "Sendingar heimilisfang fyrir þessa sölupöntun." + +#. module: sale +#: field:sale.advance.payment.inv,qtty:0 report:sale.order:0 +msgid "Quantity" +msgstr "Magn" + +#. module: sale +#: view:sale.report:0 field:sale.report,day:0 +msgid "Day" +msgstr "Dagur" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_cancelorder0 +#: view:sale.order:0 +msgid "Cancel Order" +msgstr "Afpanta sölupöntun" + +#. module: sale +#: code:addons/sale/sale.py:638 +#, python-format +msgid "The quotation '%s' has been converted to a sales order." +msgstr "Tilboðið '%s' hefur verið breitt í sölupöntun" + +#. module: sale +#: view:sale.order:0 +msgid "Print Quotation" +msgstr "Prenta Tilboð" + +#. module: sale +#: code:addons/sale/wizard/sale_make_invoice.py:42 +#, python-format +msgid "Warning !" +msgstr "Aðvörun !" + +#. module: sale +#: report:sale.order:0 +msgid "VAT" +msgstr "VSK" + +#. module: sale +#: model:process.node,note:sale.process_node_saleorderprocurement0 +msgid "Drives procurement orders for every sales order line." +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,analytic_account_id:0 +#: field:sale.shop,project_id:0 +msgid "Analytic Account" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,help:sale.action_order_line_tree2 +msgid "" +"Here is a list of each sales order line to be invoiced. You can invoice " +"sales orders partially, by lines of sales order. You do not need this list " +"if you invoice from the delivery orders or if you invoice sales totally." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:295 +#, python-format +msgid "" +"In order to delete a confirmed sale order, you must cancel it before ! To " +"cancel a sale order, you must first cancel related picking or delivery " +"orders." +msgstr "" +"Til að eyða staðfestri sölupöntun, verður þú að af-panta hana fyrst ! Til að " +"af-panta sölupöntun, verður þú fyrst að af-panta tengdar færslur einnig." + +#. module: sale +#: model:process.node,name:sale.process_node_saleprocurement0 +msgid "Procurement Order" +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,partner_id:0 +msgid "Partner" +msgstr "Viðskipta aðili" + +#. module: sale +#: selection:sale.order,order_policy:0 +msgid "Invoice based on deliveries" +msgstr "Gera reikn út frá sendingum" + +#. module: sale +#: view:sale.order:0 +msgid "Order Line" +msgstr "Sölu lína" + +#. module: sale +#: model:ir.actions.act_window,help:sale.action_order_form +msgid "" +"Sales Orders help you manage quotations and orders from your customers. " +"OpenERP suggests that you start by creating a quotation. Once it is " +"confirmed, the quotation will be converted into a Sales Order. OpenERP can " +"handle several types of products so that a sales order may trigger tasks, " +"delivery orders, manufacturing orders, purchases and so on. Based on the " +"configuration of the sales order, a draft invoice will be generated so that " +"you just have to confirm it when you want to bill your customer." +msgstr "" +"Sölu pantanir hjálpa við að halda utan um tilboð og pantanir frá " +"viðskiptavinum. OpenERP mælir með því að þú byrjir á því að gera tilboð. " +"Þegar það er staðfest, verður tilboðið að sölupöntun. OpenERP getur ráðið " +"við nokkrar gerðir af vörum svo sölu pöntunin setur af stað verk, " +"vörusendingu, framleiðslu pöntun, innkaup o.s.fr. \r\n" +"Byggt á hvernig sölupöntunin er gerð, verður til uppkast af reikning sem " +"þarf að staðfesta þegar senda á reikning á viðskiptavininn." + +#. module: sale +#: help:sale.order,invoice_quantity:0 +msgid "" +"The sale order will automatically create the invoice proposition (draft " +"invoice). Ordered and delivered quantities may not be the same. You have to " +"choose if you want your invoice based on ordered or shipped quantities. If " +"the product is a service, shipped quantities means hours spent on the " +"associated tasks." +msgstr "" +"Sölu pöntunin mun sjálfkrafa gera uppkast að reikning. Pantað og afhent magn " +"gæti verið mismunandi. Velja verður hvort gera á reikning eftir pöntuðu eða " +"afhentu magni. Ef varan er þjónusta, þá gæti afhent magn þítt tímar sem eitt " +"var í verk." + +#. module: sale +#: field:sale.shop,payment_default_id:0 +msgid "Default Payment Term" +msgstr "Sjálfgefnir greiðslu skilmálar" + +#. module: sale +#: field:sale.config.picking_policy,deli_orders:0 +msgid "Based on Delivery Orders" +msgstr "Byggt á afhentu magni" + +#. module: sale +#: field:sale.config.picking_policy,time_unit:0 +msgid "Main Working Time Unit" +msgstr "Aðal einingar formið" + +#. module: sale +#: view:sale.order:0 view:sale.order.line:0 field:sale.order.line,state:0 +#: view:sale.report:0 +msgid "State" +msgstr "Staða" + +#. module: sale +#: report:sale.order:0 +msgid "Disc.(%)" +msgstr "Afsl.(%)" + +#. module: sale +#: view:sale.report:0 field:sale.report,price_total:0 +msgid "Total Price" +msgstr "Samtals Verð" + +#. module: sale +#: help:sale.make.invoice,grouped:0 +msgid "Check the box to group the invoices for the same customers" +msgstr "Hakið í boxið til að taka saman reikninga fyrir hvern viðskiptavin" + +#. module: sale +#: view:sale.order:0 +msgid "My Sale Orders" +msgstr "Mínar sölupantanir" + +#. module: sale +#: selection:sale.order,invoice_quantity:0 +msgid "Ordered Quantities" +msgstr "Pantað Magn" + +#. module: sale +#: view:sale.report:0 +msgid "Sales by Salesman" +msgstr "Sala eftir Sölumanni" + +#. module: sale +#: field:sale.order.line,move_ids:0 +msgid "Inventory Moves" +msgstr "Lager færslur" + +#. module: sale +#: field:sale.order,name:0 field:sale.order.line,order_id:0 +msgid "Order Reference" +msgstr "Tilvísun í Pöntun" + +#. module: sale +#: view:sale.order:0 +msgid "Other Information" +msgstr "Aðrar upplýsingar" + +#. module: sale +#: view:sale.order:0 +msgid "Dates" +msgstr "Dagsetningar" + +#. module: sale +#: model:process.transition,note:sale.process_transition_invoiceafterdelivery0 +msgid "" +"The invoice is created automatically if the shipping policy is 'Invoice from " +"pick' or 'Invoice on order after delivery'." +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,task_work:0 +msgid "Based on Tasks' Work" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.act_res_partner_2_sale_order +msgid "Quotations and Sales" +msgstr "Tilboð og Sölur" + +#. module: sale +#: model:ir.model,name:sale.model_sale_make_invoice +msgid "Sales Make Invoice" +msgstr "Sölur gera reikninga" + +#. module: sale +#: code:addons/sale/sale.py:330 +#, python-format +msgid "Pricelist Warning!" +msgstr "Viðvörun út frá verðlista!" + +#. module: sale +#: field:sale.order.line,discount:0 +msgid "Discount (%)" +msgstr "Afsláttur (%)" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_quotation_for_sale +msgid "My Quotations" +msgstr "Mín Tilboð" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.open_board_sales_manager +#: model:ir.ui.menu,name:sale.menu_board_sales_manager +msgid "Sales Manager Dashboard" +msgstr "Mælaborð Sölustjóra" + +#. module: sale +#: field:sale.order.line,product_packaging:0 +msgid "Packaging" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_saleinvoice0 +msgid "From a sales order" +msgstr "Frá sölu pöntun" + +#. module: sale +#: field:sale.shop,name:0 +msgid "Shop Name" +msgstr "Nafn Verslunar" + +#. module: sale +#: help:sale.order,order_policy:0 +msgid "" +"The Invoice Policy is used to synchronise invoice and delivery operations.\n" +" - The 'Pay before delivery' choice will first generate the invoice and " +"then generate the picking order after the payment of this invoice.\n" +" - The 'Deliver & Invoice on demand' will create the picking order directly " +"and wait for the user to manually click on the 'Invoice' button to generate " +"the draft invoice based on the sale order or the sale order lines.\n" +" - The 'Invoice on order after delivery' choice will generate the draft " +"invoice based on sales order after all picking lists have been finished.\n" +" - The 'Invoice based on deliveries' choice is used to create an invoice " +"during the picking process." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1171 +#, python-format +msgid "No Customer Defined !" +msgstr "Enginn viðskiptavinur skilgreindur !" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_tree2 +msgid "Sales in Exception" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1158 code:addons/sale/sale.py:1277 +#: code:addons/sale/wizard/sale_make_invoice_advance.py:70 +#, python-format +msgid "Configuration Error !" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Conditions" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1034 +#, python-format +msgid "" +"There is no income category account defined in default Properties for " +"Product Category or Fiscal Position is not defined !" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "August" +msgstr "" + +#. module: sale +#: constraint:stock.move:0 +msgid "You try to assign a lot which is not from the same product" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:655 +#, python-format +msgid "invalid mode for test_state" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "June" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:617 +#, python-format +msgid "Could not cancel this sales order !" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_report +msgid "Sales Orders Statistics" +msgstr "" + +#. module: sale +#: help:sale.order,project_id:0 +msgid "The analytic account related to a sales order." +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "October" +msgstr "" + +#. module: sale +#: sql_constraint:stock.picking:0 +msgid "Reference must be unique per Company!" +msgstr "" + +#. module: sale +#: view:board.board:0 view:sale.order:0 view:sale.report:0 +msgid "Quotations" +msgstr "" + +#. module: sale +#: help:sale.order,pricelist_id:0 +msgid "Pricelist for current sales order." +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "TVA :" +msgstr "" + +#. module: sale +#: help:sale.order.line,delay:0 +msgid "" +"Number of days between the order confirmation the shipping of the products " +"to the customer" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Quotation Date" +msgstr "Dags Tilboðs" + +#. module: sale +#: field:sale.order,fiscal_position:0 +msgid "Fiscal Position" +msgstr "" + +#. module: sale +#: view:sale.order:0 view:sale.order.line:0 field:sale.report,product_uom:0 +msgid "UoM" +msgstr "" + +#. module: sale +#: field:sale.order.line,number_packages:0 +msgid "Number Packages" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 selection:sale.report,state:0 +msgid "In Progress" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_confirmquotation0 +msgid "" +"The salesman confirms the quotation. The state of the sales order becomes " +"'In progress' or 'Manual in progress'." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1074 +#, python-format +msgid "You cannot cancel a sale order line that has already been invoiced!" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1079 +#, python-format +msgid "You must first cancel stock moves attached to this sales order line." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1147 +#, python-format +msgid "(n/a)" +msgstr "" + +#. module: sale +#: help:sale.advance.payment.inv,product_id:0 +msgid "" +"Select a product of type service which is called 'Advance Product'. You may " +"have to create it and set it as a default value on this field." +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Tel. :" +msgstr "" + +#. module: sale +#: code:addons/sale/wizard/sale_make_invoice_advance.py:64 +#, python-format +msgid "" +"You cannot make an advance on a sales order " +"that is defined as 'Automatic Invoice after delivery'." +msgstr "" + +#. module: sale +#: view:sale.order:0 field:sale.order,note:0 view:sale.order.line:0 +#: field:sale.order.line,notes:0 +msgid "Notes" +msgstr "" + +#. module: sale +#: sql_constraint:res.company:0 +msgid "The company name must be unique !" +msgstr "" + +#. module: sale +#: help:sale.order,partner_invoice_id:0 +msgid "Invoice address for current sales order." +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Month-1" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Ordered month of the sales order" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:504 +#, python-format +msgid "" +"You cannot group sales having different currencies for the same partner." +msgstr "" + +#. module: sale +#: selection:sale.order,picking_policy:0 +msgid "Deliver each product when available" +msgstr "" + +#. module: sale +#: field:sale.order,invoiced_rate:0 field:sale.order.line,invoiced:0 +msgid "Invoiced" +msgstr "" + +#. module: sale +#: model:process.node,name:sale.process_node_deliveryorder0 +msgid "Delivery Order" +msgstr "" + +#. module: sale +#: field:sale.order,date_confirm:0 +msgid "Confirmation Date" +msgstr "Dags Staðfestingar" + +#. module: sale +#: field:sale.order,incoterm:0 +msgid "Incoterm" +msgstr "" + +#. module: sale +#: field:sale.order.line,address_allotment_id:0 +msgid "Allotment Partner" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "March" +msgstr "" + +#. module: sale +#: constraint:stock.move:0 +msgid "You can not move products from or to a location of the type view." +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,sale_orders:0 +msgid "Based on Sales Orders" +msgstr "" + +#. module: sale +#: help:sale.order,amount_total:0 +msgid "The total amount." +msgstr "" + +#. module: sale +#: field:sale.order.line,price_subtotal:0 +msgid "Subtotal" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Invoice address :" +msgstr "" + +#. module: sale +#: field:sale.order.line,sequence:0 +msgid "Line Sequence" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_saleorderprocurement0 +msgid "" +"For every sales order line, a procurement order is created to supply the " +"sold product." +msgstr "" + +#. module: sale +#: help:sale.order,incoterm:0 +msgid "" +"Incoterm which stands for 'International Commercial terms' implies its a " +"series of sales terms which are used in the commercial transaction." +msgstr "" + +#. module: sale +#: field:sale.order,partner_invoice_id:0 +msgid "Invoice Address" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Search Uninvoiced Lines" +msgstr "" + +#. module: sale +#: model:ir.actions.report.xml,name:sale.report_sale_order +msgid "Quotation / Order" +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,nbr:0 +msgid "# of Lines" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_open_invoice +msgid "Sales Open Invoice" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_order_line +#: field:stock.move,sale_line_id:0 +msgid "Sales Order Line" +msgstr "" + +#. module: sale +#: field:sale.shop,warehouse_id:0 +msgid "Warehouse" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Order N°" +msgstr "" + +#. module: sale +#: field:sale.order,order_line:0 +msgid "Order Lines" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Untaxed amount" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_line_tree2 +#: model:ir.ui.menu,name:sale.menu_invoicing_sales_order_lines +msgid "Lines to Invoice" +msgstr "" + +#. module: sale +#: field:sale.order.line,product_uom_qty:0 +msgid "Quantity (UoM)" +msgstr "" + +#. module: sale +#: field:sale.order,create_date:0 +msgid "Creation Date" +msgstr "Búið til þann" + +#. module: sale +#: model:ir.ui.menu,name:sale.menu_sales_configuration_misc +msgid "Miscellaneous" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_line_tree3 +msgid "Uninvoiced and Delivered Lines" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Total :" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "My Sales" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:295 code:addons/sale/sale.py:1074 +#: code:addons/sale/sale.py:1303 +#, python-format +msgid "Invalid action !" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Extra Info" +msgstr "" + +#. module: sale +#: field:sale.order,pricelist_id:0 field:sale.report,pricelist_id:0 +#: field:sale.shop,pricelist_id:0 +msgid "Pricelist" +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,product_uom_qty:0 +msgid "# of Qty" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1327 +#, python-format +msgid "Hour" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Order Date" +msgstr "Dags. Pöntunar" + +#. module: sale +#: view:sale.order.line:0 view:sale.report:0 field:sale.report,shipped:0 +#: field:sale.report,shipped_qty_1:0 +msgid "Shipped" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_tree5 +msgid "All Quotations" +msgstr "" + +#. module: sale +#: view:sale.config.picking_policy:0 +msgid "Options" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "September" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:632 +#, python-format +msgid "You cannot confirm a sale order which has no line." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1259 +#, python-format +msgid "" +"You have to select a pricelist or a customer in the sales form !\n" +"Please set one before choosing a product." +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,categ_id:0 +msgid "Category of Product" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Taxes :" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Stock Moves" +msgstr "" + +#. module: sale +#: field:sale.order,state:0 field:sale.report,state:0 +msgid "Order State" +msgstr "" + +#. module: sale +#: view:sale.make.invoice:0 view:sale.order.line.make.invoice:0 +msgid "Do you really want to create the invoice(s)?" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Sales By Month" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1078 +#, python-format +msgid "Could not cancel sales order line!" +msgstr "" + +#. module: sale +#: field:res.company,security_lead:0 +msgid "Security Days" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_saleorderprocurement0 +msgid "Procurement of sold material" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Create Final Invoice" +msgstr "" + +#. module: sale +#: field:sale.order,partner_shipping_id:0 +msgid "Shipping Address" +msgstr "" + +#. module: sale +#: help:sale.order,shipped:0 +msgid "" +"It indicates that the sales order has been delivered. This field is updated " +"only after the scheduler(s) have been launched." +msgstr "" + +#. module: sale +#: field:sale.order,date_order:0 +msgid "Date" +msgstr "Dags." + +#. module: sale +#: view:sale.report:0 +msgid "Extended Filters..." +msgstr "" + +#. module: sale +#: selection:sale.order.line,state:0 +msgid "Exception" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_res_company +msgid "Companies" +msgstr "" + +#. module: sale +#: help:sale.order,state:0 +msgid "" +"Gives the state of the quotation or sales order. \n" +"The exception state is automatically set when a cancel operation occurs in " +"the invoice validation (Invoice Exception) or in the picking list process " +"(Shipping Exception). \n" +"The 'Waiting Schedule' state is set when the invoice is confirmed but " +"waiting for the scheduler to run on the order date." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1272 +#, python-format +msgid "No valid pricelist line found ! :" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "History" +msgstr "" + +#. module: sale +#: selection:sale.order,order_policy:0 +msgid "Invoice on order after delivery" +msgstr "" + +#. module: sale +#: help:sale.order,invoice_ids:0 +msgid "" +"This is the list of invoices that have been generated for this sales order. " +"The same sales order may have been invoiced in several times (by line for " +"example)." +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Your Reference" +msgstr "" + +#. module: sale +#: help:sale.order,partner_order_id:0 +msgid "" +"The name and address of the contact who requested the order or quotation." +msgstr "" + +#. module: sale +#: help:res.company,security_lead:0 +msgid "" +"This is the days added to what you promise to customers for security purpose" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Qty" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "References" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "My Sales Order Lines" +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_cancel0 +#: model:process.transition.action,name:sale.process_transition_action_cancel1 +#: model:process.transition.action,name:sale.process_transition_action_cancel2 +#: view:sale.advance.payment.inv:0 view:sale.make.invoice:0 +#: view:sale.order.line:0 view:sale.order.line.make.invoice:0 +msgid "Cancel" +msgstr "" + +#. module: sale +#: sql_constraint:sale.order:0 +msgid "Order Reference must be unique per Company!" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_invoice0 +#: model:process.transition,name:sale.process_transition_invoiceafterdelivery0 +#: model:process.transition.action,name:sale.process_transition_action_createinvoice0 +#: view:sale.advance.payment.inv:0 view:sale.order.line:0 +msgid "Create Invoice" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Total Tax Excluded" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Order reference" +msgstr "" + +#. module: sale +#: view:sale.open.invoice:0 +msgid "You invoice has been successfully created!" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Sales by Partner" +msgstr "" + +#. module: sale +#: field:sale.order,partner_order_id:0 +msgid "Ordering Contact" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_view_sale_open_invoice +#: view:sale.open.invoice:0 +msgid "Open Invoice" +msgstr "" + +#. module: sale +#: model:ir.actions.server,name:sale.ir_actions_server_edi_sale +msgid "Auto-email confirmed sale orders" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:413 +#, python-format +msgid "There is no sales journal defined for this company: \"%s\" (id:%d)" +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_forceassignation0 +msgid "Force Assignation" +msgstr "" + +#. module: sale +#: selection:sale.order.line,type:0 +msgid "on order" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_invoiceafterdelivery0 +msgid "Based on the shipped or on the ordered quantities." +msgstr "" + +#. module: sale +#: selection:sale.order,picking_policy:0 +msgid "Deliver all products at once" +msgstr "" + +#. module: sale +#: field:sale.order,picking_ids:0 +msgid "Related Picking" +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,name:0 +msgid "Name" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Shipping address :" +msgstr "" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_sales_by_partner +msgid "Sales per Customer in last 90 days" +msgstr "Sala á hvern Viðskiptavin síðustu 90 daga" + +#. module: sale +#: model:process.node,note:sale.process_node_quotation0 +msgid "Draft state of sales order" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_deliver0 +msgid "Create Delivery Order" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1303 +#, python-format +msgid "Cannot delete a sales order line which is in state '%s'!" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Qty(UoS)" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Total Tax Included" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_packing0 +msgid "Create Pick List" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Ordered date of the sales order" +msgstr "Pöntunar dags. sölupöntunar" + +#. module: sale +#: view:sale.report:0 +msgid "Sales by Product Category" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_confirmquotation0 +msgid "Confirm Quotation" +msgstr "" + +#. module: sale +#: code:addons/sale/wizard/sale_make_invoice_advance.py:63 +#, python-format +msgid "Error" +msgstr "" + +#. module: sale +#: view:sale.order:0 view:sale.order.line:0 view:sale.report:0 +msgid "Group By..." +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Recreate Invoice" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.outgoing_picking_list_to_invoice +#: model:ir.ui.menu,name:sale.menu_action_picking_list_to_invoice +msgid "Deliveries to Invoice" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 selection:sale.report,state:0 +msgid "Waiting Schedule" +msgstr "" + +#. module: sale +#: field:sale.order.line,type:0 +msgid "Procurement Method" +msgstr "" + +#. module: sale +#: model:process.node,name:sale.process_node_packinglist0 +msgid "Pick List" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Set to Draft" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_packinglist0 +msgid "Document of the move to the output or to the customer." +msgstr "" + +#. module: sale +#: model:email.template,body_text:sale.email_template_edi_sale +msgid "" +"\n" +"Hello${object.partner_order_id.name and ' ' or " +"''}${object.partner_order_id.name or ''},\n" +"\n" +"Here is your order confirmation for ${object.partner_id.name}:\n" +" | Order number: *${object.name}*\n" +" | Order total: *${object.amount_total} " +"${object.pricelist_id.currency_id.name}*\n" +" | Order date: ${object.date_order}\n" +" % if object.origin:\n" +" | Order reference: ${object.origin}\n" +" % endif\n" +" % if object.client_order_ref:\n" +" | Your reference: ${object.client_order_ref}<br />\n" +" % endif\n" +" | Your contact: ${object.user_id.name} ${object.user_id.user_email " +"and '<%s>'%(object.user_id.user_email) or ''}\n" +"\n" +"You can view the order confirmation, download it and even pay online using " +"the following link:\n" +" ${ctx.get('edi_web_url_view') or 'n/a'}\n" +"\n" +"% if object.order_policy in ('prepaid','manual') and " +"object.company_id.paypal_account:\n" +"<% \n" +"comp_name = quote(object.company_id.name)\n" +"order_name = quote(object.name)\n" +"paypal_account = quote(object.company_id.paypal_account)\n" +"order_amount = quote(str(object.amount_total))\n" +"cur_name = quote(object.pricelist_id.currency_id.name)\n" +"paypal_url = \"https://www.paypal.com/cgi-" +"bin/webscr?cmd=_xclick&business=%s&item_name=%s%%20Order%%20%s&invoice=%s&amo" +"unt=%s\" \\\n" +" " +"\"¤cy_code=%s&button_subtype=services&no_note=1&bn=OpenERP_Order_PayNow" +"_%s\" % \\\n" +" " +"(paypal_account,comp_name,order_name,order_name,order_amount,cur_name,cur_nam" +"e)\n" +"%>\n" +"It is also possible to directly pay with Paypal:\n" +" ${paypal_url}\n" +"% endif\n" +"\n" +"If you have any question, do not hesitate to contact us.\n" +"\n" +"\n" +"Thank you for choosing ${object.company_id.name}!\n" +"\n" +"\n" +"--\n" +"${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"${object.company_id.name}\n" +"% if object.company_id.street:\n" +"${object.company_id.street or ''}\n" +"% endif\n" +"% if object.company_id.street2:\n" +"${object.company_id.street2}\n" +"% endif\n" +"% if object.company_id.city or object.company_id.zip:\n" +"${object.company_id.zip or ''} ${object.company_id.city or ''}\n" +"% endif\n" +"% if object.company_id.country_id:\n" +"${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) " +"or ''} ${object.company_id.country_id.name or ''}\n" +"% endif\n" +"% if object.company_id.phone:\n" +"Phone: ${object.company_id.phone}\n" +"% endif\n" +"% if object.company_id.website:\n" +"${object.company_id.website or ''}\n" +"% endif\n" +" " +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_validate0 +msgid "Validate" +msgstr "Staðfesta" + +#. module: sale +#: view:sale.order:0 +msgid "Confirm Order" +msgstr "" + +#. module: sale +#: model:process.transition,name:sale.process_transition_saleprocurement0 +msgid "Create Procurement Order" +msgstr "" + +#. module: sale +#: view:sale.order:0 field:sale.order,amount_tax:0 +#: field:sale.order.line,tax_id:0 +msgid "Taxes" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Sales Order ready to be invoiced" +msgstr "" + +#. module: sale +#: help:sale.order,create_date:0 +msgid "Date on which sales order is created." +msgstr "Dags. hvenær sölu pöntun er gerð." + +#. module: sale +#: model:ir.model,name:sale.model_stock_move +msgid "Stock Move" +msgstr "" + +#. module: sale +#: view:sale.make.invoice:0 view:sale.order.line.make.invoice:0 +msgid "Create Invoices" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Sales order created in current month" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Fax :" +msgstr "" + +#. module: sale +#: help:sale.order.line,type:0 +msgid "" +"If 'on order', it triggers a procurement when the sale order is confirmed to " +"create a task, purchase order or manufacturing order linked to this sale " +"order line." +msgstr "" + +#. module: sale +#: field:sale.advance.payment.inv,amount:0 +msgid "Advance Amount" +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,charge_delivery:0 +msgid "Do you charge the delivery?" +msgstr "" + +#. module: sale +#: selection:sale.order,invoice_quantity:0 +msgid "Shipped Quantities" +msgstr "" + +#. module: sale +#: selection:sale.config.picking_policy,order_policy:0 +msgid "Invoice Based on Sales Orders" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:331 +#, python-format +msgid "" +"If you change the pricelist of this order (and eventually the currency), " +"prices of existing order lines will not be updated." +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_stock_picking +msgid "Picking List" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:412 code:addons/sale/sale.py:503 +#: code:addons/sale/sale.py:632 code:addons/sale/sale.py:1016 +#: code:addons/sale/sale.py:1033 +#, python-format +msgid "Error !" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:603 +#, python-format +msgid "Could not cancel sales order !" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Qty(UoM)" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Ordered Year of the sales order" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "July" +msgstr "" + +#. module: sale +#: field:sale.order.line,procurement_id:0 +msgid "Procurement" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 selection:sale.report,state:0 +msgid "Shipping Exception" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1156 +#, python-format +msgid "Picking Information ! : " +msgstr "" + +#. module: sale +#: field:sale.make.invoice,grouped:0 +msgid "Group the invoices" +msgstr "" + +#. module: sale +#: field:sale.order,order_policy:0 +msgid "Invoice Policy" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_config_picking_policy +#: view:sale.config.picking_policy:0 +msgid "Setup your Invoicing Method" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_invoice0 +msgid "To be reviewed by the accountant." +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Reference UoM" +msgstr "" + +#. module: sale +#: view:sale.config.picking_policy:0 +msgid "" +"This tool will help you to install the right module and configure the system " +"according to the method you use to invoice your customers." +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_order_line_make_invoice +msgid "Sale OrderLine Make_invoice" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 selection:sale.report,state:0 +msgid "Invoice Exception" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_saleorder0 +msgid "Drives procurement and invoicing" +msgstr "" + +#. module: sale +#: field:sale.order,invoiced:0 +msgid "Paid" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_report_all +#: model:ir.ui.menu,name:sale.menu_report_product_all view:sale.report:0 +msgid "Sales Analysis" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1151 +#, python-format +msgid "" +"You selected a quantity of %d Units.\n" +"But it's not compatible with the selected packaging.\n" +"Here is a proposition of quantities according to the packaging:\n" +"EAN: %s Quantity: %s Type of ul: %s" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Recreate Packing" +msgstr "" + +#. module: sale +#: view:sale.order:0 field:sale.order.line,property_ids:0 +msgid "Properties" +msgstr "" + +#. module: sale +#: model:process.node,name:sale.process_node_quotation0 +#: selection:sale.order,state:0 selection:sale.report,state:0 +msgid "Quotation" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_invoice0 +msgid "" +"The Salesman creates an invoice manually, if the sales order shipping policy " +"is 'Shipping and Manual in Progress'. The invoice is created automatically " +"if the shipping policy is 'Payment before Delivery'." +msgstr "" + +#. module: sale +#: help:sale.config.picking_policy,order_policy:0 +msgid "" +"You can generate invoices based on sales orders or based on shippings." +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Confirmed sale order lines, not yet delivered" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:473 +#, python-format +msgid "Customer Invoices" +msgstr "Reikningar Viðskiptavinar" + +#. module: sale +#: model:process.process,name:sale.process_process_salesprocess0 +#: view:sale.order:0 view:sale.report:0 +msgid "Sales" +msgstr "" + +#. module: sale +#: report:sale.order:0 field:sale.order.line,price_unit:0 +msgid "Unit Price" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 view:sale.order.line:0 +#: selection:sale.order.line,state:0 selection:sale.report,state:0 +msgid "Done" +msgstr "" + +#. module: sale +#: model:process.node,name:sale.process_node_invoice0 +#: model:process.node,name:sale.process_node_invoiceafterdelivery0 +msgid "Invoice" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1171 +#, python-format +msgid "" +"You have to select a customer in the sales form !\n" +"Please set one customer before choosing a product." +msgstr "" + +#. module: sale +#: field:sale.order,origin:0 +msgid "Source Document" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "To Do" +msgstr "" + +#. module: sale +#: field:sale.order,picking_policy:0 +msgid "Picking Policy" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_deliveryorder0 +msgid "Document of the move to the customer." +msgstr "" + +#. module: sale +#: help:sale.order,amount_untaxed:0 +msgid "The amount without tax." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:604 +#, python-format +msgid "You must first cancel all picking attached to this sales order." +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_advance_payment_inv +msgid "Sales Advance Payment Invoice" +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,month:0 +msgid "Month" +msgstr "" + +#. module: sale +#: model:email.template,subject:sale.email_template_edi_sale +msgid "${object.company_id.name} Order (Ref ${object.name or 'n/a' })" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 field:sale.order.line,product_id:0 +#: view:sale.report:0 field:sale.report,product_id:0 +msgid "Product" +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_cancelassignation0 +msgid "Cancel Assignation" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_config_picking_policy +msgid "sale.config.picking_policy" +msgstr "" + +#. module: sale +#: view:account.invoice.report:0 view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_turnover_by_month +msgid "Monthly Turnover" +msgstr "" + +#. module: sale +#: field:sale.order,invoice_quantity:0 +msgid "Invoice on" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Date Ordered" +msgstr "Dags Pantað" + +#. module: sale +#: field:sale.order.line,product_uos:0 +msgid "Product UoS" +msgstr "" + +#. module: sale +#: selection:sale.report,state:0 +msgid "Manual In Progress" +msgstr "" + +#. module: sale +#: field:sale.order.line,product_uom:0 +msgid "Product UoM" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Logistic" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Order" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1017 +#: code:addons/sale/wizard/sale_make_invoice_advance.py:71 +#, python-format +msgid "There is no income account defined for this product: \"%s\" (id:%d)" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Ignore Exception" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_saleinvoice0 +msgid "" +"Depending on the Invoicing control of the sales order, the invoice can be " +"based on delivered or on ordered quantities. Thus, a sales order can " +"generates an invoice or a delivery order as soon as it is confirmed by the " +"salesman." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1251 +#, python-format +msgid "" +"You plan to sell %.2f %s but you only have %.2f %s available !\n" +"The real stock is %.2f %s. (without reservations)" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "States" +msgstr "" + +#. module: sale +#: view:sale.config.picking_policy:0 +msgid "res_config_contents" +msgstr "" + +#. module: sale +#: field:sale.order,client_order_ref:0 +msgid "Customer Reference" +msgstr "Tilvísun viðskiptavinar" + +#. module: sale +#: field:sale.order,amount_total:0 view:sale.order.line:0 +msgid "Total" +msgstr "" + +#. module: sale +#: report:sale.order:0 view:sale.order.line:0 +msgid "Price" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_deliver0 +msgid "" +"Depending on the configuration of the location Output, the move between the " +"output area and the customer is done through the Delivery Order manually or " +"automatically." +msgstr "" + +#. module: sale +#: selection:sale.order,order_policy:0 +msgid "Pay before delivery" +msgstr "" + +#. module: sale +#: view:board.board:0 model:ir.actions.act_window,name:sale.open_board_sales +msgid "Sales Dashboard" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_sale_order_make_invoice +#: model:ir.actions.act_window,name:sale.action_view_sale_order_line_make_invoice +#: view:sale.order:0 +msgid "Make Invoices" +msgstr "" + +#. module: sale +#: view:sale.order:0 selection:sale.order,state:0 view:sale.order.line:0 +msgid "To Invoice" +msgstr "" + +#. module: sale +#: help:sale.order,date_confirm:0 +msgid "Date on which sales order is confirmed." +msgstr "Dags. hvenær sölu pöntun er staðfest." + +#. module: sale +#: field:sale.order,project_id:0 +msgid "Contract/Analytic Account" +msgstr "" + +#. module: sale +#: field:sale.order,company_id:0 field:sale.order.line,company_id:0 +#: view:sale.report:0 field:sale.report,company_id:0 +#: field:sale.shop,company_id:0 +msgid "Company" +msgstr "" + +#. module: sale +#: field:sale.make.invoice,invoice_date:0 +msgid "Invoice Date" +msgstr "Dags. Reiknings" + +#. module: sale +#: help:sale.advance.payment.inv,amount:0 +msgid "The amount to be invoiced in advance." +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1269 +#, python-format +msgid "" +"Couldn't find a pricelist line matching this product and quantity.\n" +"You have to change either the product, the quantity or the pricelist." +msgstr "" + +#. module: sale +#: help:sale.order,picking_ids:0 +msgid "" +"This is a list of picking that has been generated for this sales order." +msgstr "" + +#. module: sale +#: view:sale.make.invoice:0 view:sale.order.line.make.invoice:0 +msgid "Create invoices" +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Net Total :" +msgstr "" + +#. module: sale +#: selection:sale.order,state:0 selection:sale.order.line,state:0 +#: selection:sale.report,state:0 +msgid "Cancelled" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Sales Order Lines related to a Sales Order of mine" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_shop_form +#: model:ir.ui.menu,name:sale.menu_action_shop_form field:sale.order,shop_id:0 +#: view:sale.report:0 field:sale.report,shop_id:0 +msgid "Shop" +msgstr "" + +#. module: sale +#: field:sale.report,date_confirm:0 +msgid "Date Confirm" +msgstr "Dags. Staðfest" + +#. module: sale +#: code:addons/sale/wizard/sale_line_invoice.py:113 +#, python-format +msgid "Warning" +msgstr "" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_view_sales_by_month +msgid "Sales by Month" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_order +#: model:process.node,name:sale.process_node_order0 +#: model:process.node,name:sale.process_node_saleorder0 +#: model:res.request.link,name:sale.req_link_sale_order view:sale.order:0 +#: field:stock.picking,sale_id:0 +msgid "Sales Order" +msgstr "" + +#. module: sale +#: field:sale.order.line,product_uos_qty:0 +msgid "Quantity (UoS)" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Sale Order Lines that are in 'done' state" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_packing0 +msgid "" +"The Pick List form is created as soon as the sales order is confirmed, in " +"the same time as the procurement order. It represents the assignment of " +"parts to the sales order. There is 1 pick list by sales order line which " +"evolves with the availability of parts." +msgstr "" + +#. module: sale +#: selection:sale.order.line,state:0 +msgid "Confirmed" +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,order_policy:0 +msgid "Main Method Based On" +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_confirm0 +msgid "Confirm" +msgstr "" + +#. module: sale +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "" + +#. module: sale +#: view:board.board:0 +#: model:ir.actions.act_window,name:sale.action_sales_product_total_price +msgid "Sales by Product's Category in last 90 days" +msgstr "" + +#. module: sale +#: view:sale.order:0 field:sale.order.line,invoice_lines:0 +msgid "Invoice Lines" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_line_product_tree +#: view:sale.order:0 view:sale.order.line:0 +msgid "Sales Order Lines" +msgstr "" + +#. module: sale +#: field:sale.order.line,delay:0 +msgid "Delivery Lead Time" +msgstr "" + +#. module: sale +#: view:res.company:0 +msgid "Configuration" +msgstr "" + +#. module: sale +#: code:addons/sale/edi/sale_order.py:146 +#, python-format +msgid "EDI Pricelist (%s)" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Print Order" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Sales order created in current year" +msgstr "" + +#. module: sale +#: code:addons/sale/wizard/sale_line_invoice.py:113 +#, python-format +msgid "" +"Invoice cannot be created for this Sales Order Line due to one of the " +"following reasons:\n" +"1.The state of this sales order line is either \"draft\" or \"cancel\"!\n" +"2.The Sales Order Line is Invoiced!" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Sale order lines done" +msgstr "" + +#. module: sale +#: field:sale.order.line,th_weight:0 +msgid "Weight" +msgstr "" + +#. module: sale +#: view:sale.open.invoice:0 view:sale.order:0 field:sale.order,invoice_ids:0 +msgid "Invoices" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "December" +msgstr "" + +#. module: sale +#: field:sale.config.picking_policy,config_logo:0 +msgid "Image" +msgstr "" + +#. module: sale +#: model:process.transition,note:sale.process_transition_saleprocurement0 +msgid "" +"A procurement order is automatically created as soon as a sales order is " +"confirmed or as the invoice is paid. It drives the purchasing and the " +"production of products regarding to the rules and to the sales order's " +"parameters. " +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Uninvoiced" +msgstr "" + +#. module: sale +#: report:sale.order:0 view:sale.order:0 field:sale.order,user_id:0 +#: view:sale.order.line:0 field:sale.order.line,salesman_id:0 +#: view:sale.report:0 field:sale.report,user_id:0 +msgid "Salesman" +msgstr "Sölumaður" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_tree +msgid "Old Quotations" +msgstr "" + +#. module: sale +#: field:sale.order,amount_untaxed:0 +msgid "Untaxed Amount" +msgstr "" + +#. module: sale +#: code:addons/sale/wizard/sale_make_invoice_advance.py:170 +#: model:ir.actions.act_window,name:sale.action_view_sale_advance_payment_inv +#: view:sale.advance.payment.inv:0 view:sale.order:0 +#, python-format +msgid "Advance Invoice" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:624 +#, python-format +msgid "The sales order '%s' has been cancelled." +msgstr "" + +#. module: sale +#: selection:sale.order.line,state:0 +msgid "Draft" +msgstr "" + +#. module: sale +#: help:sale.order.line,state:0 +msgid "" +"* The 'Draft' state is set when the related sales order in draft state. " +" \n" +"* The 'Confirmed' state is set when the related sales order is confirmed. " +" \n" +"* The 'Exception' state is set when the related sales order is set as " +"exception. \n" +"* The 'Done' state is set when the sales order line has been picked. " +" \n" +"* The 'Cancelled' state is set when a user cancel the sales order related." +msgstr "" + +#. module: sale +#: help:sale.order,amount_tax:0 +msgid "The tax amount." +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Packings" +msgstr "" + +#. module: sale +#: view:sale.order.line:0 +msgid "Sale Order Lines ready to be invoiced" +msgstr "" + +#. module: sale +#: view:sale.report:0 +msgid "Sales order created in last month" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_email_templates +#: model:ir.ui.menu,name:sale.menu_email_templates +msgid "Email Templates" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_form +#: model:ir.ui.menu,name:sale.menu_sale_order view:sale.order:0 +msgid "Sales Orders" +msgstr "" + +#. module: sale +#: model:ir.model,name:sale.model_sale_shop view:sale.shop:0 +msgid "Sales Shop" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "November" +msgstr "" + +#. module: sale +#: field:sale.advance.payment.inv,product_id:0 +msgid "Advance Product" +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Compute" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:618 +#, python-format +msgid "You must first cancel all invoices attached to this sales order." +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "January" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,name:sale.action_order_tree4 +msgid "Sales Order in Progress" +msgstr "" + +#. module: sale +#: help:sale.order,origin:0 +msgid "Reference of the document that generated this sales order request." +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,delay:0 +msgid "Commitment Delay" +msgstr "" + +#. module: sale +#: selection:sale.order,order_policy:0 +msgid "Deliver & invoice on demand" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_saleprocurement0 +msgid "" +"One Procurement order for each sales order line and for each of the " +"components." +msgstr "" + +#. module: sale +#: model:process.transition.action,name:sale.process_transition_action_assign0 +msgid "Assign" +msgstr "" + +#. module: sale +#: field:sale.report,date:0 +msgid "Date Order" +msgstr "" + +#. module: sale +#: model:process.node,note:sale.process_node_order0 +msgid "Confirmed sales order to invoice." +msgstr "" + +#. module: sale +#: view:sale.order:0 +msgid "Sales Order that haven't yet been confirmed" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:322 +#, python-format +msgid "The sales order '%s' has been set in draft state." +msgstr "" + +#. module: sale +#: selection:sale.order.line,type:0 +msgid "from stock" +msgstr "" + +#. module: sale +#: view:sale.open.invoice:0 +msgid "Close" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1261 +#, python-format +msgid "No Pricelist ! : " +msgstr "" + +#. module: sale +#: field:sale.order,shipped:0 +msgid "Delivered" +msgstr "" + +#. module: sale +#: constraint:stock.move:0 +msgid "You must assign a production lot for this product" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,help:sale.action_shop_form +msgid "" +"If you have more than one shop reselling your company products, you can " +"create and manage that from here. Whenever you will record a new quotation " +"or sales order, it has to be linked to a shop. The shop also defines the " +"warehouse from which the products will be delivered for each particular " +"sales." +msgstr "" + +#. module: sale +#: help:sale.order,invoiced:0 +msgid "It indicates that an invoice has been paid." +msgstr "" + +#. module: sale +#: report:sale.order:0 field:sale.order.line,name:0 +msgid "Description" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "May" +msgstr "" + +#. module: sale +#: view:sale.order:0 field:sale.order,partner_id:0 +#: field:sale.order.line,order_partner_id:0 +msgid "Customer" +msgstr "Viðskiptavinur" + +#. module: sale +#: model:product.template,name:sale.advance_product_0_product_template +msgid "Advance" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "February" +msgstr "" + +#. module: sale +#: selection:sale.report,month:0 +msgid "April" +msgstr "" + +#. module: sale +#: view:sale.shop:0 +msgid "Accounting" +msgstr "" + +#. module: sale +#: view:sale.order:0 view:sale.order.line:0 +msgid "Search Sales Order" +msgstr "" + +#. module: sale +#: model:process.node,name:sale.process_node_saleorderprocurement0 +msgid "Sales Order Requisition" +msgstr "" + +#. module: sale +#: code:addons/sale/sale.py:1255 +#, python-format +msgid "Not enough stock ! : " +msgstr "" + +#. module: sale +#: report:sale.order:0 field:sale.order,payment_term:0 +msgid "Payment Term" +msgstr "" + +#. module: sale +#: model:ir.actions.act_window,help:sale.action_order_report_all +msgid "" +"This report performs analysis on your quotations and sales orders. Analysis " +"check your sales revenues and sort it by different group criteria (salesman, " +"partner, product, etc.) Use this report to perform analysis on sales not " +"having invoiced yet. If you want to analyse your turnover, you should use " +"the Invoice Analysis report in the Accounting application." +msgstr "" + +#. module: sale +#: report:sale.order:0 +msgid "Quotation N°" +msgstr "" + +#. module: sale +#: field:sale.order,picked_rate:0 view:sale.report:0 +msgid "Picked" +msgstr "" + +#. module: sale +#: view:sale.report:0 field:sale.report,year:0 +msgid "Year" +msgstr "" + +#. module: sale +#: selection:sale.config.picking_policy,order_policy:0 +msgid "Invoice Based on Deliveries" +msgstr "" diff --git a/addons/sale/i18n/zh_CN.po b/addons/sale/i18n/zh_CN.po index 46dc7724b2a..f9a79fa4e9c 100644 --- a/addons/sale/i18n/zh_CN.po +++ b/addons/sale/i18n/zh_CN.po @@ -7,26 +7,26 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-05-10 17:24+0000\n" -"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n" +"PO-Revision-Date: 2012-06-08 04:32+0000\n" +"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-05-11 04:57+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:39+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: sale #: field:sale.config.picking_policy,timesheet:0 msgid "Based on Timesheet" -msgstr "" +msgstr "基于时间表" #. module: sale #: view:sale.order.line:0 msgid "" "Sale Order Lines that are confirmed, done or in exception state and haven't " "yet been invoiced" -msgstr "" +msgstr "已完成或在异常状态和尚未开发票的销售订单明细将被确认。" #. module: sale #: view:board.board:0 @@ -44,7 +44,7 @@ msgstr "如果库存不够一次全部交货,你是否接受部分交货?" #. module: sale #: view:sale.order:0 msgid "UoS" -msgstr "" +msgstr "销售单位" #. module: sale #: help:sale.order,partner_shipping_id:0 @@ -76,7 +76,7 @@ msgstr "报价单“%s”将转换为销售单。" #. module: sale #: view:sale.order:0 msgid "Print Quotation" -msgstr "" +msgstr "打印报价单" #. module: sale #: code:addons/sale/wizard/sale_make_invoice.py:42 @@ -98,7 +98,7 @@ msgstr "由销售订单明细产生的采购订单。" #: view:sale.report:0 field:sale.report,analytic_account_id:0 #: field:sale.shop,project_id:0 msgid "Analytic Account" -msgstr "辅助核算项目" +msgstr "辅助核算项" #. module: sale #: model:ir.actions.act_window,help:sale.action_order_line_tree2 @@ -106,7 +106,7 @@ msgid "" "Here is a list of each sales order line to be invoiced. You can invoice " "sales orders partially, by lines of sales order. You do not need this list " "if you invoice from the delivery orders or if you invoice sales totally." -msgstr "要开票的销售订单明细列表。你可以按照销售订单明细分别开票。如果按发货单开票,或者按销售订单统一开票的话,你不需要这个列表。" +msgstr "要开票的销售订单明细列表。你可以按照销售订单明细分别开票。如果按送货单开票,或者按销售订单统一开票的话,你不需要这个列表。" #. module: sale #: code:addons/sale/sale.py:295 @@ -115,7 +115,7 @@ msgid "" "In order to delete a confirmed sale order, you must cancel it before ! To " "cancel a sale order, you must first cancel related picking or delivery " "orders." -msgstr "" +msgstr "在删除一个已确认的销售订单时,你必须小心!你必须要先取消其生成的装箱单或送货单。" #. module: sale #: model:process.node,name:sale.process_node_saleprocurement0 @@ -125,17 +125,17 @@ msgstr "采购订单" #. module: sale #: view:sale.report:0 field:sale.report,partner_id:0 msgid "Partner" -msgstr "合作伙伴" +msgstr "业务伙伴" #. module: sale #: selection:sale.order,order_policy:0 msgid "Invoice based on deliveries" -msgstr "" +msgstr "根据送货单生成发票" #. module: sale #: view:sale.order:0 msgid "Order Line" -msgstr "采购订单明细" +msgstr "订单明细" #. module: sale #: model:ir.actions.act_window,help:sale.action_order_form @@ -148,9 +148,10 @@ msgid "" "configuration of the sales order, a draft invoice will be generated so that " "you just have to confirm it when you want to bill your customer." msgstr "" -"销售订单管理能帮助你管理报价单和客户订单。 OpenERP建议你先创建报价单, " -"一旦报价单被确认后,系统会自动把报价单转换成销售订单。OpenERP能处理多种类型产品使一个销售订单可能触发任务,发货单,生产订单,采购等。\r\n" -"根据销售订单的设置,将会产生一张发票草稿以便当你需要向客户开票的时候,你只需要确认一下即可。" +"销售订单管理能帮助你管理报价单和客户订单。\r\n" +"系统建议你先创建报价单, 一旦报价单被确认后,系统会自动把报价单转换成销售订单。\r\n" +"系统能处理多种类型产品使一个销售订单能触发任务,送货单,生产订单,采购等。\r\n" +"根据销售订单的设置,将产生一张发票草稿以便当你需要向客户开票的时候,你只需要确认一下即可。" #. module: sale #: help:sale.order,invoice_quantity:0 @@ -161,8 +162,9 @@ msgid "" "the product is a service, shipped quantities means hours spent on the " "associated tasks." msgstr "" -"销售订单会自动生成发票提议(草稿发票)。订货和交货数量不一定需要一致。你需要选择发票是基于订货数量或交货数量。如果产品是指某种服务,则交货数量是指在指定的" -"任务上工作时数。" +"销售订单会自动生成发票提议(发票草稿)。\r\n" +"销售订单和送货单的数量不一定需要一致。你需要选择发票是基于销售订单数量或送货单的数量。\r\n" +"如果产品是指服务,则交货数量是指在指定的任务上工作时数。" #. module: sale #: field:sale.shop,payment_default_id:0 @@ -172,12 +174,12 @@ msgstr "默认付款条件" #. module: sale #: field:sale.config.picking_policy,deli_orders:0 msgid "Based on Delivery Orders" -msgstr "" +msgstr "基于送货单" #. module: sale #: field:sale.config.picking_policy,time_unit:0 msgid "Main Working Time Unit" -msgstr "" +msgstr "主要工作时间单位" #. module: sale #: view:sale.order:0 view:sale.order.line:0 field:sale.order.line,state:0 @@ -193,7 +195,7 @@ msgstr "折扣(%)" #. module: sale #: view:sale.report:0 field:sale.report,price_total:0 msgid "Total Price" -msgstr "价格合计" +msgstr "总价" #. module: sale #: help:sale.make.invoice,grouped:0 @@ -203,7 +205,7 @@ msgstr "选择此项,发票将会按客户分组。" #. module: sale #: view:sale.order:0 msgid "My Sale Orders" -msgstr "" +msgstr "我的销售订单" #. module: sale #: selection:sale.order,invoice_quantity:0 @@ -223,12 +225,12 @@ msgstr "库存调拨" #. module: sale #: field:sale.order,name:0 field:sale.order.line,order_id:0 msgid "Order Reference" -msgstr "单号" +msgstr "订单关联" #. module: sale #: view:sale.order:0 msgid "Other Information" -msgstr "其他信息" +msgstr "其它信息" #. module: sale #: view:sale.order:0 @@ -240,28 +242,28 @@ msgstr "日期" msgid "" "The invoice is created automatically if the shipping policy is 'Invoice from " "pick' or 'Invoice on order after delivery'." -msgstr "如果运送方式是‘提货后开票’或者‘发货后开票’, 系统将会自己创建发票。" +msgstr "如果运送方式是“发票来自装箱单” 或 “送货后开票”, 系统将会自己创建发票。" #. module: sale #: field:sale.config.picking_policy,task_work:0 msgid "Based on Tasks' Work" -msgstr "" +msgstr "基于指派的工作" #. module: sale #: model:ir.actions.act_window,name:sale.act_res_partner_2_sale_order msgid "Quotations and Sales" -msgstr "" +msgstr "报价单或销售订单" #. module: sale #: model:ir.model,name:sale.model_sale_make_invoice msgid "Sales Make Invoice" -msgstr "销售生成发票" +msgstr "销售订单生成发票" #. module: sale #: code:addons/sale/sale.py:330 #, python-format msgid "Pricelist Warning!" -msgstr "" +msgstr "价格表警告!" #. module: sale #: field:sale.order.line,discount:0 @@ -284,7 +286,7 @@ msgstr "销售经理仪表盘" #. module: sale #: field:sale.order.line,product_packaging:0 msgid "Packaging" -msgstr "包装" +msgstr "装箱" #. module: sale #: model:process.transition,name:sale.process_transition_saleinvoice0 @@ -310,6 +312,11 @@ msgid "" " - The 'Invoice based on deliveries' choice is used to create an invoice " "during the picking process." msgstr "" +"这开票规则是用于同步发票和送货操作。\n" +" - “送货前支付”先生成发票,再产生装箱单,然后按发票付款。\n" +" - “送货&等待发票” 将直接生成装箱单和等待用户手动点击“发票”按钮生成基于销售订单或其明细的发票草稿。\n" +" - “送货后生成发票”根据销售订单生成的所有装箱单都完成后才生成发票草稿。\n" +" - “根据送货单开发票”在处理装箱期间生成发票" #. module: sale #: code:addons/sale/sale.py:1171 @@ -327,7 +334,7 @@ msgstr "销售异常" #: code:addons/sale/wizard/sale_make_invoice_advance.py:70 #, python-format msgid "Configuration Error !" -msgstr "" +msgstr "设置错误!" #. module: sale #: view:sale.order:0 @@ -350,7 +357,7 @@ msgstr "8月" #. module: sale #: constraint:stock.move:0 msgid "You try to assign a lot which is not from the same product" -msgstr "你尝试分配一个来自其它产品的批次" +msgstr "您尝试为不同类的产品分配一个批次" #. module: sale #: code:addons/sale/sale.py:655 @@ -372,7 +379,7 @@ msgstr "不能取消此销售订单 !" #. module: sale #: model:ir.model,name:sale.model_sale_report msgid "Sales Orders Statistics" -msgstr "销售订单统" +msgstr "销售订单统计" #. module: sale #: help:sale.order,project_id:0 @@ -387,7 +394,7 @@ msgstr "10月" #. module: sale #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "编号必须在公司内唯一!" #. module: sale #: view:board.board:0 view:sale.order:0 view:sale.report:0 @@ -434,26 +441,26 @@ msgstr "包装数" #. module: sale #: selection:sale.order,state:0 selection:sale.report,state:0 msgid "In Progress" -msgstr "进展" +msgstr "进行中" #. module: sale #: model:process.transition,note:sale.process_transition_confirmquotation0 msgid "" "The salesman confirms the quotation. The state of the sales order becomes " "'In progress' or 'Manual in progress'." -msgstr "业务员确认报价。销售订单的状态变成‘进度’或‘手工进度’。" +msgstr "业务员确认报价单。销售订单的状态变成‘进行中’或‘手工进度’。" #. module: sale #: code:addons/sale/sale.py:1074 #, python-format msgid "You cannot cancel a sale order line that has already been invoiced!" -msgstr "" +msgstr "你不能取消已开发票的销售订单明细!" #. module: sale #: code:addons/sale/sale.py:1079 #, python-format msgid "You must first cancel stock moves attached to this sales order line." -msgstr "你必须先取消所有附加在此销售订单明细上的库存调拨。" +msgstr "你必须先取消所有属于此销售订单明细上的库存调拨。" #. module: sale #: code:addons/sale/sale.py:1147 @@ -490,7 +497,7 @@ msgstr "备注" #. module: sale #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "公司名必须唯一!" #. module: sale #: help:sale.order,partner_invoice_id:0 @@ -500,29 +507,29 @@ msgstr "当前销售订单的发票地址。" #. module: sale #: view:sale.report:0 msgid "Month-1" -msgstr "" +msgstr "上月" #. module: sale #: view:sale.report:0 msgid "Ordered month of the sales order" -msgstr "" +msgstr "下单超一个月的销售订单" #. module: sale #: code:addons/sale/sale.py:504 #, python-format msgid "" "You cannot group sales having different currencies for the same partner." -msgstr "" +msgstr "你不能对有不同货币结算的同一个业务伙伴的销售订单进行分组。" #. module: sale #: selection:sale.order,picking_policy:0 msgid "Deliver each product when available" -msgstr "" +msgstr "可以分批交货" #. module: sale #: field:sale.order,invoiced_rate:0 field:sale.order.line,invoiced:0 msgid "Invoiced" -msgstr "已开发票" +msgstr "已开票" #. module: sale #: model:process.node,name:sale.process_node_deliveryorder0 @@ -552,12 +559,12 @@ msgstr "3月" #. module: sale #: constraint:stock.move:0 msgid "You can not move products from or to a location of the type view." -msgstr "" +msgstr "您不能将产品移动到类型为视图的库位上。" #. module: sale #: field:sale.config.picking_policy,sale_orders:0 msgid "Based on Sales Orders" -msgstr "" +msgstr "根据销售订单" #. module: sale #: help:sale.order,amount_total:0 @@ -577,7 +584,7 @@ msgstr "发票地址:" #. module: sale #: field:sale.order.line,sequence:0 msgid "Line Sequence" -msgstr "" +msgstr "明细序列号" #. module: sale #: model:process.transition,note:sale.process_transition_saleorderprocurement0 @@ -601,7 +608,7 @@ msgstr "发票地址" #. module: sale #: view:sale.order.line:0 msgid "Search Uninvoiced Lines" -msgstr "查询未开票明细" +msgstr "查找未开票明细" #. module: sale #: model:ir.actions.report.xml,name:sale.report_sale_order @@ -616,7 +623,7 @@ msgstr "明细#" #. module: sale #: model:ir.model,name:sale.model_sale_open_invoice msgid "Sales Open Invoice" -msgstr "未结发票销售订单" +msgstr "未开票销售订单" #. module: sale #: model:ir.model,name:sale.model_sale_order_line @@ -632,7 +639,7 @@ msgstr "仓库" #. module: sale #: report:sale.order:0 msgid "Order N°" -msgstr "订单号" +msgstr "单号" #. module: sale #: field:sale.order,order_line:0 @@ -648,7 +655,7 @@ msgstr "未完税金额" #: model:ir.actions.act_window,name:sale.action_order_line_tree2 #: model:ir.ui.menu,name:sale.menu_invoicing_sales_order_lines msgid "Lines to Invoice" -msgstr "需开票的销售订单明细" +msgstr "待开票的销售订单明细" #. module: sale #: field:sale.order.line,product_uom_qty:0 @@ -663,7 +670,7 @@ msgstr "创建日期" #. module: sale #: model:ir.ui.menu,name:sale.menu_sales_configuration_misc msgid "Miscellaneous" -msgstr "" +msgstr "杂项" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_line_tree3 @@ -690,7 +697,7 @@ msgstr "无效动作!" #. module: sale #: view:sale.order:0 msgid "Extra Info" -msgstr "额外信息" +msgstr "附加信息" #. module: sale #: field:sale.order,pricelist_id:0 field:sale.report,pricelist_id:0 @@ -707,7 +714,7 @@ msgstr "数量#" #: code:addons/sale/sale.py:1327 #, python-format msgid "Hour" -msgstr "" +msgstr "小时" #. module: sale #: view:sale.order:0 @@ -718,7 +725,7 @@ msgstr "订单日期" #: view:sale.order.line:0 view:sale.report:0 field:sale.report,shipped:0 #: field:sale.report,shipped_qty_1:0 msgid "Shipped" -msgstr "已运送" +msgstr "已送货" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_tree5 @@ -728,7 +735,7 @@ msgstr "所有报价单" #. module: sale #: view:sale.config.picking_policy:0 msgid "Options" -msgstr "" +msgstr "设置" #. module: sale #: selection:sale.report,month:0 @@ -739,7 +746,7 @@ msgstr "9月" #: code:addons/sale/sale.py:632 #, python-format msgid "You cannot confirm a sale order which has no line." -msgstr "" +msgstr "你不能确认没有明细的销售订单。" #. module: sale #: code:addons/sale/sale.py:1259 @@ -748,6 +755,8 @@ msgid "" "You have to select a pricelist or a customer in the sales form !\n" "Please set one before choosing a product." msgstr "" +"你必须在销售界面选一个客户或价格表!\n" +"请在选择产品前设置。" #. module: sale #: view:sale.report:0 field:sale.report,categ_id:0 @@ -793,7 +802,7 @@ msgstr "安全天数" #. module: sale #: model:process.transition,name:sale.process_transition_saleorderprocurement0 msgid "Procurement of sold material" -msgstr "已出售物料采购" +msgstr "采购已下销售单的物料" #. module: sale #: view:sale.order:0 @@ -803,24 +812,24 @@ msgstr "生成最终发票" #. module: sale #: field:sale.order,partner_shipping_id:0 msgid "Shipping Address" -msgstr "运送地址" +msgstr "送货地址" #. module: sale #: help:sale.order,shipped:0 msgid "" "It indicates that the sales order has been delivered. This field is updated " "only after the scheduler(s) have been launched." -msgstr "它表示销售订单已经发货了。只有运行日程表(scheduler)后这个字段才会被修改。" +msgstr "它表示销售订单已经送货。只有运行调度程序(scheduler)后这个字段才会被修改。" #. module: sale #: field:sale.order,date_order:0 msgid "Date" -msgstr "" +msgstr "日期" #. module: sale #: view:sale.report:0 msgid "Extended Filters..." -msgstr "扩展过滤器..." +msgstr "增加筛选条件" #. module: sale #: selection:sale.order.line,state:0 @@ -842,12 +851,15 @@ msgid "" "The 'Waiting Schedule' state is set when the invoice is confirmed but " "waiting for the scheduler to run on the order date." msgstr "" +"给出报价单或销售订单的状态。\n" +"在发票确认(发票异常)或在装箱单处理中(运输异常),“异常”状态会自动设置一个取消操作。\n" +"在“等待调度”状态设置发票等待在调度的日期里确认。" #. module: sale #: code:addons/sale/sale.py:1272 #, python-format msgid "No valid pricelist line found ! :" -msgstr "" +msgstr "明细没有找到有效的价格表!" #. module: sale #: view:sale.order:0 @@ -857,7 +869,7 @@ msgstr "日志" #. module: sale #: selection:sale.order,order_policy:0 msgid "Invoice on order after delivery" -msgstr "" +msgstr "在订单送货后生成发票" #. module: sale #: help:sale.order,invoice_ids:0 @@ -870,13 +882,13 @@ msgstr "这是为此销售订单生成的发票列表。同一销售订单可能 #. module: sale #: report:sale.order:0 msgid "Your Reference" -msgstr "你参考" +msgstr "您的关联单号" #. module: sale #: help:sale.order,partner_order_id:0 msgid "" "The name and address of the contact who requested the order or quotation." -msgstr "订单或报价请求人的姓名和地址。" +msgstr "订单或报价单联系人姓名和地址。" #. module: sale #: help:res.company,security_lead:0 @@ -892,12 +904,12 @@ msgstr "数量" #. module: sale #: view:sale.order:0 msgid "References" -msgstr "引用" +msgstr "关联" #. module: sale #: view:sale.order.line:0 msgid "My Sales Order Lines" -msgstr "" +msgstr "我的销售订单明细" #. module: sale #: model:process.transition.action,name:sale.process_transition_action_cancel0 @@ -911,7 +923,7 @@ msgstr "取消" #. module: sale #: sql_constraint:sale.order:0 msgid "Order Reference must be unique per Company!" -msgstr "" +msgstr "订单号必须在一个公司范围内唯一" #. module: sale #: model:process.transition,name:sale.process_transition_invoice0 @@ -919,7 +931,7 @@ msgstr "" #: model:process.transition.action,name:sale.process_transition_action_createinvoice0 #: view:sale.advance.payment.inv:0 view:sale.order.line:0 msgid "Create Invoice" -msgstr "创建发票" +msgstr "生成发票" #. module: sale #: view:sale.order:0 @@ -929,7 +941,7 @@ msgstr "不含税总金额" #. module: sale #: view:sale.order.line:0 msgid "Order reference" -msgstr "" +msgstr "订单关联单号" #. module: sale #: view:sale.open.invoice:0 @@ -944,7 +956,7 @@ msgstr "业务伙伴的销售情况" #. module: sale #: field:sale.order,partner_order_id:0 msgid "Ordering Contact" -msgstr "订购联系" +msgstr "联系人的订购" #. module: sale #: model:ir.actions.act_window,name:sale.action_view_sale_open_invoice @@ -955,7 +967,7 @@ msgstr "未结发票" #. module: sale #: model:ir.actions.server,name:sale.ir_actions_server_edi_sale msgid "Auto-email confirmed sale orders" -msgstr "" +msgstr "销售订单确认的自动电子邮件" #. module: sale #: code:addons/sale/sale.py:413 @@ -976,17 +988,17 @@ msgstr "来自订单" #. module: sale #: model:process.node,note:sale.process_node_invoiceafterdelivery0 msgid "Based on the shipped or on the ordered quantities." -msgstr "基于已运送或被订购的数据。" +msgstr "已运送或被已订购的数量。" #. module: sale #: selection:sale.order,picking_policy:0 msgid "Deliver all products at once" -msgstr "" +msgstr "一次性交货" #. module: sale #: field:sale.order,picking_ids:0 msgid "Related Picking" -msgstr "装箱单" +msgstr "关联的装箱单" #. module: sale #: field:sale.config.picking_policy,name:0 @@ -996,7 +1008,7 @@ msgstr "名称" #. module: sale #: report:sale.order:0 msgid "Shipping address :" -msgstr "运送地址:" +msgstr "运货地址:" #. module: sale #: view:board.board:0 @@ -1012,18 +1024,18 @@ msgstr "销售订单草稿状态" #. module: sale #: model:process.transition,name:sale.process_transition_deliver0 msgid "Create Delivery Order" -msgstr "创建发货单" +msgstr "生成送货单" #. module: sale #: code:addons/sale/sale.py:1303 #, python-format msgid "Cannot delete a sales order line which is in state '%s'!" -msgstr "" +msgstr "不能删除'%s'状态的销售订单明细!" #. module: sale #: view:sale.order:0 msgid "Qty(UoS)" -msgstr "" +msgstr "数量(销售单位)" #. module: sale #: view:sale.order:0 @@ -1033,12 +1045,12 @@ msgstr "含税总金额" #. module: sale #: model:process.transition,name:sale.process_transition_packing0 msgid "Create Pick List" -msgstr "创建分拣单" +msgstr "生成装箱单" #. module: sale #: view:sale.report:0 msgid "Ordered date of the sales order" -msgstr "" +msgstr "销售订单的订购日期" #. module: sale #: view:sale.report:0 @@ -1059,18 +1071,18 @@ msgstr "错误" #. module: sale #: view:sale.order:0 view:sale.order.line:0 view:sale.report:0 msgid "Group By..." -msgstr "分组于..." +msgstr "分组..." #. module: sale #: view:sale.order:0 msgid "Recreate Invoice" -msgstr "重新创建发票" +msgstr "重新生成发票" #. module: sale #: model:ir.actions.act_window,name:sale.outgoing_picking_list_to_invoice #: model:ir.ui.menu,name:sale.menu_action_picking_list_to_invoice msgid "Deliveries to Invoice" -msgstr "开票的发货单" +msgstr "送货单待开票" #. module: sale #: selection:sale.order,state:0 selection:sale.report,state:0 @@ -1080,12 +1092,12 @@ msgstr "等待调度" #. module: sale #: field:sale.order.line,type:0 msgid "Procurement Method" -msgstr "采购方式" +msgstr "引起需求的方式" #. module: sale #: model:process.node,name:sale.process_node_packinglist0 msgid "Pick List" -msgstr "分拣单" +msgstr "装箱单" #. module: sale #: view:sale.order:0 @@ -1179,7 +1191,7 @@ msgstr "" #. module: sale #: model:process.transition.action,name:sale.process_transition_action_validate0 msgid "Validate" -msgstr "确认" +msgstr "审核" #. module: sale #: view:sale.order:0 @@ -1195,12 +1207,12 @@ msgstr "创建采购订单" #: view:sale.order:0 field:sale.order,amount_tax:0 #: field:sale.order.line,tax_id:0 msgid "Taxes" -msgstr "税款" +msgstr "税" #. module: sale #: view:sale.order:0 msgid "Sales Order ready to be invoiced" -msgstr "" +msgstr "待开票的销售订单" #. module: sale #: help:sale.order,create_date:0 @@ -1215,7 +1227,7 @@ msgstr "库存调拨" #. module: sale #: view:sale.make.invoice:0 view:sale.order.line.make.invoice:0 msgid "Create Invoices" -msgstr "生成发票" +msgstr "创建发票" #. module: sale #: view:sale.report:0 @@ -1233,7 +1245,7 @@ msgid "" "If 'on order', it triggers a procurement when the sale order is confirmed to " "create a task, purchase order or manufacturing order linked to this sale " "order line." -msgstr "" +msgstr "如果是“来自订单”,当销售订单确认后它会触发一个需求,销售订单的明细会关联出采购订单或生产单。" #. module: sale #: field:sale.advance.payment.inv,amount:0 @@ -1243,12 +1255,12 @@ msgstr "预付款总额" #. module: sale #: field:sale.config.picking_policy,charge_delivery:0 msgid "Do you charge the delivery?" -msgstr "" +msgstr "你负责送货?" #. module: sale #: selection:sale.order,invoice_quantity:0 msgid "Shipped Quantities" -msgstr "已运数量" +msgstr "已送货数量" #. module: sale #: selection:sale.config.picking_policy,order_policy:0 @@ -1261,7 +1273,7 @@ msgstr "基于销售订单开票" msgid "" "If you change the pricelist of this order (and eventually the currency), " "prices of existing order lines will not be updated." -msgstr "" +msgstr "如果你修改这订单的价格表(货币),现有订单明细的价格不会修改。" #. module: sale #: model:ir.model,name:sale.model_stock_picking @@ -1285,12 +1297,12 @@ msgstr "不能取消销售订单 !" #. module: sale #: view:sale.order:0 msgid "Qty(UoM)" -msgstr "" +msgstr "数量(计量单位)" #. module: sale #: view:sale.report:0 msgid "Ordered Year of the sales order" -msgstr "" +msgstr "今年的销售订单" #. module: sale #: selection:sale.report,month:0 @@ -1300,18 +1312,18 @@ msgstr "7月" #. module: sale #: field:sale.order.line,procurement_id:0 msgid "Procurement" -msgstr "产品需求" +msgstr "需求" #. module: sale #: selection:sale.order,state:0 selection:sale.report,state:0 msgid "Shipping Exception" -msgstr "运送异常" +msgstr "送货异常" #. module: sale #: code:addons/sale/sale.py:1156 #, python-format msgid "Picking Information ! : " -msgstr "" +msgstr "装箱信息!: " #. module: sale #: field:sale.make.invoice,grouped:0 @@ -1321,30 +1333,30 @@ msgstr "发票组" #. module: sale #: field:sale.order,order_policy:0 msgid "Invoice Policy" -msgstr "" +msgstr "开票规则" #. module: sale #: model:ir.actions.act_window,name:sale.action_config_picking_policy #: view:sale.config.picking_policy:0 msgid "Setup your Invoicing Method" -msgstr "" +msgstr "设置你开票的方法" #. module: sale #: model:process.node,note:sale.process_node_invoice0 msgid "To be reviewed by the accountant." -msgstr "等待会计审核。" +msgstr "等待会计复核。" #. module: sale #: view:sale.report:0 msgid "Reference UoM" -msgstr "参考计量单位(UoM)" +msgstr "相关计量单位" #. module: sale #: view:sale.config.picking_policy:0 msgid "" "This tool will help you to install the right module and configure the system " "according to the method you use to invoice your customers." -msgstr "" +msgstr "该工具帮助你安装适合的模块并设置系统你对客户开发票的方法。" #. module: sale #: model:ir.model,name:sale.model_sale_order_line_make_invoice @@ -1359,7 +1371,7 @@ msgstr "发票异常" #. module: sale #: model:process.node,note:sale.process_node_saleorder0 msgid "Drives procurement and invoicing" -msgstr "促使采购和开票" +msgstr "驱动需求计算和开发票" #. module: sale #: field:sale.order,invoiced:0 @@ -1381,6 +1393,8 @@ msgid "" "Here is a proposition of quantities according to the packaging:\n" "EAN: %s Quantity: %s Type of ul: %s" msgstr "" +"你选择了 %d 单位的数量。但它不兼容选定的包装。\n" +"这是对应该包装的建议数量:EAN: %s , 数量: %s, 单位类型: %s" #. module: sale #: view:sale.order:0 @@ -1404,24 +1418,24 @@ msgid "" "The Salesman creates an invoice manually, if the sales order shipping policy " "is 'Shipping and Manual in Progress'. The invoice is created automatically " "if the shipping policy is 'Payment before Delivery'." -msgstr "如果销售定单的运货方式是‘运送并且手工开票’, 业务员需要手工生成发票。如果运送方式是‘先付款后开票’,发票将自动生成。" +msgstr "如果销售订单的送货方式是‘送货并手工开票’, 业务员需要手工生成发票。如果送货方式是‘先付款后送货’,发票将自动生成。" #. module: sale #: help:sale.config.picking_policy,order_policy:0 msgid "" "You can generate invoices based on sales orders or based on shippings." -msgstr "你可以根据销售订单或运输单生成发票。" +msgstr "你可以根据销售订单或送货单生成发票。" #. module: sale #: view:sale.order.line:0 msgid "Confirmed sale order lines, not yet delivered" -msgstr "" +msgstr "确认销售订单明细,尚未送货" #. module: sale #: code:addons/sale/sale.py:473 #, python-format msgid "Customer Invoices" -msgstr "" +msgstr "客户发票" #. module: sale #: model:process.process,name:sale.process_process_salesprocess0 @@ -1438,7 +1452,7 @@ msgstr "单价" #: selection:sale.order,state:0 view:sale.order.line:0 #: selection:sale.order.line,state:0 selection:sale.report,state:0 msgid "Done" -msgstr "完成" +msgstr "已完成" #. module: sale #: model:process.node,name:sale.process_node_invoice0 @@ -1454,17 +1468,17 @@ msgid "" "Please set one customer before choosing a product." msgstr "" "你必须在销售表单中选择一个客户 !\n" -"请在选择产品之前设置1个客户。" +"请在选择产品之前设置客户。" #. module: sale #: field:sale.order,origin:0 msgid "Source Document" -msgstr "源文档" +msgstr "源单据" #. module: sale #: view:sale.order.line:0 msgid "To Do" -msgstr "待处理" +msgstr "待办事项" #. module: sale #: field:sale.order,picking_policy:0 @@ -1490,7 +1504,7 @@ msgstr "你必须先取消销售订单上的所有装箱单。" #. module: sale #: model:ir.model,name:sale.model_sale_advance_payment_inv msgid "Sales Advance Payment Invoice" -msgstr "销售预付发票" +msgstr "销售预付款发票" #. module: sale #: view:sale.report:0 field:sale.report,month:0 @@ -1511,7 +1525,7 @@ msgstr "产品" #. module: sale #: model:process.transition.action,name:sale.process_transition_action_cancelassignation0 msgid "Cancel Assignation" -msgstr "取消指定" +msgstr "取消分配" #. module: sale #: model:ir.model,name:sale.model_sale_config_picking_policy @@ -1522,7 +1536,7 @@ msgstr "sale.config.picking_policy" #: view:account.invoice.report:0 view:board.board:0 #: model:ir.actions.act_window,name:sale.action_turnover_by_month msgid "Monthly Turnover" -msgstr "" +msgstr "月营业额" #. module: sale #: field:sale.order,invoice_quantity:0 @@ -1532,7 +1546,7 @@ msgstr "开票依据" #. module: sale #: report:sale.order:0 msgid "Date Ordered" -msgstr "订购日期" +msgstr "下单日期" #. module: sale #: field:sale.order.line,product_uos:0 @@ -1542,7 +1556,7 @@ msgstr "产品销售单位" #. module: sale #: selection:sale.report,state:0 msgid "Manual In Progress" -msgstr "手动进展" +msgstr "手动处理" #. module: sale #: field:sale.order.line,product_uom:0 @@ -1579,8 +1593,8 @@ msgid "" "generates an invoice or a delivery order as soon as it is confirmed by the " "salesman." msgstr "" -"根据销售订单的开票方式, 根据交货或者订购数据生成发票。\r\n" -"因此,一旦销售订单被业务员确认,就会为它生产发票或者发货单。" +"根据销售订单的开票方式, 基于送货单或者订购数量生成发票。\r\n" +"因此,一旦销售订单被业务员确认,就会为它生成发票或者送货单。" #. module: sale #: code:addons/sale/sale.py:1251 @@ -1605,7 +1619,7 @@ msgstr "res_config_contents" #. module: sale #: field:sale.order,client_order_ref:0 msgid "Customer Reference" -msgstr "客户订单号" +msgstr "客户关联单号" #. module: sale #: field:sale.order,amount_total:0 view:sale.order.line:0 @@ -1623,17 +1637,17 @@ msgid "" "Depending on the configuration of the location Output, the move between the " "output area and the customer is done through the Delivery Order manually or " "automatically." -msgstr "根据出库库位的设置,出库和客户之间的库存转移是通过发货单手工或自动完成的。" +msgstr "根据出库库位的设置,出库和客户之间的库存调拨是通过送货单手工或自动完成的。" #. module: sale #: selection:sale.order,order_policy:0 msgid "Pay before delivery" -msgstr "" +msgstr "送货前付款" #. module: sale #: view:board.board:0 model:ir.actions.act_window,name:sale.open_board_sales msgid "Sales Dashboard" -msgstr "" +msgstr "销售控制台" #. module: sale #: model:ir.actions.act_window,name:sale.action_sale_order_make_invoice @@ -1645,7 +1659,7 @@ msgstr "生成发票" #. module: sale #: view:sale.order:0 selection:sale.order,state:0 view:sale.order.line:0 msgid "To Invoice" -msgstr "开票" +msgstr "待开票" #. module: sale #: help:sale.order,date_confirm:0 @@ -1655,7 +1669,7 @@ msgstr "销售订单的日期已确认。" #. module: sale #: field:sale.order,project_id:0 msgid "Contract/Analytic Account" -msgstr "" +msgstr "合并、分析科目" #. module: sale #: field:sale.order,company_id:0 field:sale.order.line,company_id:0 @@ -1681,6 +1695,8 @@ msgid "" "Couldn't find a pricelist line matching this product and quantity.\n" "You have to change either the product, the quantity or the pricelist." msgstr "" +"找不到此产品和数量的价格表。\n" +"你必须修改产品,或价格表的数量。" #. module: sale #: help:sale.order,picking_ids:0 @@ -1707,7 +1723,7 @@ msgstr "已取消" #. module: sale #: view:sale.order.line:0 msgid "Sales Order Lines related to a Sales Order of mine" -msgstr "" +msgstr "销售订单明细与我的销售订单" #. module: sale #: model:ir.actions.act_window,name:sale.action_shop_form @@ -1731,7 +1747,7 @@ msgstr "警告" #: view:board.board:0 #: model:ir.actions.act_window,name:sale.action_view_sales_by_month msgid "Sales by Month" -msgstr "月销售情况" +msgstr "月度销售订单" #. module: sale #: model:ir.model,name:sale.model_sale_order @@ -1750,7 +1766,7 @@ msgstr "数量(销售单位)" #. module: sale #: view:sale.order.line:0 msgid "Sale Order Lines that are in 'done' state" -msgstr "" +msgstr "“已完成”状态的销售订单明细" #. module: sale #: model:process.transition,note:sale.process_transition_packing0 @@ -1759,7 +1775,7 @@ msgid "" "the same time as the procurement order. It represents the assignment of " "parts to the sales order. There is 1 pick list by sales order line which " "evolves with the availability of parts." -msgstr "一旦销售订单被确认,装箱单就会和采购订单一起被生成。它代表部分销售订单分配。每行有效的销售订单明细会对应一张装箱单。" +msgstr "一旦销售订单被确认,装箱单就会和需求单一起生成。表示销售订单所产生的需求。有效的销售订单明细会相应产生一张装箱单。" #. module: sale #: selection:sale.order.line,state:0 @@ -1769,7 +1785,7 @@ msgstr "已确认" #. module: sale #: field:sale.config.picking_policy,order_policy:0 msgid "Main Method Based On" -msgstr "" +msgstr "主要方法" #. module: sale #: model:process.transition.action,name:sale.process_transition_action_confirm0 @@ -1785,12 +1801,12 @@ msgstr "错误!您不能创建递归公司." #: view:board.board:0 #: model:ir.actions.act_window,name:sale.action_sales_product_total_price msgid "Sales by Product's Category in last 90 days" -msgstr "最近90天各产品类别的销售情况" +msgstr "最近90天各产品类别的销售订单" #. module: sale #: view:sale.order:0 field:sale.order.line,invoice_lines:0 msgid "Invoice Lines" -msgstr "发票行" +msgstr "发票明细" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_line_product_tree @@ -1801,7 +1817,7 @@ msgstr "销售订单明细" #. module: sale #: field:sale.order.line,delay:0 msgid "Delivery Lead Time" -msgstr "发货提前期" +msgstr "送货提前期" #. module: sale #: view:res.company:0 @@ -1812,17 +1828,17 @@ msgstr "设置" #: code:addons/sale/edi/sale_order.py:146 #, python-format msgid "EDI Pricelist (%s)" -msgstr "" +msgstr "EDI 价格表 (%s)" #. module: sale #: view:sale.order:0 msgid "Print Order" -msgstr "" +msgstr "打印订单" #. module: sale #: view:sale.report:0 msgid "Sales order created in current year" -msgstr "" +msgstr "本年创建的销售订单" #. module: sale #: code:addons/sale/wizard/sale_line_invoice.py:113 @@ -1840,7 +1856,7 @@ msgstr "" #. module: sale #: view:sale.order.line:0 msgid "Sale order lines done" -msgstr "" +msgstr "销售订单明细已完成" #. module: sale #: field:sale.order.line,th_weight:0 diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 1af91989499..b63dfa6dff0 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -198,45 +198,46 @@ class sale_order(osv.osv): _columns = { 'name': fields.char('Order Reference', size=64, required=True, - readonly=True, states={'draft': [('readonly', False)]}, select=True), - 'shop_id': fields.many2one('sale.shop', 'Shop', required=True, readonly=True, states={'draft': [('readonly', False)]}), + readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, select=True), + 'shop_id': fields.many2one('sale.shop', 'Shop', required=True, readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}), 'origin': fields.char('Source Document', size=64, help="Reference of the document that generated this sales order request."), 'client_order_ref': fields.char('Customer Reference', size=64), 'state': fields.selection([ - ('draft', 'Quotation'), + ('draft', 'Draft Quotation'), + ('sent', 'Quotation Sent'), ('cancel', 'Cancelled'), ('waiting_date', 'Waiting Schedule'), - ('manual', 'To Invoice'), - ('progress', 'In Progress'), + ('progress', 'Sale Order'), + ('manual', 'Sale to Invoice'), ('shipping_except', 'Shipping Exception'), ('invoice_except', 'Invoice Exception'), ('done', 'Done'), ], 'Order State', readonly=True, help="Gives the state of the quotation or sales order. \nThe exception state is automatically set when a cancel operation occurs in the invoice validation (Invoice Exception) or in the picking list process (Shipping Exception). \nThe 'Waiting Schedule' state is set when the invoice is confirmed but waiting for the scheduler to run on the order date.", select=True), - 'date_order': fields.date('Date', required=True, readonly=True, select=True, states={'draft': [('readonly', False)]}), + 'date_order': fields.date('Date', required=True, readonly=True, select=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}), 'create_date': fields.datetime('Creation Date', readonly=True, select=True, help="Date on which sales order is created."), 'date_confirm': fields.date('Confirmation Date', readonly=True, select=True, help="Date on which sales order is confirmed."), - 'user_id': fields.many2one('res.users', 'Salesperson', states={'draft': [('readonly', False)]}, select=True), - 'partner_id': fields.many2one('res.partner', 'Customer', readonly=True, states={'draft': [('readonly', False)]}, required=True, change_default=True, select=True), - 'partner_invoice_id': fields.many2one('res.partner', 'Invoice Address', readonly=True, required=True, states={'draft': [('readonly', False)]}, help="Invoice address for current sales order."), - 'partner_shipping_id': fields.many2one('res.partner', 'Shipping Address', readonly=True, required=True, states={'draft': [('readonly', False)]}, help="Shipping address for current sales order."), + 'user_id': fields.many2one('res.users', 'Salesperson', states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, select=True), + 'partner_id': fields.many2one('res.partner', 'Customer', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, required=True, change_default=True, select=True), + 'partner_invoice_id': fields.many2one('res.partner', 'Invoice Address', readonly=True, required=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="Invoice address for current sales order."), + 'partner_shipping_id': fields.many2one('res.partner', 'Shipping Address', readonly=True, required=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="Shipping address for current sales order."), 'incoterm': fields.many2one('stock.incoterms', 'Incoterm', help="Incoterm which stands for 'International Commercial terms' implies its a series of sales terms which are used in the commercial transaction."), 'picking_policy': fields.selection([('direct', 'Deliver each product when available'), ('one', 'Deliver all products at once')], - 'Shipping Policy', required=True, readonly=True, states={'draft': [('readonly', False)]}, + 'Shipping Policy', required=True, readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="""If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"""), 'order_policy': fields.selection([ ('manual', 'On Demand'), ('picking', 'On Delivery Order'), ('prepaid', 'Before Delivery'), - ], 'Create Invoice', required=True, readonly=True, states={'draft': [('readonly', False)]}, + ], 'Create Invoice', required=True, readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="""This field controls how invoice and delivery operations are synchronized. - With 'On Demand', the invoice is created manually when needed. - With 'On Delivery Order', a draft invoice is generated after all pickings have been processed. - With 'Before Delivery', a draft invoice is created, and it must be paid before delivery."""), - 'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="Pricelist for current sales order."), - 'project_id': fields.many2one('account.analytic.account', 'Contract/Analytic Account', readonly=True, states={'draft': [('readonly', False)]}, help="The analytic account related to a sales order."), + 'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', required=True, readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="Pricelist for current sales order."), + 'project_id': fields.many2one('account.analytic.account', 'Contract/Analytic Account', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, help="The analytic account related to a sales order."), - 'order_line': fields.one2many('sale.order.line', 'order_id', 'Order Lines', readonly=True, states={'draft': [('readonly', False)]}), + 'order_line': fields.one2many('sale.order.line', 'order_id', 'Order Lines', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}), 'invoice_ids': fields.many2many('account.invoice', 'sale_order_invoice_rel', 'order_id', 'invoice_id', 'Invoices', readonly=True, help="This is the list of invoices that have been generated for this sales order. The same sales order may have been invoiced in several times (by line for example)."), 'picking_ids': fields.one2many('stock.picking.out', 'sale_id', 'Related Picking', readonly=True, help="This is a list of delivery orders that has been generated for this sales order."), 'shipped': fields.boolean('Delivered', readonly=True, help="It indicates that the sales order has been delivered. This field is updated only after the scheduler(s) have been launched."), @@ -467,6 +468,20 @@ class sale_order(osv.osv): inv_obj.button_compute(cr, uid, [inv_id]) return inv_id + def print_quotation(self, cr, uid, ids, context=None): + ''' + This function prints the sale order and mark it as sent, so that we can see more easily the next step of the workflow + ''' + assert len(ids) == 1, 'This option should only be used for a single id at a time' + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'sale.order', ids[0], 'quotation_sent', cr) + datas = { + 'model': 'sale.order', + 'ids': ids, + 'form': self.read(cr, uid, ids[0], context=context), + } + return {'type': 'ir.actions.report.xml', 'report_name': 'sale.order', 'datas': datas, 'nodestroy': True} + def manual_invoice(self, cr, uid, ids, context=None): mod_obj = self.pool.get('ir.model.data') wf_service = netsvc.LocalService("workflow") @@ -498,6 +513,75 @@ class sale_order(osv.osv): 'res_id': inv_ids and inv_ids[0] or False, } + def action_view_invoice(self, cr, uid, ids, context=None): + ''' + This function returns an action that display existing invoices of given sale order ids. It can either be a in a list or in a form view, if there is only one invoice to show. + ''' + mod_obj = self.pool.get('ir.model.data') + result = { + 'name': _('Cutomer Invoice'), + 'view_type': 'form', + 'res_model': 'account.invoice', + 'context': "{'type':'out_invoice', 'journal_type': 'sale'}", + 'type': 'ir.actions.act_window', + 'nodestroy': True, + 'target': 'current', + } + #compute the number of invoices to display + inv_ids = [] + for so in self.browse(cr, uid, ids, context=context): + inv_ids += [invoice.id for invoice in so.invoice_ids] + #choose the view_mode accordingly + if len(inv_ids)>1: + res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_tree') + result.update({ + 'view_mode': 'tree,form', + 'res_id': inv_ids or False + }) + else: + res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_form') + result.update({ + 'view_mode': 'form', + 'res_id': inv_ids and inv_ids[0] or False, + }) + result.update(view_id = res and res[1] or False) + return result + + + def action_view_delivery(self, cr, uid, ids, context=None): + ''' + This function returns an action that display existing delivery orders of given sale order ids. It can either be a in a list or in a form view, if there is only one delivery order to show. + ''' + mod_obj = self.pool.get('ir.model.data') + result = { + 'name': _('Delivery Order'), + 'view_type': 'form', + 'res_model': 'stock.picking', + 'context': "{'type':'out'}", + 'type': 'ir.actions.act_window', + 'nodestroy': True, + 'target': 'current', + } + #compute the number of delivery orders to display + pick_ids = [] + for so in self.browse(cr, uid, ids, context=context): + pick_ids += [picking.id for picking in so.picking_ids] + #choose the view_mode accordingly + if len(pick_ids) > 1: + res = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_out_tree') + result.update({ + 'view_mode': 'tree,form', + 'res_id': pick_ids or False + }) + else: + res = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_out_form') + result.update({ + 'view_mode': 'form', + 'res_id': pick_ids and pick_ids[0] or False, + }) + result.update(view_id = res and res[1] or False) + return result + def action_invoice_create(self, cr, uid, ids, grouped=False, states=['confirmed', 'done', 'exception'], date_inv = False, context=None): res = False invoices = {} @@ -642,6 +726,26 @@ class sale_order(osv.osv): self.cancel_send_note(cr, uid, [sale.id], context=None) self.write(cr, uid, ids, {'state': 'cancel'}) return True + + def action_button_confirm(self, cr, uid, ids, context=None): + assert len(ids) == 1, 'This option should only be used for a single id at a time' + wf_service = netsvc.LocalService('workflow') + wf_service.trg_validate(uid, 'sale.order', ids[0], 'order_confirm', cr) + + # redisplay the record as a sale order + view_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'sale', 'view_order_form') + view_id = view_ref and view_ref[1] or False, + return { + 'type': 'ir.actions.act_window', + 'name': _('Sales Order'), + 'res_model': 'sale.order', + 'res_id': ids[0], + 'view_type': 'form', + 'view_mode': 'form', + 'view_id': view_id, + 'target': 'current', + 'nodestroy': True, + } def action_wait(self, cr, uid, ids, context=None): for o in self.browse(cr, uid, ids): @@ -655,6 +759,30 @@ class sale_order(osv.osv): self.confirm_send_note(cr, uid, ids, context) return True + def action_quotation_send(self, cr, uid, ids, context=None): + ''' + This function opens a window to compose an email, with the edi sale template message loaded by default + ''' + assert len(ids) == 1, 'This option should only be used for a single id at a time' + mod_obj = self.pool.get('ir.model.data') + template = mod_obj.get_object_reference(cr, uid, 'sale', 'email_template_edi_sale') + template_id = template and template[1] or False + res = mod_obj.get_object_reference(cr, uid, 'mail', 'email_compose_message_wizard_form') + res_id = res and res[1] or False + ctx = dict(context, active_model='sale.order', active_id=ids[0]) + ctx.update({'mail.compose.template_id': template_id}) + return { + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'mail.compose.message', + 'views': [(res_id,'form')], + 'view_id': res_id, + 'type': 'ir.actions.act_window', + 'target': 'new', + 'context': ctx, + 'nodestroy': True, + } + def procurement_lines_get(self, cr, uid, ids, *args): res = [] for order in self.browse(cr, uid, ids, context={}): @@ -1380,4 +1508,15 @@ class sale_order_line(osv.osv): sale_order_line() +class mail_message(osv.osv): + _inherit = 'mail.message' + + def _postprocess_sent_message(self, cr, uid, message, context=None): + if message.model == 'sale.order': + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'sale.order', message.res_id, 'quotation_sent', cr) + return super(mail_message, self)._postprocess_sent_message(cr, uid, message=message, context=context) + +mail_message() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index dbd1cc16a6b..777acd649a6 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -97,42 +97,45 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> - <button name="order_confirm" states="draft" string="Confirm Order"/> - <button name="manual_invoice" states="manual" string="Create Final Invoice" type="object"/> - <button name="invoice_recreate" states="invoice_except" string="Recreate Invoice"/> - <button name="invoice_corrected" states="invoice_except" string="Ignore Exception"/> - <button name="ship_recreate" states="shipping_except" string="Recreate Packing"/> - <button name="ship_corrected" states="shipping_except" string="Ignore Exception"/> - <button name="%(report_sale_order)d" string="Print Order" type="action" states="waiting_date,manual,progress,done,shipping_except,invoice_except"/> - <button name="ship_cancel" states="shipping_except" string="Cancel Order"/> - <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/> - <button name="invoice_cancel" states="invoice_except" string="Cancel Order"/> - <button name="%(report_sale_order)d" string="Print Quotation" type="action" states="draft"/> - <button name="%(action_view_sale_advance_payment_inv)d" string="Advance Invoice" type="action" states="draft,manual"/> - <button name="action_cancel" states="manual,progress" string="Cancel Order" type="object"/> - <button name="cancel" states="draft" string="Cancel Order"/> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,progress,done" statusbar_colors='{"shipping_except":"red","invoice_except":"red","waiting_date":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <header> + <button name="invoice_recreate" states="invoice_except" string="Recreate Invoice"/> + <button name="invoice_corrected" states="invoice_except" string="Ignore Exception"/> + <button name="ship_recreate" states="shipping_except" string="Recreate Delivery Order"/> + <button name="ship_corrected" states="shipping_except" string="Ignore Exception"/> + <button name="action_quotation_send" string="Send by Mail" type="object" states="draft" class="oe_form_button_hi"/> + <button name="action_quotation_send" string="Send by Mail" type="object" states="sent"/> + <button name="manual_invoice" states="manual" string="Create Final Invoice" type="object"/> + <button name="print_quotation" string="Send by Post" type="object" states="draft" class="oe_form_button_hi"/> + <button name="print_quotation" string="Send by Post" type="object" states="sent"/> + <button name="action_button_confirm" states="draft" string="Confirm" type="object"/> + <button name="action_button_confirm" states="sent" string="Confirm" class="oe_form_button_hi" type="object"/> + <button name="action_view_invoice" string="Open Invoice" type="object" + attrs="{'invisible': ['|','|',('state', '!=','progress'), ('invoiced', '=', True),('order_policy','=','picking')]}"/> + <button name="action_view_delivery" string="Open Delivery Order" type="object" + attrs="{'invisible': ['|','|','|',('picking_ids','=',False),('picking_ids','=',[]), ('state', 'not in', ('progress','manual')),('shipped','=',True)]}"/> + <button name="%(action_view_sale_advance_payment_inv)d" string="Advance Invoice" type="action" states="manual"/> + <button name="cancel" states="draft,sent" string="Cancel"/> + <button name="action_cancel" states="manual,progress" string="Cancel" type="object"/> + <button name="ship_cancel" states="shipping_except" string="Cancel"/> + <button name="invoice_cancel" states="invoice_except" string="Cancel"/> + <field name="state" widget="statusbar" statusbar_visible="draft,sent,progress,invoiced,done" statusbar_colors='{"shipping_except":"red","invoice_except":"red","waiting_date":"blue"}'/> + </header> <sheet string="Sales Order" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <group col="4" colspan="4"> <field name="name"/> <field name="date_order"/> <field name="shop_id" on_change="onchange_shop_id(shop_id)" widget="selection" groups="stock.group_locations"/> - <field name="client_order_ref"/> </group> <group col="2" colspan="2"> - <field name="invoiced"/> - <field name="shipped"/> + <field name="invoiced" invisible="True"/> + <field name="shipped" invisible="True"/> </group> </group> <notebook colspan="5"> <page string="Sales Order"> - <field name="partner_id" on_change="onchange_partner_id(partner_id)" domain="[('customer','=',True)]" context="{'search_default_customer':1}" required="1"/> + <group col="4"> + <field name="partner_id" on_change="onchange_partner_id(partner_id)" domain="[('customer','=',True)]" context="{'search_default_customer':1}" /> <field domain="[('parent_id','=',partner_id)]" name="partner_invoice_id" groups="sale.group_delivery_invoice_address" options='{"quick_create": false}'/> <field domain="[('parent_id','=',partner_id)]" name="partner_shipping_id" groups="sale.group_delivery_invoice_address" options='{"quick_create": false}'/> <field domain="[('type','=','sale')]" name="pricelist_id" groups="product.group_sale_pricelist" on_change="onchange_pricelist_id(pricelist_id,order_line)"/> @@ -147,11 +150,11 @@ context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}" name="product_id" on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, True, parent.date_order, product_packaging, parent.fiscal_position, False, context)"/> - <field name="name"/> - + <field name="name" placeholder="Porduct/Service characteristics"/> + <field context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}" - name="product_uom_qty" + name="product_uom_qty" string="Quantity" on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, False, parent.date_order, product_packaging, parent.fiscal_position, True, context)"/> <group colspan="1"> <field name="product_uom" nolabel="1" groups="product.group_uom" @@ -208,22 +211,17 @@ <field name="price_subtotal" groups="base.group_sale_notes_subtotal"/> </tree> </field> - - <div class="oe_form_subtotal_footer" colspan="4"> - <div> - <field name="amount_untaxed" sum="Untaxed amount"/> - </div> - <div> - <field name="amount_tax"/> - </div> - <div class="oe_form_subtotal_footer_separator"> - <field name="amount_total"/> - </div> - </div> - <div class="oe_clear"/> + <group colspan="3" col="4" name="bellow_the_lines_hook"> + </group> + <group class="oe_form_subtotal_footer" colspan="1" col="2"> + <field name="amount_untaxed" sum="Untaxed amount"/> + <field name="amount_tax"/> + <field name="amount_total" class="oe_form_subtotal_footer_separator"/> + </group> <separator colspan="4" string="Notes"/> - <field colspan="4" name="note" nolabel="1"/> + <field colspan="4" name="note" nolabel="1" placeholder="Our quotation is valid for 30 days..."/> + </group> </page> <page string="Other Information"> <group colspan="2" col="2" name="logistics"> @@ -237,6 +235,7 @@ <separator string="References" colspan="2"/> <field name="user_id"/> <field groups="base.group_no_one" name="origin"/> + <field name="client_order_ref"/> </group> <group name="sale_pay" colspan="2" col="2"> <separator string="Conditions" colspan="2"/> @@ -269,7 +268,7 @@ </notebook> </sheet> <div class="oe_form_bottom"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </form> </field> @@ -281,7 +280,7 @@ <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Sales Order"> - <filter icon="terp-document-new" string="Quotations" name="draft" domain="[('state','=','draft')]" help="Sales Order that haven't yet been confirmed"/> + <filter icon="terp-document-new" string="Quotations" name="draft" domain="[('state','in',('draft','sent'))]" help="Sales Order that haven't yet been confirmed"/> <filter icon="terp-check" string="Sales" name="sales" domain="[('state','in',('manual','progress'))]"/> <separator orientation="vertical"/> <filter icon="terp-dolar_ok!" string="To Invoice" domain="[('state','=','manual')]" help="Sales Order ready to be invoiced"/> @@ -347,6 +346,13 @@ <field name="view_mode">tree,form,calendar,graph</field> <field name="context">{"search_default_draft":1}</field> <field name="search_view_id" ref="view_sales_order_filter"/> + <field name="help"> + Click here to create a new quotation. + <p> + The "Quotation" is the first step of the Sales flow. Manage your sales from quotation to invoice. + <p> + You will be able to sell products (manage deliveries) as well as services (create projects). + </field> </record> <menuitem id="menu_sale_quotations" diff --git a/addons/sale/sale_workflow.xml b/addons/sale/sale_workflow.xml index 78284ee1eb1..c18e271d480 100644 --- a/addons/sale/sale_workflow.xml +++ b/addons/sale/sale_workflow.xml @@ -13,6 +13,12 @@ <field name="flow_start">True</field> <field name="name">draft</field> </record> + <record id="act_sent" model="workflow.activity"> + <field name="wkf_id" ref="wkf_sale"/> + <field name="name">sent</field> + <field name="kind">function</field> + <field name="action">write({'state':'sent'})</field> + </record> <record id="act_router" model="workflow.activity"> <field name="wkf_id" ref="wkf_sale"/> <field name="name">router</field> @@ -123,6 +129,24 @@ <field name="signal">order_confirm</field> </record> + <record id="trans_draft_sent" model="workflow.transition"> + <field name="act_from" ref="act_draft"/> + <field name="act_to" ref="act_sent"/> + <field name="signal">quotation_sent</field> + </record> + + <record id="trans_sent_cancel" model="workflow.transition"> + <field name="act_from" ref="act_sent"/> + <field name="act_to" ref="act_cancel"/> + <field name="signal">cancel</field> + </record> + + <record id="trans_sent_router" model="workflow.transition"> + <field name="act_from" ref="act_sent"/> + <field name="act_to" ref="act_router"/> + <field name="signal">order_confirm</field> + </record> + <record id="trans_draft_cancel" model="workflow.transition"> <field name="act_from" ref="act_draft"/> <field name="act_to" ref="act_cancel"/> diff --git a/addons/sale_analytic_plans/sale_analytic_plans_view.xml b/addons/sale_analytic_plans/sale_analytic_plans_view.xml index 2d4ff082288..0e2ccb41651 100644 --- a/addons/sale_analytic_plans/sale_analytic_plans_view.xml +++ b/addons/sale_analytic_plans/sale_analytic_plans_view.xml @@ -18,7 +18,7 @@ <field name="type">form</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> - <xpath expr="/form/sheet/notebook/page/field[@name='order_line']/form/notebook/page/field[@name='delay']" position="after"> + <xpath expr="//field[@name='order_line']/form//field[@name='delay']" position="after"> <field name="analytics_id" domain="[('plan_id','<>',False)]" groups="analytic.group_analytic_accounting"/> </xpath> </field> diff --git a/addons/sale_crm/sale_crm_view.xml b/addons/sale_crm/sale_crm_view.xml index 3151c910e2f..49e7686542c 100644 --- a/addons/sale_crm/sale_crm_view.xml +++ b/addons/sale_crm/sale_crm_view.xml @@ -9,9 +9,9 @@ <field name="inherit_id" ref="crm.crm_case_form_view_oppor"/> <field name="arch" type="xml"> <data> - <xpath expr="//div[contains(@class,'oe_form_topbar')]/div[contains(@class,'oe_right')]" position="before"> + <field name="state" position="before"> <button string="Convert to Quote" name="%(action_crm_make_sale)d" type="action"/> - </xpath> + </field> </data> </field> </record> diff --git a/addons/sale_journal/i18n/lv.po b/addons/sale_journal/i18n/lv.po new file mode 100644 index 00000000000..b7e28dd62c7 --- /dev/null +++ b/addons/sale_journal/i18n/lv.po @@ -0,0 +1,130 @@ +# Latvian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:37+0000\n" +"PO-Revision-Date: 2012-05-28 08:08+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Latvian <lv@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-29 04:46+0000\n" +"X-Generator: Launchpad (build 15316)\n" + +#. module: sale_journal +#: sql_constraint:sale.order:0 +msgid "Order Reference must be unique per Company!" +msgstr "" + +#. module: sale_journal +#: field:sale_journal.invoice.type,note:0 +msgid "Note" +msgstr "" + +#. module: sale_journal +#: field:res.partner,property_invoice_type:0 +msgid "Invoicing Type" +msgstr "" + +#. module: sale_journal +#: help:res.partner,property_invoice_type:0 +msgid "" +"This invoicing type will be used, by default, for invoicing the current " +"partner." +msgstr "" + +#. module: sale_journal +#: constraint:res.partner:0 +msgid "Error ! You cannot create recursive associated members." +msgstr "" + +#. module: sale_journal +#: view:res.partner:0 +msgid "Sales & Purchases" +msgstr "" + +#. module: sale_journal +#: help:sale_journal.invoice.type,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the invoice " +"type without removing it." +msgstr "" + +#. module: sale_journal +#: view:sale_journal.invoice.type:0 +msgid "Notes" +msgstr "" + +#. module: sale_journal +#: field:sale_journal.invoice.type,invoicing_method:0 +msgid "Invoicing method" +msgstr "" + +#. module: sale_journal +#: model:ir.actions.act_window,name:sale_journal.action_definition_journal_invoice_type +#: model:ir.model,name:sale_journal.model_sale_journal_invoice_type +#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_invoice_type +msgid "Invoice Types" +msgstr "" + +#. module: sale_journal +#: selection:sale_journal.invoice.type,invoicing_method:0 +msgid "Non grouped" +msgstr "" + +#. module: sale_journal +#: selection:sale_journal.invoice.type,invoicing_method:0 +msgid "Grouped" +msgstr "" + +#. module: sale_journal +#: model:ir.actions.act_window,help:sale_journal.action_definition_journal_invoice_type +msgid "" +"Invoice types are used for partners, sales orders and delivery orders. You " +"can create a specific invoicing journal to group your invoicing according to " +"your customer's needs: daily, each Wednesday, monthly, etc." +msgstr "" + +#. module: sale_journal +#: sql_constraint:stock.picking:0 +msgid "Reference must be unique per Company!" +msgstr "" + +#. module: sale_journal +#: field:sale.order,invoice_type_id:0 +#: view:sale_journal.invoice.type:0 +#: field:sale_journal.invoice.type,name:0 +#: field:stock.picking,invoice_type_id:0 +msgid "Invoice Type" +msgstr "" + +#. module: sale_journal +#: field:sale_journal.invoice.type,active:0 +msgid "Active" +msgstr "" + +#. module: sale_journal +#: model:ir.model,name:sale_journal.model_res_partner +msgid "Partner" +msgstr "" + +#. module: sale_journal +#: model:ir.model,name:sale_journal.model_sale_order +msgid "Sales Order" +msgstr "" + +#. module: sale_journal +#: model:ir.model,name:sale_journal.model_stock_picking +msgid "Picking List" +msgstr "" + +#. module: sale_journal +#: view:res.partner:0 +msgid "Invoicing" +msgstr "" diff --git a/addons/sale_layout/i18n/lv.po b/addons/sale_layout/i18n/lv.po new file mode 100644 index 00000000000..a6c201c8f7c --- /dev/null +++ b/addons/sale_layout/i18n/lv.po @@ -0,0 +1,254 @@ +# Latvian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:37+0000\n" +"PO-Revision-Date: 2012-05-28 08:16+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Latvian <lv@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-05-29 04:46+0000\n" +"X-Generator: Launchpad (build 15316)\n" + +#. module: sale_layout +#: sql_constraint:sale.order:0 +msgid "Order Reference must be unique per Company!" +msgstr "" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Sub Total" +msgstr "" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Title" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Disc. (%)" +msgstr "" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Note" +msgstr "" + +#. module: sale_layout +#: field:sale.order.line,layout_type:0 +msgid "Line Type" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Order N°" +msgstr "" + +#. module: sale_layout +#: field:sale.order,abstract_line_ids:0 +msgid "Order Lines" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Disc.(%)" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Unit Price" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Invoice Lines" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "UoM" +msgstr "" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Product" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Description" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Our Salesman" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Tel. :" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Quantity" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Quotation N°" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "VAT" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Make Invoice" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Properties" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Invoice address :" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Fax :" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Notes" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Date Ordered" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Shipping address :" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +#: report:sale.order.layout:0 +msgid "Taxes" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Net Total :" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Total :" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Payment Terms" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "History" +msgstr "" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Separator Line" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Your Reference" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Quotation Date" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "TVA :" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Qty" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "States" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Sales order lines" +msgstr "" + +#. module: sale_layout +#: model:ir.actions.report.xml,name:sale_layout.sale_order_1 +msgid "Order with Layout" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Extra Info" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Taxes :" +msgstr "" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Page Break" +msgstr "" + +#. module: sale_layout +#: model:ir.model,name:sale_layout.model_sale_order +msgid "Sales Order" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Order Line" +msgstr "" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Price" +msgstr "" + +#. module: sale_layout +#: model:ir.model,name:sale_layout.model_sale_order_line +msgid "Sales Order Line" +msgstr "" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Stock Moves" +msgstr "" diff --git a/addons/sale_margin/sale_margin_view.xml b/addons/sale_margin/sale_margin_view.xml index a0b8f39565c..ad0b8440f19 100644 --- a/addons/sale_margin/sale_margin_view.xml +++ b/addons/sale_margin/sale_margin_view.xml @@ -8,11 +8,9 @@ <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form" /> <field name="arch" type="xml"> - <xpath expr="//div[@class='oe_form_subtotal_footer_separator']" position="after"> - <div> - <field name="margin"/> - </div> - </xpath> + <field name="amount_total" position="after"> + <field name="margin"/> + </field> </field> </record> diff --git a/addons/share/i18n/sv.po b/addons/share/i18n/sv.po new file mode 100644 index 00000000000..c704c8373eb --- /dev/null +++ b/addons/share/i18n/sv.po @@ -0,0 +1,521 @@ +# 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 01:37+0100\n" +"PO-Revision-Date: 2012-06-04 10:42+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-05 04:54+0000\n" +"X-Generator: Launchpad (build 15353)\n" + +#. module: share +#: field:share.wizard,embed_option_title:0 +msgid "Display title" +msgstr "Visningstitel" + +#. module: share +#: view:share.wizard:0 +msgid "Access granted!" +msgstr "Behörighet given!" + +#. module: share +#: field:share.wizard,user_type:0 +msgid "Sharing method" +msgstr "Delningsmetod" + +#. module: share +#: view:share.wizard:0 +msgid "Share with these People (one e-mail per line)" +msgstr "" + +#. module: share +#: field:share.wizard,name:0 +msgid "Share Title" +msgstr "Delningstitel" + +#. module: share +#: model:ir.module.category,name:share.module_category_share +msgid "Sharing" +msgstr "Delning" + +#. module: share +#: field:share.wizard,share_root_url:0 +msgid "Share Access URL" +msgstr "Delnings URL" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:782 +#, python-format +msgid "You may use your current login (%s) and password to view them.\n" +msgstr "" +"Du kan använda nuvarande inloggning (%s) och lösenord för att se dem.\n" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:601 +#, python-format +msgid "(Modified)" +msgstr "(Ändrad)" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:769 +#, python-format +msgid "" +"The documents are not attached, you can view them online directly on my " +"OpenERP server at:" +msgstr "" +"Dokumenten är inte bilagda, du kan se dem online direkt på vår OpenERP-" +"server på:" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:579 +#, python-format +msgid "Sharing filter created by user %s (%s) for group %s" +msgstr "" + +#. module: share +#: field:share.wizard,embed_url:0 field:share.wizard.result.line,share_url:0 +msgid "Share URL" +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:776 +#, python-format +msgid "These are your credentials to access this protected area:\n" +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:643 +#, python-format +msgid "You must be a member of the Share/User group to use the share wizard" +msgstr "" + +#. module: share +#: view:share.wizard:0 +msgid "Access info" +msgstr "" + +#. module: share +#: view:share.wizard:0 +msgid "Share" +msgstr "Utdelning" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:551 +#, python-format +msgid "(Duplicated for modified sharing permissions)" +msgstr "" + +#. module: share +#: help:share.wizard,domain:0 +msgid "Optional domain for further data filtering" +msgstr "" + +#. module: share +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Du kan inte ha två användare med samma användarid !" + +#. module: share +#: model:ir.model,name:share.model_ir_model_access +msgid "ir.model.access" +msgstr "ir.model.access" + +#. module: share +#: view:share.wizard:0 +msgid "Next" +msgstr "Nästa" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:777 +#, python-format +msgid "Username" +msgstr "Användarnamn" + +#. module: share +#: view:share.wizard:0 +msgid "Sharing Options" +msgstr "Utdelningsalternativ" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:765 +#, python-format +msgid "Hello," +msgstr "Hej," + +#. module: share +#: view:share.wizard:0 +msgid "Close" +msgstr "Stäng" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:640 +#, python-format +msgid "Action and Access Mode are required to create a shared access" +msgstr "" + +#. module: share +#: view:share.wizard:0 +msgid "" +"Please select the action that opens the screen containing the data you want " +"to share." +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:781 +#, python-format +msgid "" +"The documents have been automatically added to your current OpenERP " +"documents.\n" +msgstr "" + +#. module: share +#: view:share.wizard:0 +msgid "Cancel" +msgstr "Avbryt" + +#. module: share +#: field:res.groups,share:0 +msgid "Share Group" +msgstr "Delningsgrupp" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:763 +#, python-format +msgid "Email required" +msgstr "E-post krävs" + +#. module: share +#: view:share.wizard:0 +msgid "" +"Optionally, you may specify an additional domain restriction that will be " +"applied to the shared data." +msgstr "" + +#. module: share +#: help:share.wizard,name:0 +msgid "Title for the share (displayed to users as menu and shortcut name)" +msgstr "" + +#. module: share +#: view:share.wizard:0 +msgid "Options" +msgstr "Alternativ" + +#. module: share +#: view:res.groups:0 +msgid "Regular groups only (no share groups" +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:787 +#, python-format +msgid "" +"OpenERP is a powerful and user-friendly suite of Business Applications (CRM, " +"Sales, HR, etc.)\n" +"It is open source and can be found on http://www.openerp.com." +msgstr "" + +#. module: share +#: field:share.wizard,action_id:0 +msgid "Action to share" +msgstr "" + +#. module: share +#: view:share.wizard:0 +msgid "Optional: include a personal message" +msgstr "" + +#. module: share +#: field:res.users,share:0 +msgid "Share User" +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:647 +#, python-format +msgid "Please indicate the emails of the persons to share with, one per line" +msgstr "" + +#. module: share +#: field:share.wizard,embed_code:0 field:share.wizard.result.line,user_id:0 +msgid "unknown" +msgstr "okänd" + +#. module: share +#: help:res.groups,share:0 +msgid "Group created to set access rights for sharing data with some users." +msgstr "" + +#. module: share +#: help:share.wizard,action_id:0 +msgid "" +"The action that opens the screen containing the data you wish to share." +msgstr "" + +#. module: share +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "Detta bolag är inte tillåtet för den här användaren" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:526 +#, python-format +msgid "(Copy for sharing)" +msgstr "" + +#. module: share +#: field:share.wizard.result.line,newly_created:0 +msgid "Newly created" +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:616 +#, python-format +msgid "Indirect sharing filter created by user %s (%s) for group %s" +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:767 +#, python-format +msgid "I've shared %s with you!" +msgstr "" + +#. module: share +#: help:share.wizard,share_root_url:0 +msgid "Main access page for users that are granted shared access" +msgstr "" + +#. module: share +#: sql_constraint:res.groups:0 +msgid "The name of the group must be unique !" +msgstr "Gruppens namn måsta vara unikt !" + +#. module: share +#: model:res.groups,name:share.group_share_user +msgid "User" +msgstr "Användare" + +#. module: share +#: view:res.groups:0 +msgid "Groups" +msgstr "Grupper" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:636 +#, python-format +msgid "" +"Sorry, the current screen and filter you are trying to share are not " +"supported at the moment.\n" +"You may want to try a simpler filter." +msgstr "" + +#. module: share +#: view:share.wizard:0 +msgid "Use this Link" +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:779 +#, python-format +msgid "Database" +msgstr "Databas" + +#. module: share +#: field:share.wizard,domain:0 +msgid "Domain" +msgstr "Domän" + +#. module: share +#: view:share.wizard:0 field:share.wizard,result_line_ids:0 +msgid "Summary" +msgstr "Sammandrag" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:493 +#, python-format +msgid "Copied access for sharing" +msgstr "" + +#. module: share +#: model:ir.actions.act_window,name:share.action_share_wizard_step1 +msgid "Share your documents" +msgstr "Dela dina dokument" + +#. module: share +#: view:share.wizard:0 +msgid "Or insert the following code where you want to embed your documents" +msgstr "" + +#. module: share +#: view:share.wizard:0 +msgid "" +"An e-mail notification with instructions has been sent to the following " +"people:" +msgstr "" + +#. module: share +#: model:ir.model,name:share.model_share_wizard_result_line +msgid "share.wizard.result.line" +msgstr "share.wizard.result.line" + +#. module: share +#: help:share.wizard,user_type:0 +msgid "Select the type of user(s) you would like to share data with." +msgstr "" + +#. module: share +#: field:share.wizard,view_type:0 +msgid "Current View Type" +msgstr "" + +#. module: share +#: selection:share.wizard,access_mode:0 +msgid "Can view" +msgstr "Kan se" + +#. module: share +#: selection:share.wizard,access_mode:0 +msgid "Can edit" +msgstr "Kan ändra" + +#. module: share +#: help:share.wizard,message:0 +msgid "" +"An optional personal message, to be included in the e-mail notification." +msgstr "" + +#. module: share +#: model:ir.model,name:share.model_res_users +msgid "res.users" +msgstr "res.users" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:60 +#: code:addons/share/wizard/share_wizard.py:635 +#, python-format +msgid "Sharing access could not be created" +msgstr "" + +#. module: share +#: help:res.users,share:0 +msgid "" +"External user with limited access, created only for the purpose of sharing " +"data." +msgstr "" + +#. module: share +#: model:ir.actions.act_window,name:share.action_share_wizard +#: model:ir.model,name:share.model_share_wizard +#: field:share.wizard.result.line,share_wizard_id:0 +msgid "Share Wizard" +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:740 +#, python-format +msgid "Shared access created!" +msgstr "" + +#. module: share +#: model:res.groups,comment:share.group_share_user +msgid "" +"\n" +"Members of this groups have access to the sharing wizard, which allows them " +"to invite external users to view or edit some of their documents." +msgstr "" + +#. module: share +#: model:ir.model,name:share.model_res_groups +msgid "Access Groups" +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:778 +#: field:share.wizard.result.line,password:0 +#, python-format +msgid "Password" +msgstr "Lösenord" + +#. module: share +#: field:share.wizard,new_users:0 +msgid "Emails" +msgstr "E-post" + +#. module: share +#: field:share.wizard,embed_option_search:0 +msgid "Display search view" +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:197 +#, python-format +msgid "No e-mail address configured" +msgstr "" + +#. module: share +#: field:share.wizard,message:0 +msgid "Personal Message" +msgstr "Personligt meddelande" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:763 +#, python-format +msgid "" +"The current user must have an email address configured in User Preferences " +"to be able to send outgoing emails." +msgstr "" + +#. module: share +#: field:share.wizard.result.line,login:0 +msgid "Login" +msgstr "Inloggning" + +#. module: share +#: view:res.users:0 +msgid "Regular users only (no share user)" +msgstr "" + +#. module: share +#: field:share.wizard,access_mode:0 +msgid "Access Mode" +msgstr "" + +#. module: share +#: view:share.wizard:0 +msgid "Sharing: preparation" +msgstr "" + +#. module: share +#: code:addons/share/wizard/share_wizard.py:198 +#, python-format +msgid "" +"You must configure your e-mail address in the user preferences before using " +"the Share button." +msgstr "" + +#. module: share +#: help:share.wizard,access_mode:0 +msgid "Access rights to be granted on the shared documents." +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/share/static/src/xml/share.xml:8 +msgid "Link or embed..." +msgstr "" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/share/static/src/xml/share.xml:9 +msgid "Share with..." +msgstr "" + +#~ msgid "Share with these people (one e-mail per line)" +#~ msgstr "Dela med dessa personer (en e-post per rad)" diff --git a/addons/share/i18n/zh_CN.po b/addons/share/i18n/zh_CN.po index a33bf1bee31..136584284dd 100644 --- a/addons/share/i18n/zh_CN.po +++ b/addons/share/i18n/zh_CN.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2011-07-08 03:38+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"PO-Revision-Date: 2012-06-07 03:37+0000\n" +"Last-Translator: Jeff Wang <wjfonhand@hotmail.com>\n" "Language-Team: Chinese (Simplified) <zh_CN@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-05-11 05:11+0000\n" -"X-Generator: Launchpad (build 15225)\n" +"X-Launchpad-Export-Date: 2012-06-08 04:40+0000\n" +"X-Generator: Launchpad (build 15376)\n" #. module: share #: field:share.wizard,embed_option_title:0 @@ -114,7 +114,7 @@ msgstr "" #. module: share #: help:share.wizard,domain:0 msgid "Optional domain for further data filtering" -msgstr "更多数据的过滤器的可选择域" +msgstr "可选的过滤条件,用于再次过滤数据" #. module: share #: sql_constraint:res.users:0 @@ -195,7 +195,7 @@ msgstr "需要一个电子邮件地址" msgid "" "Optionally, you may specify an additional domain restriction that will be " "applied to the shared data." -msgstr "可选项,你可以为共享数据外加一个限制。" +msgstr "可选项,你可以针对于要分享的数据指定一个过滤条件。" #. module: share #: help:share.wizard,name:0 @@ -329,7 +329,7 @@ msgstr "数据库" #. module: share #: field:share.wizard,domain:0 msgid "Domain" -msgstr "定义域" +msgstr "过滤条件" #. module: share #: view:share.wizard:0 field:share.wizard,result_line_ids:0 diff --git a/addons/stock/res_config_view.xml b/addons/stock/res_config_view.xml index e760c453585..7d17d9eec50 100644 --- a/addons/stock/res_config_view.xml +++ b/addons/stock/res_config_view.xml @@ -8,10 +8,10 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string ="Configure Warehouse" layout="manual"> - <div class="oe_form_topbar"> + <header> <button string="Apply" type="object" name="execute"/> <button string="Cancel" special="cancel"/> - </div> + </header> <sheet layout="auto"> <separator string="Traceability" colspan="4"/> <field name="group_stock_production_lot"/> diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 8a70fce81a4..87cf9ade130 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -735,9 +735,9 @@ class stock_picking(osv.osv): """ Changes state of picking to available if all moves are confirmed. @return: True """ + wf_service = netsvc.LocalService("workflow") for pick in self.browse(cr, uid, ids): if pick.state == 'draft': - wf_service = netsvc.LocalService("workflow") wf_service.trg_validate(uid, 'stock.picking', pick.id, 'button_confirm', cr) move_ids = [x.id for x in pick.move_lines if x.state == 'confirmed'] if not move_ids: diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index cff0298d08b..8e8b94914a4 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -109,19 +109,16 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="action_confirm" states="draft" string="Confirm Inventory" type="object"/> <button name="action_done" states="confirm" string="Validate Inventory" type="object"/> <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/> <button name="action_cancel_inventory" states="draft,confirm,done" string="Cancel Inventory" type="object"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,confirm"/> + </header> <sheet string="Physical Inventory" layout="auto"> <group class="oe_form_header"> - <field name="name"/> + <field name="name" placeholder="Annual invetory 2013"/> <field name="date"/> <field name="company_id" groups="base.group_multi_company" widget="selection"/> <notebook colspan="4"> @@ -462,7 +459,7 @@ <field name="location_dest_id" groups="stock.group_locations"/> <field name="create_date" groups="base.group_no_one"/> <field name="date" string="Date" groups="base.group_no_one"/> - <field name="date_expected" string="Date Expected"/> + <field name="date_expected" string="Date Expected"/> <field name="state"/> </tree> </field> @@ -697,7 +694,6 @@ <field name="invoice_state"/> <field name="stock_journal_id" widget="selection"/> <field name="state"/> - <button name="action_process" states="assigned" groups="stock.group_stock_user" string="Process" type="object" icon="gtk-go-forward"/> </tree> </field> </record> @@ -709,7 +705,7 @@ <field eval="12" name="priority"/> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="draft_force_assign" states="draft" string="Confirm" type="object"/> <button name="draft_validate" states="draft" string="Confirm & Transfer" type="object"/> <!-- <button name="action_assign" states="confirmed" string="Check Availability" type="object"/> --> @@ -718,15 +714,13 @@ <button name="%(action_stock_invoice_onshipping)d" string="Create Invoice" attrs="{'invisible': ['|','|',('state','<>','done'),('invoice_state','=','invoiced'),('invoice_state','=','none')]}" type="action" /> <button name="%(act_stock_return_picking)d" string="Reverse Transfer" states="done" type="action" /> <button name="button_cancel" states="assigned,confirmed,draft" string="_Cancel"/> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,assigned,done" statusbar_colors='{"shipping_except":"red","invoice_except":"red","waiting_date":"blue"}'/> - </div> - </div> + <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,assigned,done" statusbar_colors='{"shipping_except":"red","invoice_except":"red","waiting_date":"blue"}'/> + </header> <sheet string="Internal Picking List" layout="auto"> <group colspan="4" col="6"> <group colspan="4" col="4"> <field name="name" readonly="1"/> - <field name="origin"/> + <field name="origin" placeholder="PO0032"/> <field name="partner_id" on_change="onchange_partner_in(partner_id)" colspan="4"/> <field name="invoice_state" string="Invoice Control"/> <field name="backorder_id" readonly="1"/> @@ -734,7 +728,7 @@ <group colspan="2" col="2"> <field name="date"/> <field name="min_date" readonly="1"/> - <field name="stock_journal_id" widget="selection"/> + <field name="stock_journal_id" widget="selection" groups="account.group_account_user"/> </group> </group> <notebook colspan="4"> @@ -767,7 +761,7 @@ groups="product.group_stock_packaging" icon="terp-stock_effects-object-colorize" states="draft,assigned,confirmed"/> - <field name="location_dest_id"/> + <field name="location_dest_id" groups="stock.group_locations"/> <field name="date_expected" string="Date Expected"/> <field name="state"/> </tree> @@ -787,7 +781,7 @@ <field name="product_packaging" groups="product.group_stock_packaging" domain="[('product_id','=',product_id)]" colspan="4"/> </group> - <group colspan="2" col="2"> + <group colspan="2" col="2" groups="stock.group_locations"> <separator string="Locations" colspan="2" /> <field name="location_id" domain="[('usage','<>','view')]"/> <field name="location_dest_id" domain="[('usage','=','internal')]"/> @@ -835,7 +829,7 @@ <field name="company_id" groups="base.group_multi_company" widget="selection"/> </page> <page string="Notes"> - <field colspan="4" name="note" nolabel="1"/> + <field colspan="4" name="note" nolabel="1" placeholder="Quality test ok..."/> </page> </notebook> </sheet> @@ -912,14 +906,13 @@ <field name="arch" type="xml"> <tree colors="blue:state == 'draft';grey:state == 'cancel';red:state not in ('cancel', 'done') and min_date < current_date" string="Delivery Orders"> <field name="name"/> + <field name="partner_id"/> <field name="origin"/> - <field name="date"/> <field name="min_date"/> <field name="backorder_id"/> + <field name="stock_journal_id" groups="account.group_account_user"/> <field name="invoice_state"/> - <field name="stock_journal_id" widget="selection"/> <field name="state"/> - <button name="action_process" states="assigned" string="Process" type="object" icon="gtk-go-forward"/> </tree> </field> </record> @@ -930,27 +923,27 @@ <field name="type">form</field> <field name="arch" type="xml"> <data> - <xpath expr="/form/div[@class='oe_form_topbar']/button[@name='%(act_stock_return_picking)d']" position="replace"> + <xpath expr="/form/header/button[@name='%(act_stock_return_picking)d']" position="replace"> <button name="%(report_picking_list_out)d" string="Print Delivery Slip" type="action" states="done"/> <button name="%(act_stock_return_picking)d" string="Return Products" states="done" type="action" /> </xpath> - <xpath expr="/form/div[@class='oe_form_topbar']/button[@name='draft_validate']" position="replace"> + <xpath expr="/form/header/button[@name='draft_validate']" position="replace"> <button name="draft_validate" states="draft" string="Confirm & Deliver" type="object"/> <button name="action_assign" states="confirmed" string="Check Availability" type="object"/> </xpath> - <xpath expr="/form/div[@class='oe_form_topbar']/button[@name='action_process']" position="replace"> + <xpath expr="/form/header/button[@name='action_process']" position="replace"> <button name="action_process" states="assigned" string="Deliver" type="object" icon="gtk-go-forward"/> </xpath> - <xpath expr="/form/div[@class='oe_form_topbar']/div[@class='oe_right']/field[@name='state']" position="replace"> + <xpath expr="/form/header/field[@name='state']" position="replace"> <field name="state" nolabel="1" readonly="1" widget="statusbar" statusbar_visible="draft,confirmed,assigned,done" statusbar_colors='{"auto":"blue", "confirmed":"blue"}'/> </xpath> <xpath expr="/form/sheet/group/group/field[@name='partner_id']" position="replace"> <field name="partner_id" on_change="onchange_partner_in(partner_id)" colspan="4" string="Customer"/> </xpath> <xpath expr="/form/sheet" position="after"> - <div class="oe_form_bottom"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> - </div> + <footer> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> + </footer> </xpath> </data> </field> @@ -1032,6 +1025,7 @@ <field name="arch" type="xml"> <tree colors="blue:state == 'draft';grey:state == 'done';red:state not in ('cancel', 'done') and date < current_date" string="Picking list"> <field name="name"/> + <field name="partner_id"/> <field name="backorder_id"/> <field name="origin"/> <field name="date"/> @@ -1039,8 +1033,6 @@ <field name="invoice_state"/> <field name="stock_journal_id" widget="selection"/> <field name="state"/> - <button name="action_process" states="assigned" string="Process" type="object" icon="gtk-go-forward"/> - <button name="button_cancel" states="assigned,confirmed,draft" string="Cancel" icon="gtk-cancel" confirm="This operation will cancel the shipment. Do you want to continue?" /> </tree> </field> </record> @@ -1051,13 +1043,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <data> - <xpath expr="/form/div[@class='oe_form_topbar']/button[@name='%(act_stock_return_picking)d']" position="replace"> + <xpath expr="/form/header/button[@name='%(act_stock_return_picking)d']" position="replace"> <button name="%(act_stock_return_picking)d" string="Return Products" states="done" type="action" /> </xpath> - <xpath expr="/form/div[@class='oe_form_topbar']/button[@name='draft_validate']" position="replace"> + <xpath expr="/form/header/button[@name='draft_validate']" position="replace"> <button name="draft_validate" states="draft" string="Confirm & Receive" type="object"/> </xpath> - <xpath expr="/form/div[@class='oe_form_topbar']/button[@name='action_process']" position="replace"> + <xpath expr="/form/header/button[@name='action_process']" position="replace"> <button name="action_process" states="assigned" string="Receive" type="object"/> </xpath> <xpath expr="/form/sheet/group/group/field[@name='partner_id']" position="replace"> @@ -1065,13 +1057,12 @@ </xpath> <xpath expr="/form/sheet" position="after"> <div class="oe_form_bottom"> - <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/> + <field name="message_ids" colspan="4" widget="ThreadView" nolabel="1"/> </div> </xpath> </data> </field> </record> - <record id="view_picking_in_search" model="ir.ui.view"> <field name="name">stock.picking.in.search</field> <field name="model">stock.picking.in</field> @@ -1191,16 +1182,13 @@ <field eval="4" name="priority"/> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="action_confirm" states="draft" string="Process Later" type="object"/> <button name="action_done" states="draft,assigned,confirmed" string="Process Now" type="object"/> <button name="force_assign" states="confirmed" string="Set Available" type="object"/> <button name="action_cancel" states="assigned,confirmed" string="_Cancel" type="object"/> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,confirmed,assigned,done" statusbar_colors='{"waiting":"blue","confirmed":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,confirmed,assigned,done" statusbar_colors='{"waiting":"blue","confirmed":"blue"}'/> + </header> <sheet string="Stock Moves" layout="auto"> <group colspan="4" col="7"> <field name="product_id" on_change="onchange_product_id(product_id,location_id,location_dest_id, False)"/> @@ -1349,8 +1337,6 @@ states="draft,assigned,confirmed,done"/> <field name="date" groups="base.group_no_one"/> <field name="state"/> - <button name="action_assign" states="confirmed" string="Set Available" type="object" icon="gtk-yes"/> - <button name="action_done" string="Process" type="object" states="confirmed,assigned" icon="gtk-go-forward"/> </tree> </field> </record> @@ -1367,7 +1353,6 @@ <field name="product_qty" /> <field name="product_uom" string="Unit of Measure" groups="product.group_uom"/> <field name="date" groups="base.group_no_one" /> - <button name="action_done" states="confirmed,assigned" string="Process" type="object" icon="gtk-go-forward"/> </tree> </field> </record> @@ -1380,16 +1365,13 @@ <field eval="6" name="priority"/> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="action_confirm" states="draft" string="Process Later" type="object"/> <button name="force_assign" states="confirmed" string="Set Available" type="object"/> <button name="%(action_partial_move_server)d" string="Process" type="action" states="assigned"/> <button name="action_cancel" states="assigned,confirmed" string="_Cancel" type="object"/> - <div class="oe_right"> - <field name="state" nolabel="1" widget="statusbar" statusbar_visible="draft,confirmed,assigned,done" statusbar_colors='{"waiting":"blue","confirmed":"blue"}'/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,confirmed,assigned,done" statusbar_colors='{"waiting":"blue","confirmed":"blue"}'/> + </header> <sheet string="Receive Products" layout="auto"> <group colspan="4" col="7"> <field name="product_id" on_change="onchange_product_id(product_id,location_id,location_dest_id, False)"/> diff --git a/addons/stock/wizard/stock_partial_picking_view.xml b/addons/stock/wizard/stock_partial_picking_view.xml index c57c6c400e4..4bed2b7d529 100644 --- a/addons/stock/wizard/stock_partial_picking_view.xml +++ b/addons/stock/wizard/stock_partial_picking_view.xml @@ -24,7 +24,7 @@ <field name="quantity" /> <field name="product_uom" /> <field name="tracking" invisible="1"/> - <field name="prodlot_id" domain="[('product_id', '=', product_id)]" invisible="context.get('hide_tracking',False)" attrs="{'required':[('tracking','=',True)]}"/> + <field name="prodlot_id" domain="[('product_id', '=', product_id)]" invisible="context.get('hide_tracking',False)" attrs="{'required':[('tracking','=',True)]}" groups="stock.group_production_lot"/> <!-- Removed as this feature is not logic: price must be updated upon reception of invoice --> <field name="update_cost" invisible="1"/> <field name="cost" invisible="1"/> diff --git a/addons/stock_location/procurement_pull.py b/addons/stock_location/procurement_pull.py index 33168a53e20..ca397f7fa2d 100644 --- a/addons/stock_location/procurement_pull.py +++ b/addons/stock_location/procurement_pull.py @@ -115,7 +115,8 @@ class procurement_order(osv.osv): if proc.move_id: move_obj.write(cr, uid, [proc.move_id.id], {'location_id':proc.location_id.id}) - self.write(cr, uid, [proc.id], {'state':'running', 'message':_('Pulled from another location via procurement %d')%proc_id}) + self.write(cr, uid, [proc.id], {'state':'running', 'message':_('Pulled from another location via procurement %d') % proc_id}) + self.running_send_note(cr, uid, [proc.id], context=context) # trigger direct processing (the new procurement shares the same planned date as the original one, which is already being processed) wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_check', cr) diff --git a/addons/stock_location/stock_location_view.xml b/addons/stock_location/stock_location_view.xml index 94a9feb9d57..5f2bacd565f 100644 --- a/addons/stock_location/stock_location_view.xml +++ b/addons/stock_location/stock_location_view.xml @@ -51,7 +51,7 @@ </tree> <form string="Pulled Paths"> <separator string="Conditions" colspan="4"/> - <field name="name" colspan="4"/> + <field name="name" colspan="4" placeholder="Fulfill needs on location X from location Y "/> <field name="location_id"/> <separator string="Action Type" colspan="4"/> <field name="type_proc"/> @@ -81,7 +81,7 @@ </tree> <form string="Pushed flows"> <group colspan="4" col="6"> - <field name="name"/> + <field name="name" placeholder="When receiving at location X, move to location Y"/> <field name="location_from_id"/> <field name="location_dest_id"/> <field name="auto"/> diff --git a/addons/stock_planning/stock_planning_view.xml b/addons/stock_planning/stock_planning_view.xml index 7a4cef952bf..1b5cd953027 100644 --- a/addons/stock_planning/stock_planning_view.xml +++ b/addons/stock_planning/stock_planning_view.xml @@ -13,14 +13,11 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="button_open" string="Open" states="draft" type="object"/> <button name="button_close" string="Close" states="open" type="object"/> - <div class="oe_right"> - <field name="state" select="1" widget="statusbar" nolabel="1" statusbar_visible="draft,open"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,open"/> + </header> <sheet string="Stock Periods" layout="auto"> <group class="oe_form_header"> <field name="name" colspan="2"/> @@ -85,13 +82,10 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="action_validate" string="Approve" states="draft" type="object" /> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar"/> + </header> <sheet string="Stock and Sales Forecast" layout="auto"> <group colspan = "4" col = "4" class="oe_form_header"> <group colspan = "2" col="2" > diff --git a/addons/subscription/subscription_view.xml b/addons/subscription/subscription_view.xml index 13ebe096843..b4c992dcbc4 100644 --- a/addons/subscription/subscription_view.xml +++ b/addons/subscription/subscription_view.xml @@ -14,15 +14,12 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="set_process" states="draft" string="Process" type="object"/> <button name="set_done" states="running" string="Stop" type="object"/> <button name="set_draft" states="done" string="Set to Draft" type="object"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,running"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,running"/> + </header> <sheet string="Subscriptions" layout="auto"> <group col="6" colspan="4" class="oe_form_header"> <field name="name" select="1"/> @@ -67,9 +64,6 @@ <field name="active"/> <field name="user_id" select="1"/> <field name="state"/> - <button name="set_process" states="draft" string="Process" type="object" icon="terp-check"/> - <button name="set_done" states="running" string="Done" type="object" icon="terp-gtk-stop"/> - <button name="set_draft" states="done" string="Set to Draft" type="object" icon="terp-document-new"/> </tree> </field> </record> diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml index e8f02f6d3e0..96dc60ff447 100644 --- a/addons/survey/survey_view.xml +++ b/addons/survey/survey_view.xml @@ -19,15 +19,12 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="survey_open" string="Open" states="cancel,close" type="object"/> <button name="survey_close" string="Close" states="open" type="object"/> <button name="survey_cancel" string="Cancel" states="open" type="object"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="open,close"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="open,close"/> + </header> <sheet string="Survey" layout="auto"> <field name="title" select="1"/> <group col="6" colspan="6"> @@ -1060,16 +1057,13 @@ <field name="type">form</field> <field name="arch" type="xml"> <form layout="manual"> - <div class="oe_form_topbar"> + <header> <button name="survey_req_draft" string="Set to Draft" states="cancel,done" type="object"/> <button name="survey_req_waiting_answer" string="Waiting Answer" states="draft" type="object"/> <button name="survey_req_done" string="Done" states="waiting_answer" type="object"/> <button name="survey_req_cancel" string="Cancel" states="waiting_answer" type="object"/> - <div class="oe_right"> - <field name="state" widget="statusbar" nolabel="1" statusbar_visible="draft,waiting_answer"/> - </div> - <div class="oe_clear"/> - </div> + <field name="state" widget="statusbar" statusbar_visible="draft,waiting_answer"/> + </header> <sheet string="Survey Request" layout="auto"> <group class="oe_form_header"> <field name="date_deadline"/> diff --git a/addons/web_livechat/i18n/sv.po b/addons/web_livechat/i18n/sv.po new file mode 100644 index 00000000000..dd3ae799443 --- /dev/null +++ b/addons/web_livechat/i18n/sv.po @@ -0,0 +1,28 @@ +# 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 01:37+0100\n" +"PO-Revision-Date: 2012-06-04 15:38+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-05 04:54+0000\n" +"X-Generator: Launchpad (build 15353)\n" + +#. module: web_livechat +#: sql_constraint:publisher_warranty.contract:0 +msgid "That contract is already registered in the system." +msgstr "Det kontraktet har redan registrerats i systemet." + +#. module: web_livechat +#: model:ir.model,name:web_livechat.model_publisher_warranty_contract +msgid "publisher_warranty.contract" +msgstr "publisher_warranty.contract" diff --git a/addons/web_uservoice/i18n/sv.po b/addons/web_uservoice/i18n/sv.po new file mode 100644 index 00000000000..cf2af514acf --- /dev/null +++ b/addons/web_uservoice/i18n/sv.po @@ -0,0 +1,23 @@ +# 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 01:37+0100\n" +"PO-Revision-Date: 2012-06-04 15:37+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-05 04:54+0000\n" +"X-Generator: Launchpad (build 15353)\n" + +#. openerp-web +#: /home/odo/repositories/addons/trunk/web_uservoice/static/src/xml/web_uservoice.xml:6 +msgid "feedback" +msgstr "återkoppling" |
