[MERGE]: Merge with lp:openobject-addons

bzr revid: aag@tinyerp.com-20111025095053-0qv8rkdcrkt27l7f
This commit is contained in:
Atik Agewan (OpenERP) 2011-10-25 15:20:53 +05:30
commit bd5a9e1a47
111 changed files with 24814 additions and 1406 deletions

View File

@ -966,10 +966,17 @@ class account_period(osv.osv):
return False
def find(self, cr, uid, dt=None, context=None):
if context is None: context = {}
if not dt:
dt = time.strftime('%Y-%m-%d')
#CHECKME: shouldn't we check the state of the period?
ids = self.search(cr, uid, [('date_start','<=',dt),('date_stop','>=',dt)])
args = [('date_start', '<=' ,dt), ('date_stop', '>=', dt)]
if context.get('company_id', False):
args.append(('company_id', '=', context['company_id']))
else:
company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
args.append(('company_id', '=', company_id))
ids = self.search(cr, uid, args, context=context)
if not ids:
raise osv.except_osv(_('Error !'), _('No period defined for this date: %s !\nPlease create one.')%dt)
return ids

View File

@ -137,7 +137,7 @@ class account_bank_statement(osv.osv):
states={'confirm':[('readonly',True)]}),
'balance_end_real': fields.float('Ending Balance', digits_compute=dp.get_precision('Account'),
states={'confirm': [('readonly', True)]}),
'balance_end': fields.function(_end_balance,
'balance_end': fields.function(_end_balance,
store = {
'account.bank.statement': (lambda self, cr, uid, ids, c={}: ids, ['line_ids','move_line_ids'], 10),
'account.bank.statement.line': (_get_statement, ['amount'], 10),
@ -219,6 +219,7 @@ class account_bank_statement(osv.osv):
'period_id': st.period_id.id,
'date': st_line.date,
'name': st_line_number,
'ref': st_line.ref,
}, context=context)
account_bank_statement_line_obj.write(cr, uid, [st_line.id], {
'move_ids': [(4, move_id, False)]

View File

@ -209,7 +209,7 @@ class account_invoice(osv.osv):
\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 invoice is paid.\
\n* The \'Cancelled\' state is used when user cancel invoice.'),
'date_invoice': fields.date('Invoice Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]}, select=True, help="Keep empty to use the current date"),
'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 "\
"of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month."),

View File

@ -234,6 +234,7 @@
<field name="payment_ids" colspan="4" nolabel="1" >
<tree string="Payments">
<field name="date" string="Payment Date"/>
<field name="move_id"/>
<field name="ref"/>
<field name="name" groups="base.group_extended"/>
<field name="journal_id"/>
@ -332,6 +333,7 @@
<field name="payment_ids" colspan="4" nolabel="1">
<tree string="Payments">
<field name="date"/>
<field name="move_id"/>
<field name="ref"/>
<field name="name"/>
<field name="journal_id" groups="base.group_user"/>

View File

@ -1714,35 +1714,37 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Payment Term">
<field name="name" select="1"/>
<field name="sequence"/>
<group colspan="2" col="4">
<separator string="Amount Computation" colspan="4"/>
<field name="value" colspan="4"/>
<field name="value_amount" colspan="4" attrs="{'readonly':[('value','=','balance')]}"/>
<group>
<group colspan="2" col="4">
<field name="name" select="1"/>
<separator string="Amount Computation" colspan="4"/>
<field name="value" colspan="4"/>
<field name="value_amount" colspan="4" attrs="{'readonly':[('value','=','balance')]}"/>
</group>
<group colspan="2" col="4">
<field name="sequence"/>
<separator string="Due Date Computation" colspan="4"/>
<field name="days" colspan="4"/>
<field name="days2" colspan="4"/>
</group>
</group>
<group colspan="2" col="4">
<separator string="Due date Computation" colspan="4"/>
<field name="days" colspan="4"/>
<field name="days2" colspan="4"/>
</group>
<label string=""/>
<newline/>
<label string="Example: at 14 net days 2 percents, remaining amount at 30 days end of month." colspan="4"/>
<separator string="Example" colspan="4"/>
<label string="At 14 net days 2 percent, remaining amount at 30 days end of month." colspan="4"/>
<group colspan="2" col="2">
<label string="Line 1:" colspan="2"/>
<label string=" valuation: percent"/>
<label string=" number of days: 14"/>
<label string=" value amount: 0.02"/>
<label string=" day of the month: 0"/>
<label string=" Valuation: Percent"/>
<label string=" Number of Days: 14"/>
<label string=" Value amount: 0.02"/>
<label string=" Day of the Month: 0"/>
</group>
<newline/>
<group colspan="2" col="2">
<label string="Line 2:" colspan="2"/>
<label string=" valuation: balance"/>
<label string=" number of days: 30"/>
<label string=" value amount: n.a"/>
<label string=" day of the month= -1"/>
<label string=" Valuation: Balance"/>
<label string=" Number of Days: 30"/>
<label string=" Value amount: n.a"/>
<label string=" Day of the Month= -1"/>
</group>
</form>
</field>
@ -1769,7 +1771,7 @@
<separator colspan="4" string="Information"/>
<field name="name" select="1"/>
<field name="active" select="1"/>
<separator colspan="4" string="Description on invoices"/>
<separator colspan="4" string="Description On Invoices"/>
<field colspan="4" name="note" nolabel="1"/>
<separator colspan="4" string="Computation"/>
<field colspan="4" name="line_ids" nolabel="1"/>

9130
addons/account/i18n/es_MX.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -38,9 +38,12 @@ class account_chart(osv.osv_memory):
], 'Target Moves', required=True),
}
def _get_fiscalyear(self, cr, uid, context=None):
"""Return default Fiscalyear value"""
return self.pool.get('account.fiscalyear').find(cr, uid, context=context)
def onchange_fiscalyear(self, cr, uid, ids, fiscalyear_id=False, context=None):
res = {}
res['value'] = {}
if fiscalyear_id:
start_period = end_period = False
cr.execute('''
@ -50,7 +53,7 @@ class account_chart(osv.osv_memory):
WHERE f.id = %s
ORDER BY p.date_start ASC
LIMIT 1) AS period_start
UNION
UNION ALL
SELECT * FROM (SELECT p.id
FROM account_period p
LEFT JOIN account_fiscalyear f ON (p.fiscalyear_id = f.id)
@ -63,6 +66,8 @@ class account_chart(osv.osv_memory):
start_period = periods[0]
end_period = periods[1]
res['value'] = {'period_from': start_period, 'period_to': end_period}
else:
res['value'] = {'period_from': False, 'period_to': False}
return res
def account_chart_open_window(self, cr, uid, ids, context=None):
@ -96,7 +101,8 @@ class account_chart(osv.osv_memory):
return result
_defaults = {
'target_move': 'posted'
'target_move': 'posted',
'fiscalyear': _get_fiscalyear,
}
account_chart()

View File

@ -28,7 +28,7 @@ class purchase_order(osv.osv):
def inv_line_create(self, cr, uid, a, ol):
line = super(purchase_order, self).inv_line_create(cr, uid, a, ol)
if ol.product_id:
if ol.product_id and not ol.product_id.type == 'service':
oa = ol.product_id.property_stock_account_input and ol.product_id.property_stock_account_input.id
if not oa:
oa = ol.product_id.categ_id.property_stock_account_input_categ and ol.product_id.categ_id.property_stock_account_input_categ.id

View File

@ -1,6 +1,6 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
@ -15,7 +15,7 @@
# 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/>.
#
##############################################################################
@ -25,7 +25,7 @@
"depends" : ["account"],
"author" : "OpenERP S.A.",
"description": """Financial and accounting asset management.
This Module manages the assets owned by a company or an individual. It will keep track of depreciation's occurred on
This Module manages the assets owned by a company or an individual. It will keep track of depreciation's occurred on
those assets. And it allows to create Move's of the depreciation lines.
""",
"website" : "http://www.openerp.com",
@ -45,7 +45,7 @@
"account_asset_view.xml",
"account_asset_invoice_view.xml",
"report/account_asset_report_view.xml",
],
"active": False,
"installable": True,

View File

@ -18,9 +18,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import account_asset_change_duration
import wizard_asset_compute
import wizard_asset_close
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,51 +0,0 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 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 wizard
import pooler
asset_end_arch = '''<?xml version="1.0"?>
<form string="Close asset">
<separator string="General information" colspan="4"/>
</form>'''
asset_end_fields = {
}
class wizard_asset_close(wizard.interface):
states = {
'init': {
'actions': [],
'result': {'type':'form', 'arch':asset_end_arch, 'fields':asset_end_fields, 'state':[
('end','Cancel'),
('asset_close','End of asset')
]}
},
'asset_close': {
'actions': [],
'result': {'type' : 'state', 'state': 'end'}
}
}
wizard_asset_close('account.asset.close')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -55,6 +55,18 @@
</field>
</record>
<record model="ir.ui.view" id="account_invoice_supplier_form_layout">
<field name="name">account.invoice.supplier.form.layout</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_supplier_form"/>
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='invoice_line']/tree/*[1]" position="before">
<field name="state" invisible="1"/>
</xpath>
</field>
</record>
<!-- notification message views -->
<record model="ir.ui.view" id="view_notify_message_search">
<field name="name">notify.message.search</field>

View File

@ -39,8 +39,6 @@ class account_voucher(osv.osv):
res[voucher.id] = ok
return res
def _get_type(self, cr, uid, context=None):
if context is None:
context = {}
@ -98,7 +96,6 @@ class account_voucher(osv.osv):
journal_id = context.get('journal_id', False)
if journal_id:
journal = journal_pool.browse(cr, uid, journal_id, context=context)
# currency_id = journal.company_id.currency_id.id
if journal.currency:
return journal.currency.id
return False
@ -182,6 +179,14 @@ class account_voucher(osv.osv):
res[voucher.id] = abs(voucher.amount - abs(credit - debit))
return res
def _paid_amount_in_company_currency(self, cr, uid, ids, name, args, context=None):
if not ids: return {}
res = {}
debit = credit = 0.0
for voucher in self.browse(cr, uid, ids, context=context):
res[voucher.id] = voucher.amount / voucher.payment_rate
return res
_name = 'account.voucher'
_description = 'Accounting Voucher'
_order = "date desc, id desc"
@ -242,6 +247,9 @@ class account_voucher(osv.osv):
'comment': fields.char('Counterpart Comment', size=64, required=True, readonly=True, states={'draft': [('readonly', False)]}),
'analytic_id': fields.many2one('account.analytic.account','Write-Off Analytic Account', readonly=True, states={'draft': [('readonly', False)]}),
'writeoff_amount': fields.function(_get_writeoff_amount, string='Reconcile Amount', type='float', readonly=True),
'payment_rate': fields.float('Payment Rate', digits=(12,6), required=True, readonly=True, states={'draft': [('readonly', False)]},
help='The rate between the journal currency and the company currency for this particular payment.'),
'paid_amount_in_company_currency': fields.function(_paid_amount_in_company_currency, string='Paid Amount in Company Currency', type='float', readonly=True),
}
_defaults = {
'period_id': _get_period,
@ -260,6 +268,7 @@ class account_voucher(osv.osv):
'tax_id': _get_tax,
'payment_option': 'without_writeoff',
'comment': _('Write-Off'),
'payment_rate': 1.0,
}
def compute_tax(self, cr, uid, ids, context=None):
@ -409,6 +418,19 @@ class account_voucher(osv.osv):
return default
def onchange_rate(self, cr, uid, ids, rate, amount, context=None):
res = {'value': {'paid_amount_in_company_currency': 0.0}}
if rate and amount:
res['value']['paid_amount_in_company_currency'] = amount / rate
return res
def onchange_amount(self, cr, uid, ids, amount, rate, partner_id, journal_id, currency_id, ttype, date, context=None):
res = self.onchange_partner_id(cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context=context)
vals = self.onchange_rate(cr, uid, ids, rate, amount, context=context)
for key in vals.keys():
res[key].update(vals[key])
return res
def onchange_partner_id(self, cr, uid, ids, partner_id, journal_id, price, currency_id, ttype, date, context=None):
"""
Returns a dict that contains new values and context
@ -421,42 +443,32 @@ class account_voucher(osv.osv):
"""
if context is None:
context = {}
if not journal_id:
return {}
context_multi_currency = context.copy()
if date:
context_multi_currency.update({'date': date})
line_pool = self.pool.get('account.voucher.line')
line_ids = ids and line_pool.search(cr, uid, [('voucher_id', '=', ids[0])]) or False
if line_ids:
line_pool.unlink(cr, uid, line_ids)
currency_pool = self.pool.get('res.currency')
move_line_pool = self.pool.get('account.move.line')
partner_pool = self.pool.get('res.partner')
journal_pool = self.pool.get('account.journal')
line_pool = self.pool.get('account.voucher.line')
vals = self.onchange_journal(cr, uid, ids, journal_id, [], False, partner_id, context)
vals = vals.get('value')
#set default values
default = {
'value': {'line_ids': [] ,'line_dr_ids': [] ,'line_cr_ids': [] ,'pre_line': False,},
}
#drop existing lines
line_ids = ids and line_pool.search(cr, uid, [('voucher_id', '=', ids[0])]) or False
if line_ids:
line_pool.unlink(cr, uid, line_ids)
if not partner_id or not journal_id:
return default
journal = journal_pool.browse(cr, uid, journal_id, context=context)
currency_id = vals.get('currency_id', currency_id)
default = {
'value':{'line_ids':[], 'line_dr_ids':[], 'line_cr_ids':[], 'pre_line': False, 'currency_id':currency_id},
}
currency_id = currency_id or journal.company_id.currency_id.id
if not partner_id:
return default
if not partner_id and ids:
line_ids = line_pool.search(cr, uid, [('voucher_id', '=', ids[0])])
if line_ids:
line_pool.unlink(cr, uid, line_ids)
return default
partner = partner_pool.browse(cr, uid, partner_id, context=context)
currency_id = currency_id or journal.company_id.currency_id.id
account_id = False
if journal.type in ('sale','sale_refund'):
account_id = partner.property_account_receivable.id
@ -484,64 +496,78 @@ class account_voucher(osv.osv):
ids = move_line_pool.search(cr, uid, [('state','=','valid'), ('account_id.type', '=', account_type), ('reconcile_id', '=', False), ('partner_id', '=', partner_id)], context=context)
else:
ids = context['move_line_ids']
invoice_id = context.get('invoice_id', False)
company_currency = journal.company_id.currency_id.id
move_line_found = False
#order the lines by most old first
ids.reverse()
moves = move_line_pool.browse(cr, uid, ids, context=context)
#company_currency = journal.company_id.currency_id.id
#if company_currency != currency_id and ttype == 'payment':
# total_debit = currency_pool.compute(cr, uid, currency_id, company_currency, total_debit, context=context_multi_currency)
#elif company_currency != currency_id and ttype == 'receipt':
# total_credit = currency_pool.compute(cr, uid, currency_id, company_currency, total_credit, context=context_multi_currency)
company_currency = journal.company_id.currency_id.id
for line in moves:
if line.credit and line.reconcile_partial_id and ttype == 'receipt':
continue
if line.debit and line.reconcile_partial_id and ttype == 'payment':
continue
if invoice_id:
if line.invoice.id == invoice_id:
#if the invoice linked to the voucher line is equal to the invoice_id in context
#then we assign the amount on that line, whatever the other voucher lines
move_line_found = line.id
break
elif currency_id == company_currency:
#otherwise treatments is the same but with other field names
if line.amount_residual == price:
#if the amount residual is equal the amount voucher, we assign it to that voucher
#line, whatever the other voucher lines
move_line_found = line.id
break
#otherwise we will split the voucher amount on each line (by most old first)
total_credit += line.credit or 0.0
total_debit += line.debit or 0.0
elif currency_id == line.currency_id.id:
if line.amount_residual_currency == price:
move_line_found = line.id
break
total_credit += line.credit and line.amount_currency or 0.0
total_debit += line.debit and line.amount_currency or 0.0
if line.currency_id and currency_id==line.currency_id.id:
total_credit += line.amount_currency <0 and -line.amount_currency or 0.0
total_debit += line.amount_currency >0 and line.amount_currency or 0.0
else:
total_credit += currency_pool.compute(cr, uid, company_currency, currency_id, line.credit or 0.0)
total_debit += currency_pool.compute(cr, uid, company_currency, currency_id, line.debit or 0.0)
#voucher line creation
for line in moves:
if line.credit and line.reconcile_partial_id and ttype == 'receipt':
continue
if line.debit and line.reconcile_partial_id and ttype == 'payment':
continue
if line.currency_id and currency_id==line.currency_id.id:
amount_original = abs(line.amount_currency)
amount_unreconciled = abs(line.amount_residual_currency)
else:
amount_original = currency_pool.compute(cr, uid, company_currency, currency_id, line.credit or line.debit or 0.0)
amount_unreconciled = currency_pool.compute(cr, uid, company_currency, currency_id, abs(line.amount_residual))
#original_amount = line.credit or line.debit or 0.0
#amount_unreconciled = currency_pool.compute(cr, uid, line.currency_id and line.currency_id.id or company_currency, currency_id, abs(line.amount_residual_currency), context=context_multi_currency)
rs = {
'name':line.move_id.name,
'type': line.credit and 'dr' or 'cr',
'move_line_id':line.id,
'account_id':line.account_id.id,
'amount_original': amount_original,
'amount': (move_line_found == line.id) and min(price, amount_unreconciled) or 0.0,
'date_original':line.date,
'date_due':line.date_maturity,
'amount_unreconciled': amount_unreconciled,
}
if line.credit:
amount = min(amount_unreconciled, total_debit)
rs['amount'] = amount
total_debit -= amount
else:
amount = min(amount_unreconciled, total_credit)
rs['amount'] = amount
total_credit -= amount
#split voucher amount by most old first, but only for lines in the same currency
if not move_line_found:
line_currency_id = line.currency_id and line.currency_id.id or company_currency
if currency_id == line_currency_id:
if line.credit:
amount = min(amount_unreconciled, abs(total_debit))
rs['amount'] = amount
total_debit -= amount
else:
amount = min(amount_unreconciled, abs(total_credit))
rs['amount'] = amount
total_credit -= amount
default['value']['line_ids'].append(rs)
if rs['type'] == 'cr':
@ -556,23 +582,30 @@ class account_voucher(osv.osv):
default['value']['writeoff_amount'] = self._compute_writeoff_amount(cr, uid, default['value']['line_dr_ids'], default['value']['line_cr_ids'], price)
return default
def onchange_date(self, cr, uid, ids, partner_id, journal_id, price, currency_id, ttype, date, context=None):
def onchange_date(self, cr, uid, ids, date, currency_id, amount, context=None):
"""
@param date: latest value from user input for field date
@param args: other arguments
@param context: context arguments, like lang, time zone
@return: Returns a dict which contains new values, and context
"""
res = {'value': {}}
#set the period of the voucher
period_pool = self.pool.get('account.period')
res = self.onchange_partner_id(cr, uid, ids, partner_id, journal_id, price, currency_id, ttype, date, context=context)
pids = period_pool.search(cr, uid, [('date_start', '<=', date), ('date_stop', '>=', date)])
if pids:
if not 'value' in res:
res['value'] = {}
res['value'].update({'period_id':pids[0]})
#set the default payment rate of the voucher and compute the paid amount in company currency
payment_rate = 1.0
if currency_id:
payment_rate = self.pool.get('res.currency').browse(cr, uid, currency_id, context={'date': date}).rate
res['value'].update({'payment_rate': payment_rate})
vals = self.onchange_rate(cr, uid, ids, payment_rate, amount, context=context)
for key in vals.keys():
res[key].update(vals[key])
return res
def onchange_journal(self, cr, uid, ids, journal_id, line_ids, tax_id, partner_id, context=None):
def onchange_journal(self, cr, uid, ids, journal_id, line_ids, tax_id, partner_id, date, amount, ttype, context=None):
if not journal_id:
return False
journal_pool = self.pool.get('account.journal')
@ -583,11 +616,19 @@ class account_voucher(osv.osv):
tax_id = account_id.tax_ids[0].id
vals = self.onchange_price(cr, uid, ids, line_ids, tax_id, partner_id, context)
vals['value'].update({'tax_id':tax_id})
currency_id = False #journal.company_id.currency_id.id
vals['value'].update({'tax_id':tax_id,'amount': amount})
currency_id = False
if journal.currency:
currency_id = journal.currency.id
vals['value'].update({'currency_id':currency_id})
payment_rate = self.pool.get('res.currency').browse(cr, uid, currency_id, context={'date': date}).rate
vals['value'].update({'payment_rate': payment_rate})
res = self.onchange_rate(cr, uid, ids, payment_rate, amount, context=context)
for key in res.keys():
vals[key].update(res[key])
vals['value'].update({'currency_id': currency_id})
res = self.onchange_partner_id(cr, uid, ids, partner_id, journal_id, amount, currency_id, ttype, date, context)
for key in res.keys():
vals[key].update(res[key])
return vals
def proforma_voucher(self, cr, uid, ids, context=None):
@ -631,7 +672,6 @@ class account_voucher(osv.osv):
raise osv.except_osv(_('Invalid action !'), _('Cannot delete Voucher(s) which are already opened or paid !'))
return super(account_voucher, self).unlink(cr, uid, ids, context=context)
# TODO: may be we can remove this method if not used anyware
def onchange_payment(self, cr, uid, ids, pay_now, journal_id, partner_id, ttype='sale'):
res = {}
if not partner_id:
@ -690,9 +730,9 @@ class account_voucher(osv.osv):
# TODO: Make this logic available.
# -for sale, purchase we have but for the payment and receipt we do not have as based on the bank/cash journal we can not know its payment or receipt
if voucher_brw.type in ('purchase', 'payment'):
credit = currency_obj.compute(cr, uid, current_currency, company_currency, voucher_brw.amount, context=context)
credit = voucher_brw.amount / voucher_brw.payment_rate
elif voucher_brw.type in ('sale', 'receipt'):
debit = currency_obj.compute(cr, uid, current_currency, company_currency, voucher_brw.amount, context=context)
debit = voucher_brw.amount / voucher_brw.payment_rate
if debit < 0: credit = -debit; debit = 0.0
if credit < 0: debit = -credit; credit = 0.0
sign = debit - credit < 0 and -1 or 1
@ -817,10 +857,10 @@ class account_voucher(osv.osv):
continue
#we check if the voucher line is fully paid or not and create a move line to balance the payment and initial invoice if needed
if line.amount == line.amount_unreconciled:
amount = currency_obj.compute(cr, uid, current_currency, company_currency, line.untax_amount or line.amount, context=context)
amount = (line.untax_amount or line.amount) / voucher_brw.payment_rate
amount_residual = line.move_line_id.amount_residual - amount #residual amount in company currency
else:
amount = currency_obj.compute(cr, uid, current_currency, company_currency, line.untax_amount or line.amount, context=context)
amount = (line.untax_amount or line.amount) / voucher_brw.payment_rate
amount_residual = 0.0
move_line = {
'journal_id': voucher_brw.journal_id.id,
@ -970,9 +1010,9 @@ class account_voucher(osv.osv):
line_total = move_line_brw.debit - move_line_brw.credit
rec_list_ids = []
if voucher.type == 'sale':
line_total = line_total - currency_pool.compute(cr, uid, current_currency, company_currency, voucher.tax_amount, context=context)
line_total = line_total - (voucher.tax_amount / voucher.payment_rate)
elif voucher.type == 'purchase':
line_total = line_total + currency_pool.compute(cr, uid, current_currency, company_currency, voucher.tax_amount, context=context)
line_total = line_total + (voucher.tax_amount / voucher.payment_rate)
#create one move line per voucher line where amount is not 0.0
line_total, rec_list_ids = self.voucher_move_line_create(cr, uid, voucher.id, line_total, move_id, company_currency, current_currency, context)
@ -1172,17 +1212,10 @@ class account_bank_statement_line(osv.osv):
def _amount_reconciled(self, cursor, user, ids, name, args, context=None):
if not ids:
return {}
res = {}
# company_currency_id = False
for line in self.browse(cursor, user, ids, context=context):
# if not company_currency_id:
# company_currency_id = line.company_id.id
if line.voucher_id:
res[line.id] = line.voucher_id.amount#
# res_currency_obj.compute(cursor, user,
# company_currency_id, line.statement_id.currency.id,
# line.voucher_id.amount, context=context)
else:
res[line.id] = 0.0
return res
@ -1203,7 +1236,6 @@ class account_bank_statement_line(osv.osv):
'amount_reconciled': fields.function(_amount_reconciled,
string='Amount reconciled', type='float'),
'voucher_id': fields.many2one('account.voucher', 'Payment'),
}
def unlink(self, cr, uid, ids, context=None):

View File

@ -45,10 +45,11 @@ class invoice(osv.osv):
'close_after_process': True,
'invoice_type':inv.type,
'invoice_id':inv.id,
'default_type': inv.type in ('out_invoice','out_refund') and 'receipt' or 'payment'
'default_type': inv.type in ('out_invoice','out_refund') and 'receipt' or 'payment',
'type': inv.type in ('out_invoice','out_refund') and 'receipt' or 'payment'
}
}
invoice()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -149,12 +149,13 @@
'partner_id': ref('res_partner_strauss0'),
'period_id': ref('account.period_3'),
'type': 'receipt',
'date': time.strftime("%Y-03-01"),
'date': time.strftime("%Y-%m-%d"),
'payment_option': 'with_writeoff',
'writeoff_acc_id': ref('account.a_expense'),
'comment': 'Write Off',
'name': 'First payment',
}
vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-03-01'), ref('base.USD'), 240)['value'])
if not res['value']['line_cr_ids']:
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
for item in res['value']['line_cr_ids']:
@ -247,12 +248,13 @@
'partner_id': ref('res_partner_strauss0'),
'period_id': ref('account.period_3'),
'type': 'receipt',
'date': time.strftime("%Y-04-01"),
'date': time.strftime("%Y-%m-%d"),
'payment_option': 'with_writeoff',
'writeoff_acc_id': ref('account.a_expense'),
'comment': 'Write Off',
'name': 'Second payment',
}
vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-04-01'), ref('base.USD'), 45.0)['value'])
if not res['value']['line_cr_ids']:
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
for item in res['value']['line_cr_ids']:

View File

@ -239,12 +239,13 @@
'partner_id': ref('res_partner_clements0'),
'period_id': ref('account.period_3'),
'type': 'payment',
'date': time.strftime("%Y-04-01"),
'date': time.strftime("%Y-%m-%d"),
'payment_option': 'with_writeoff',
'writeoff_acc_id': ref('account.a_expense'),
'comment': 'Write Off',
'name': 'Second payment',
}
vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-04-01'), ref('base.USD'), 45.0)['value'])
if not res['value']['line_dr_ids']:
res['value']['line_dr_ids'] = [{'type': 'dr', 'account_id': ref('account.a_pay'),}]
for item in res['value']['line_dr_ids']:

View File

@ -155,12 +155,12 @@
!python {model: account.voucher}: |
import netsvc, time
vals = {}
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michael0"), ref('bank_journal_EUR'), 240.0, 2, ttype='receipt', date=False)
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michael0"), ref('bank_journal_EUR'), 240.0, False, ttype='receipt', date=False)
vals = {
'account_id': ref('account.cash'),
'amount': 200.0,
'company_id': ref('base.main_company'),
'currency_id': ref('base.EUR'),
'currency_id': False,
'journal_id': ref('bank_journal_EUR'),
'partner_id': ref('res_partner_michael0'),
'period_id': ref('account.period_3'),
@ -220,8 +220,9 @@
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)])
move_line = move_line_obj.browse(cr, uid, move_lines[0])
print move_line.amount_residual, move_line.amount_residual_currency
assert (move_line.amount_residual_currency == 55.56 and move_line.amount_residual == 20) , "Residual amount is not correct for first Invoice"
- toto
-
I check the residual amuont of Invoice2, should be 22.22 in residual currency and 10 in amount_residual
-
!python {model: account.invoice}: |
@ -247,13 +248,14 @@
'partner_id': ref('res_partner_michael0'),
'period_id': ref('account.period_3'),
'type': 'receipt',
'date': time.strftime("%Y-04-01"),
'date': time.strftime("%Y-%m-%d"),
'payment_option': 'with_writeoff',
'writeoff_acc_id': ref('account.a_expense'),
'exchange_acc_id': ref('account.o_expense'),
'comment': 'Write Off',
'name': 'Second payment',
}
vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-04-01'), ref('base.USD'), 80.0)['value'])
if not res['value']['line_cr_ids']:
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
for item in res['value']['line_cr_ids']:

View File

@ -155,7 +155,7 @@
!python {model: account.voucher}: |
import netsvc, time
vals = {}
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michal1"), ref('bank_journal_EUR'), 200.0, 2, ttype='receipt', date=False)
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michal1"), ref('bank_journal_EUR'), 200.0, False, ttype='receipt', date=False)
vals = {
'account_id': ref('account.cash'),
'amount': 200.0,
@ -240,7 +240,7 @@
!python {model: account.voucher}: |
import netsvc, time
vals = {}
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michal1"), ref('bank_journal_USD'), 80.0, 2, ttype='receipt', date=False)
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michal1"), ref('bank_journal_USD'), 80.0, ref('base.USD'), ttype='receipt', date=False)
vals = {
'account_id': ref('account.cash'),
'amount': 80.0,
@ -250,13 +250,14 @@
'partner_id': ref('res_partner_michal1'),
'period_id': ref('account.period_3'),
'type': 'receipt',
'date': time.strftime("%Y-04-01"),
'date': time.strftime("%Y-%m-%d"),
'payment_option': 'with_writeoff',
'writeoff_acc_id': ref('account.a_expense'),
'exchange_acc_id': ref('account.o_expense'),
'comment': 'Write Off',
'name': 'Second payment',
}
vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-04-01'), ref('base.USD'), 80.0)['value'])
if not res['value']['line_cr_ids']:
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
for item in res['value']['line_cr_ids']:

View File

@ -118,7 +118,7 @@
!python {model: account.voucher}: |
import netsvc, time
vals = {}
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_peter0"), ref('bank_journal_EUR'), 120.00, 2, ttype='receipt', date=False)
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_peter0"), ref('bank_journal_EUR'), 120.00, False, ttype='receipt', date=False)
vals = {
'account_id': ref('account.cash'),
'amount': 120.00,
@ -210,7 +210,7 @@
!python {model: account.voucher}: |
import netsvc, time
vals = {}
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_peter0"), ref('bank_journal_EUR'), 120.00, 2, ttype='receipt', date=False)
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_peter0"), ref('bank_journal_EUR'), 120.00, False, ttype='receipt', date=False)
vals = {
'account_id': ref('account.cash'),
'amount': 120.00,

View File

@ -97,7 +97,7 @@
!python {model: account.voucher}: |
import netsvc, time
vals = {}
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_john0"), ref('bank_journal_CHF'), 200.00, 2, ttype='receipt', date=False)
res = self.onchange_partner_id(cr, uid, [], ref("res_partner_john0"), ref('bank_journal_CHF'), 200.00, ref('base.CHF'), ttype='receipt', date=False)
vals = {
'account_id': ref('account.cash'),
'amount': 200.00,
@ -107,13 +107,14 @@
'partner_id': ref('res_partner_john0'),
'period_id': ref('account.period_3'),
'type': 'receipt',
'date': time.strftime("%Y-03-01"),
'date': time.strftime("%Y-%m-%d"),
'payment_option': 'with_writeoff',
'writeoff_acc_id': ref('account.a_expense'),
'exchange_acc_id': ref('account.o_expense'),
'comment': 'Write Off',
'name': 'First payment',
}
vals.update(self.onchange_date(cr, uid, [], time.strftime('%Y-03-01'), ref('base.CHF'), 200.0)['value'])
if not res['value']['line_cr_ids']:
res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}]
for item in res['value']['line_cr_ids']:

View File

@ -74,14 +74,14 @@
<field name="arch" type="xml">
<form string="Bill Payment">
<group col="6" colspan="4">
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)" context="{'invoice_currency':currency_id}" string="Supplier"/>
<field name="amount" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)"/>
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" context="{'invoice_currency':currency_id}" string="Supplier"/>
<field name="amount" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, context)"/>
<field name="journal_id"
domain="[('type','in',['bank', 'cash'])]"
widget="selection" select="1"
on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)"
on_change="onchange_journal(journal_id, line_dr_ids, False, partner_id, date, amount, type, context)"
string="Payment Method"/>
<field name="date" select="1" on_change="onchange_date(partner_id, journal_id, amount, currency_id, type, date)"/>
<field name="date" select="1" on_change="onchange_date(date, currency_id, amount, context)"/>
<field name="reference" select="1" string="Payment Ref"/>
<field name="name" colspan="2"/>
<field name="account_id"
@ -92,7 +92,7 @@
</group>
<notebook colspan="4">
<page string="Payment Information">
<field name="line_dr_ids" attrs="{'invisible': [('type', '=', 'receipt')]}" default_get="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" colspan="4" nolabel="1" height="140" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount)">
<field name="line_dr_ids" attrs="{'invisible': [('type', '=', 'receipt')]}" default_get="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" colspan="4" nolabel="1" height="140" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, context)">
<tree string="Open Supplier Journal Entries" editable="bottom">
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
on_change="onchange_move_line_id(move_line_id)"
@ -106,7 +106,7 @@
<field name="amount" sum="Payment"/>
</tree>
</field>
<field name="line_cr_ids" colspan="4" nolabel="1" attrs="{'invisible': [('type', '=', 'payment')]}" default_get="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount)">
<field name="line_cr_ids" colspan="4" nolabel="1" attrs="{'invisible': [('type', '=', 'payment')]}" default_get="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, context)">
<tree string="Open Customer Journal Entries" editable="bottom">
<field name="move_line_id"/>
<field name="account_id" groups="base.group_extended" domain="[('type','=','receivable')]"/>
@ -122,6 +122,8 @@
<group col="2" colspan="1">
<separator string="Other Information" colspan="2"/>
<field name="currency_id"/>
<field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, context)" groups='base.group_extended'/>
<field name="paid_amount_in_company_currency" groups='base.group_extended'/>
<field name="number"/>
</group>
</page>
@ -137,15 +139,15 @@
<field name="arch" type="xml">
<form string="Bill Payment">
<group col="6" colspan="4">
<field name="partner_id" domain="[('supplier','=',True)]" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)" context="{'invoice_currency':currency_id}" string="Supplier"/>
<field name="amount" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)"/>
<field name="partner_id" domain="[('supplier','=',True)]" 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}" string="Supplier"/>
<field name="amount" invisible="context.get('line_type', False)" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, context)"/>
<field name="journal_id"
domain="[('type','in',['bank', 'cash'])]"
invisible="context.get('line_type', False)"
widget="selection" select="1"
on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)"
on_change="onchange_journal(journal_id, line_dr_ids, False, partner_id, date, amount, type, context)"
string="Payment Method"/>
<field name="date" select="1" invisible="context.get('line_type', False)" on_change="onchange_date(partner_id, journal_id, amount, currency_id, type, date)"/>
<field name="date" select="1" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, amount, 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="company_id" widget="selection" groups="base.group_multi_company"/>
@ -186,12 +188,14 @@
<field name="narration" colspan="2" nolabel="1"/>
</group>
<group col="2" colspan="1">
<group col="2" colspan="1">
<group col="2" colspan="1" attrs="{'invisible':[('currency_id','=',False)]}">
<separator string="Currency Options" colspan="2"/>
<field name="exchange_acc_id"
attrs="{'invisible':[('currency_id','=',False)]}"
domain="[('type','=','other')]"/>
<field name="analytic_id"
groups="analytic.group_analytic_accounting"/>
<field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, context)" groups='base.group_extended'/>
<field name="paid_amount_in_company_currency" groups='base.group_extended'/>
</group>
<group col="2" colspan="1">
<separator string="Payment Options" colspan="2"/>
<field name="payment_option" required="1"/>
<field name="writeoff_amount"
@ -201,12 +205,13 @@
domain="[('type','=','other')]"/>
<field name="comment"
attrs="{'invisible':[('payment_option','!=','with_writeoff')]}"/>
<field name="analytic_id"
groups="analytic.group_analytic_accounting"/>
</group>
<separator string="Other Information" colspan="2"/>
<group col="2" colspan="1">
<field name="number"/>
<field name="currency_id" invisible="1"/>
<group col="4" colspan="2">
<separator string="Other Information" colspan="4"/>
<field name="number" colspan="4"/>
<field name="currency_id" invisible="1" colspan="4"/>
</group>
</group>
</page>
@ -279,19 +284,19 @@
<field name="arch" type="xml">
<form string="Customer Payment">
<group col="6" colspan="4">
<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)" string="Customer"/>
<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)" string="Customer"/>
<field name="currency_id" invisible="1"/>
<field name="amount"
invisible="context.get('line_type', False)"
string="Paid Amount"
on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)"/>
on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, context)"/>
<field name="journal_id"
domain="[('type','in',['bank', 'cash'])]"
invisible="context.get('line_type', False)"
widget="selection" select="1"
on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)"
on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, context)"
string="Payment Method"/>
<field name="date" select="1" invisible="context.get('line_type', False)" on_change="onchange_date(partner_id, journal_id, amount, currency_id, type, date)"/>
<field name="date" select="1" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, amount, 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="company_id" widget="selection" groups="base.group_multi_company"/>
@ -303,7 +308,7 @@
</group>
<notebook colspan="4">
<page string="Payment Information">
<field name="line_cr_ids" default_get="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" colspan="4" nolabel="1" height="140" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount)">
<field name="line_cr_ids" default_get="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" colspan="4" nolabel="1" height="140" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, context)">
<tree string="Invoices and outstanding transactions" editable="bottom">
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
on_change="onchange_move_line_id(move_line_id)"
@ -318,7 +323,7 @@
<field name="amount" sum="Payment"/>
</tree>
</field>
<field name="line_dr_ids" colspan="4" nolabel="1" attrs="{'invisible': [('pre_line','=',False)]}" default_get="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount)">
<field name="line_dr_ids" colspan="4" nolabel="1" attrs="{'invisible': [('pre_line','=',False)]}" default_get="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, context)">
<tree string="Credits" editable="bottom">
<field name="move_line_id"/>
<field name="account_id" groups="base.group_extended" domain="[('type','=','receivable')]"/>
@ -332,13 +337,15 @@
<field name="narration" colspan="2" nolabel="1"/>
</group>
<group col="2" colspan="1">
<group col="2" colspan="1" attrs="{'invisible':[('currency_id','=',False)]}">
<separator string="Currency Options" colspan="2"/>
<field name="exchange_acc_id"
domain="[('type','=','other')]"/>
<field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, context)" groups='base.group_extended'/>
<field name="paid_amount_in_company_currency" groups='base.group_extended'/>
</group>
<group col="2" colspan="1">
<separator string="Payment Options" colspan="2"/>
<field name="analytic_id"
groups="analytic.group_analytic_accounting"/>
<field name="exchange_acc_id"
attrs="{'invisible':[('currency_id','=',False)]}"
domain="[('type','=','other')]"/>
<field name="payment_option" required="1"/>
<field name="writeoff_amount"
attrs="{'invisible':[('payment_option','!=','with_writeoff')]}"/>
@ -347,10 +354,12 @@
domain="[('type','=','other')]"/>
<field name="comment"
attrs="{'invisible':[('payment_option','!=','with_writeoff')]}"/>
<field name="analytic_id"
groups="analytic.group_analytic_accounting"/>
</group>
<separator string="Other Information" colspan="2"/>
<group col="4" colspan="1">
<field name="number"/>
<group col="4" colspan="2">
<separator string="Other Information" colspan="4"/>
<field name="number" colspan="4"/>
</group>
</group>
</page>

View File

@ -82,9 +82,9 @@
<field name="arch" type="xml">
<form string="Sales Receipt">
<group col="6" colspan="4">
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)" string="Customer"/>
<field name="date" on_change="onchange_date(partner_id, journal_id, amount, currency_id, type, date)"/>
<field name="journal_id" domain="[('type','in',['sale','sale_refund'])]" widget="selection" on_change="onchange_journal(journal_id, line_cr_ids, tax_id, partner_id)"/>
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer"/>
<field name="date" on_change="onchange_date(date, currency_id, amount, context)"/>
<field name="journal_id" domain="[('type','in',['sale','sale_refund'])]" widget="selection" on_change="onchange_journal(journal_id, line_cr_ids, tax_id, partner_id, date, amount, type, context)"/>
<field name="number"/>
<field name="name" colspan="2"/>
<field name="company_id" select="1" widget="selection" groups="base.group_multi_company"/>
@ -209,9 +209,9 @@
<field name="arch" type="xml">
<form string="Supplier Voucher">
<group col="6" colspan="4">
<field name="partner_id" domain="[('supplier','=',True)]" required="1" string="Supplier" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)"/>
<field name="date" string="Bill Date" select="1" on_change="onchange_date(partner_id, journal_id, amount, currency_id, type, date)"/>
<field name="journal_id" domain="[('type','in',['purchase','purchase_refund'])]" widget="selection" select="1" on_change="onchange_journal(journal_id, line_dr_ids, tax_id, partner_id)"/>
<field name="partner_id" domain="[('supplier','=',True)]" required="1" string="Supplier" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)"/>
<field name="date" string="Bill Date" select="1" on_change="onchange_date(date, currency_id, amount, context)"/>
<field name="journal_id" domain="[('type','in',['purchase','purchase_refund'])]" widget="selection" select="1" on_change="onchange_journal(journal_id, line_dr_ids, tax_id, partner_id, date, amount, type, context)"/>
<field name="number"/>
<field name="name" colspan="2"/>
<field name="reference" select="1"/>

View File

@ -995,15 +995,24 @@ class calendar_event(osv.osv):
"""
result = {}
if not isinstance(ids, list):
ids = [ids]
for datas in self.read(cr, uid, ids, ['id','byday','recurrency', 'month_list','end_date', 'rrule_type', 'select1', 'interval', 'count', 'end_type', 'mo', 'tu', 'we', 'th', 'fr', 'sa', 'su', 'exrule', 'day', 'week_list' ], context=context):
event = datas['id']
if datas.get('interval', 0) < 0:
raise osv.except_osv(_('Warning!'), _('Interval cannot be negative'))
if datas.get('count', 0) < 0:
raise osv.except_osv(_('Warning!'), _('Count cannot be negative'))
result[event] = self.compute_rule_string(datas)
if datas['recurrency']:
result[event] = self.compute_rule_string(datas)
else:
result[event] = ""
return result
_columns = {
'id': fields.integer('ID', readonly=True),
'sequence': fields.integer('Sequence'),
@ -1072,6 +1081,7 @@ rule or repeating pattern of time to exclude from the recurring rule."),
'recurrency': fields.boolean('Recurrent', help="Recurrent Meeting"),
'edit_all': fields.boolean('Edit All', help="Edit all Occurrences of recurrent Meeting."),
}
def default_organizer(self, cr, uid, context=None):
user_pool = self.pool.get('res.users')
user = user_pool.browse(cr, uid, uid, context=context)
@ -1177,7 +1187,6 @@ rule or repeating pattern of time to exclude from the recurring rule."),
@param self: the object pointer
@param datas: dictionary of freq and interval value.
"""
def get_week_string(freq, datas):
weekdays = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su']
if freq == 'weekly':
@ -1211,9 +1220,88 @@ rule or repeating pattern of time to exclude from the recurring rule."),
interval_srting = datas.get('interval') and (';INTERVAL=' + str(datas.get('interval'))) or ''
return 'FREQ=' + freq.upper() + get_week_string(freq, datas) + interval_srting + get_end_date(datas) + get_month_string(freq, datas)
def _get_empty_rrule_data(self):
return {
'byday' : False,
'recurrency' : False,
'end_date' : False,
'rrule_type' : False,
'select1' : False,
'interval' : 0,
'count' : False,
'end_type' : False,
'mo' : False,
'tu' : False,
'we' : False,
'th' : False,
'fr' : False,
'sa' : False,
'su' : False,
'exrule' : False,
'day' : False,
'week_list' : False
}
def _write_rrule(self, cr, uid, ids, field_value, rule_date=False, context=None):
data = self._get_empty_rrule_data()
if field_value:
data['recurrency'] = True
for event in self.browse(cr, uid, ids, context=context):
rdate = rule_date or event.date
update_data = self._parse_rrule(field_value, dict(data), rdate)
data.update(update_data)
#parse_rrule
self.write(cr, uid, event.id, data, context=context)
def _parse_rrule(self, rule, data, date_start):
day_list = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su']
rrule_type = ['yearly', 'monthly', 'weekly', 'daily']
r = rrule.rrulestr(rule, dtstart=datetime.strptime(date_start, "%Y-%m-%d %H:%M:%S"))
if r._freq > 0 and r._freq < 4:
data['rrule_type'] = rrule_type[r._freq]
data['count'] = r._count
data['interval'] = r._interval
data['end_date'] = r._until and r._until.strftime("%Y-%m-%d %H:%M:%S")
#repeat weekly
if r._byweekday:
for i in xrange(0,7):
if i in r._byweekday:
data[day_list[i]] = True
data['rrule_type'] = 'weekly'
#repeat monthly bynweekday ((weekday, weeknumber), )
if r._bynweekday:
data['week_list'] = day_list[r._bynweekday[0][0]].upper()
data['byday'] = r._bynweekday[0][1]
data['select1'] = 'day'
data['rrule_type'] = 'monthly'
if r._bymonthday:
data['day'] = r._bymonthday[0]
data['select1'] = 'date'
data['rrule_type'] = 'monthly'
#yearly but for openerp it's monthly, take same information as monthly but interval is 12 times
if r._bymonth:
data['interval'] = data['interval'] * 12
#FIXEME handle forever case
#end of recurrence
#in case of repeat for ever that we do not support right now
if not (data.get('count') or data.get('end_date')):
data['count'] = 100
if data.get('count'):
data['end_type'] = 'count'
else:
data['end_type'] = 'end_date'
return data
def remove_virtual_id(self, ids):
if isinstance(ids, (str, int)):
if isinstance(ids, (str, int, long)):
return base_calendar_id2real_id(ids)
if isinstance(ids, (list, tuple)):
@ -1243,7 +1331,6 @@ rule or repeating pattern of time to exclude from the recurring rule."),
if until_date:
continue
until_date = arg[2]
res = super(calendar_event, self).search(cr, uid, args_without_date, \
0, 0, order, context, count=False)
res = self.get_recurrent_ids(cr, uid, res, start_date, until_date, limit, context=context)
@ -1289,6 +1376,9 @@ rule or repeating pattern of time to exclude from the recurring rule."),
select = [ids]
else:
select = ids
new_ids = []
res = False
for event_id in select:
@ -1339,6 +1429,13 @@ rule or repeating pattern of time to exclude from the recurring rule."),
context=context)
vals.update(updated_vals.get('value', {}))
if new_ids:
if 'rrule' in vals.keys():
if 'date' in vals.keys():
date_to_write = vals['date']
else:
date_to_write = False
self._write_rrule(cr, uid, new_ids, vals['rrule'], date_to_write, context)
res = super(calendar_event, self).write(cr, uid, new_ids, vals, context=context)
if ('alarm_id' in vals or 'base_calendar_alarm_id' in vals)\
@ -1396,13 +1493,13 @@ rule or repeating pattern of time to exclude from the recurring rule."),
if fields and 'duration' not in fields:
fields.append('duration')
real_data = super(calendar_event, self).read(cr, uid,
[real_id for base_calendar_id, real_id in select],
fields=fields, context=context, load=load)
real_data = dict(zip([x['id'] for x in real_data], real_data))
for base_calendar_id, real_id in select:
#REVET: Revision ID: olt@tinyerp.com-20100924131709-cqsd1ut234ni6txn
res = super(calendar_event, self).read(cr, uid, real_id, fields=fields, context=context, load=load)
if not res :
continue
res = real_data[real_id].copy()
ls = base_calendar_id2real_id(base_calendar_id, with_date=res and res.get('duration', 0) or 0)
if not isinstance(ls, (str, int, long)) and len(ls) >= 2:
res['date'] = ls[1]
@ -1465,6 +1562,11 @@ rule or repeating pattern of time to exclude from the recurring rule."),
if vals.get('vtimezone', '') and vals.get('vtimezone', '').startswith('/freeassociation.sourceforge.net/tzfile/'):
vals['vtimezone'] = vals['vtimezone'][40:]
if 'date' in vals and 'rrule' in vals and vals['rrule']:
update_datas = self._parse_rrule(vals['rrule'], self._get_empty_rrule_data(), vals['date'])
update_datas['recurrency'] = True
vals.update(update_datas)
updated_vals = self.onchange_dates(cr, uid, [],
vals.get('date', False),

View File

@ -78,6 +78,7 @@
<field name="sent_by_uid" string="Invitation From" />
<field name="role" string="My Role"/>
<field name="user_id" invisible="1"/>
<field name="partner_address_id" invisible="1"/>
<field name="cutype" string="Invitation type"/>
<field name="state" />
<field name="rsvp" string="Required to Join"/>

View File

@ -15,7 +15,7 @@
Now I will set recurrence for this event to occur monday and friday of week
-
!python {model: calendar.event}: |
data = {'fr': 1, 'mo': 1, 'interval': 1, 'rrule_type': 'weekly', 'end_type': 'end_date', 'end_date': '2011-05-31 00:00:00'}
data = {'fr': 1, 'mo': 1, 'interval': 1, 'rrule_type': 'weekly', 'end_type': 'end_date', 'end_date': '2011-05-31 00:00:00', 'recurrency' : True}
self.write(cr, uid, [ref("calendar_event_technicalpresentation0")], data)
- |
In order to check that recurrent events are views successfully in calendar view,

View File

@ -143,6 +143,17 @@ class res_partner_address(osv.osv):
res.append((r['id'], addr.strip() or '/'))
return res
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
if not args:
args=[]
ids = self.search(cr, user, [('name',operator,name)] + args, limit=limit, context=context)
jobs = self.pool.get('res.partner.job')
if name:
job_ids = jobs.search(cr, user, [('contact_id', operator, name)] + args, limit=limit, context=context)
for job in jobs.browse(cr, user, job_ids):
ids += [job.address_id.id]
return self.name_get(cr, user, ids, context)
_name = 'res.partner.address'
_inherit = 'res.partner.address'
_description ='Partner Address'

View File

@ -42,7 +42,7 @@ using it, otherwise it may crash.
'website': 'http://www.openerp.com',
'depends': ['base'],
'init_xml': [],
'update_xml': ['base_module_quality_wizard.xml', 'base_module_quality_view.xml', 'security/ir.model.access.csv'],
'update_xml': ['wizard/module_quality_check_view.xml', 'wizard/quality_save_report_view.xml', 'base_module_quality_view.xml', 'security/ir.model.access.csv'],
'demo_xml': [],
'installable': True,
'active': False,

View File

@ -296,7 +296,7 @@ class module_quality_detail(osv.osv):
'summary': fields.text('Summary'),
'detail': fields.text('Details'),
'message': fields.char('Message', size=64),
'state': fields.selection([('done','Done'),('skipped','Skipped'),], 'State', size=6, help='The test will be completed only if the module is installed or if the test may be processed on uninstalled module.'),
'state': fields.selection([('done','Done'),('skipped','Skipped'),], 'State', size=24, help='The test will be completed only if the module is installed or if the test may be processed on uninstalled module.'),
}
module_quality_detail()

View File

@ -44,7 +44,7 @@
<field name="state" readonly="1"/>
</page>
<page string="Detail">
<button name="%(quality_detail_save)d" string="Save Report" type="action"/>
<button name="%(action_view_quality_save_report)d" string="Save Report" type="action"/>
<field name="detail" widget="text_html" nolabel="1" colspan="4" readonly="1"/>
</page>
</notebook>

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<wizard id="quality_detail_save" model="ir.module.module" name="quality_detail_save" string="Report Save" menu="False"/>
<wizard string="Quality Check"
model="ir.module.module"
name="create_quality_check_wiz"
id="create_quality_check_id"
menu="True"/>
</data>
</openerp>

View File

@ -19,28 +19,25 @@
#
##############################################################################
import os
import wizard
from tools.translate import _
import pooler
from osv import osv, fields
class quality_check(wizard.interface):
class quality_check(osv.osv_memory):
_name = "quality.check"
_description = "Module Quality Check"
def _create_quality_check(self, cr, uid, data, context=None):
pool = pooler.get_pool(cr.dbname)
obj_quality = pool.get('module.quality.check')
objs = []
for id in data['ids']:
module_data = pool.get('ir.module.module').browse(cr, uid, id)
data = obj_quality.check_quality(cr, uid, module_data.name, module_data.state)
obj = obj_quality.create(cr, uid, data, context)
objs.append(obj)
return objs
def _create_quality_check(self, cr, uid, ids, context=None):
obj_quality = self.pool.get('module.quality.check')
objs_ids = []
module_id = context.get('active_id', False)
module_data = self.pool.get('ir.module.module').browse(cr, uid, module_id, context=context)
data = obj_quality.check_quality(cr, uid, module_data.name, module_data.state)
obj = obj_quality.create(cr, uid, data, context=context)
objs_ids.append(obj)
return objs_ids
def _open_quality_check(self, cr, uid, data, context):
obj_ids = self._create_quality_check(cr, uid, data, context)
def open_quality_check(self, cr, uid, ids, context=None):
obj_ids = self._create_quality_check(cr, uid, ids, context=context)
return {
'domain': "[('id','in', ["+','.join(map(str,obj_ids))+"])]",
'name': _('Quality Check'),
@ -49,14 +46,7 @@ class quality_check(wizard.interface):
'res_model': 'module.quality.check',
'type': 'ir.actions.act_window'
}
states = {
'init' : {
'actions' : [],
'result': {'type':'action', 'action':_open_quality_check, 'state':'end'}
}
}
quality_check("create_quality_check_wiz")
quality_check()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_base_module_quality" model="ir.ui.view">
<field name="name">view_base_module_quality_form</field>
<field name="model">quality.check</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Quality Check">
<group colspan="4">
<separator string = "This wizard will check module(s) quality" colspan="4"/>
<newline/>
<button icon="gtk-cancel" string="Cancel" special="cancel"/>
<button name="open_quality_check" icon="terp-camera_test" string="Check" type="object"/>
</group>
</form>
</field>
</record>
<act_window
name="Quality Check"
id="act_base_module_quality"
res_model="quality.check"
src_model="ir.module.module"
view_mode="form"
target="new"
key2="client_action_multi"
/>
</data>
</openerp>

View File

@ -22,40 +22,31 @@
import base64
import cStringIO
import wizard
from osv import osv
import pooler
from tools.translate import _
from osv import osv, fields
form_rep = '''<?xml version="1.0"?>
<form string="Standard entries">
<field name="name"/>
<newline/>
<field name="module_file"/>
</form>'''
class quality_save_report(osv.osv_memory):
_name = "save.report"
_description = "Save Report of Quality"
fields_rep = {
'name': {'string': 'File name', 'type': 'char', 'required': True, 'help': 'Save report as .html format', 'size':64},
'module_file': {'string': 'Save report', 'type': 'binary', 'required': True},
}
def default_get(self, cr, uid, fields, context=None):
res = super(quality_save_report, self).default_get(cr, uid, fields, context=context)
active_ids = context.get('active_ids')
data = self.pool.get('module.quality.detail').browse(cr, uid, active_ids, context=context)[0]
if not data.detail:
raise osv.except_osv(_('Warning'), _('No report to save!'))
buf = cStringIO.StringIO(data.detail)
out = base64.encodestring(buf.getvalue())
buf.close()
return {'module_file': out, 'name': data.name + '.html'}
def get_detail(self, cr, uid, datas, context=None):
data = pooler.get_pool(cr.dbname).get('module.quality.detail').browse(cr, uid, datas['id'])
if not data.detail:
raise wizard.except_wizard(_('Warning'), _('No report to save!'))
buf = cStringIO.StringIO(data.detail)
out = base64.encodestring(buf.getvalue())
buf.close()
return {'module_file': out, 'name': data.name + '.html'}
class save_report(wizard.interface):
states = {
'init': {
'actions': [get_detail],
'result': {'type': 'form', 'arch': form_rep, 'fields':fields_rep, 'state': [('end','Cancel')]}
},
_columns = {
'name': fields.char('File Name', required=True, size=32, help="Save report as .html format"),
'module_file': fields.binary('Save report', required=True),
}
save_report('quality_detail_save')
quality_save_report()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_quality_save_report" model="ir.ui.view">
<field name="name">view_quality_save_report</field>
<field name="model">save.report</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Standard Entries">
<field name="name"/>
<newline/>
<field name="module_file"/>
<separator colspan="4"/>
<label string=" " colspan="2"/>
<button special="cancel" string="Close" icon="gtk-close"/>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_view_quality_save_report">
<field name="name">Standard Entries</field>
<field name="res_model">save.report</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="target">new</field>
<field name="view_id" ref="view_quality_save_report"/>
</record>
</data>
</openerp>

View File

@ -53,6 +53,16 @@
<action name="%(action_res_widgets_events)d"/>
</child2>
</hpaned>
<!--
The new version should this, kept as comment until rng grammar is updated.
<board style="1">
<column>
<action name="100"/>
</column>
<column/>
<column/>
</board>
-->
</form>
</field>
</record>

View File

@ -324,7 +324,6 @@ class node_calendar(nodes.node_class):
uid = self.context.uid
res = self.set_data(cr, data)
if res and len(res):
# We arbitrarily construct only the first node of the data
# that have been imported. ICS may have had more elements,
@ -332,6 +331,7 @@ class node_calendar(nodes.node_class):
assert isinstance(res[0], (int, long))
fnodes = fil_obj.get_calendar_objects(cr, uid, [self.calendar_id], self,
domain=[('id','=',res[0])], context=ctx)
if self.context.get('DAV-client','') in ('iPhone', 'iCalendar',):
# For those buggy clients, register the alias
bca_obj = fil_obj.pool.get('basic.calendar.alias')

View File

@ -121,10 +121,10 @@ def str2mailto(emailstr, multi=False):
for mas in mailz:
m = mege.match(mas.strip())
if not m:
# one of the rare non-matching strings is "sad" :(
# retz.append({ 'name': mas.strip() })
# continue
raise ValueError("Invalid email address %r" % mas)
#one of the rare non-matching strings is "sad" :(
retz.append({ 'name': mas.strip() })
continue
# raise ValueError("Invalid email address %r" % mas)
rd = { 'name': m.group(1).strip(),
'email': m.group(5), }
if m.group(2):
@ -189,6 +189,9 @@ def map_data(cr, uid, obj, context=None):
field = obj.ical_get(map_dict, 'field')
field_type = obj.ical_get(map_dict, 'type')
if field:
#ignore write date, this field is resered for the orm
if field == 'write_date':
continue
if field_type == 'selection':
if not map_val:
continue
@ -299,7 +302,6 @@ class CalDAV(object):
att_data = []
exdates = []
_server_tzinfo = pytz.timezone(tools.get_server_timezone())
for cal_data in child.getChildren():
if cal_data.name.lower() == 'organizer':
dmail = { 'name': cal_data.params.get('CN', ['',])[0],
@ -552,7 +554,7 @@ class CalDAV(object):
@param data_id: Get Datas ID or False
@param context: A standard dictionary for contextual values
"""
ical_data = content
self.__attribute__ = get_attribute_mapping(cr, uid, self._calname, context)
parsedCal = vobject.readOne(ical_data)

View File

@ -24,6 +24,7 @@ from tools import config
import base64
import addons
from tools.translate import _
import tools
class caldav_browse(osv.osv_memory):
@ -176,16 +177,6 @@ configuration
pref_ids = pref_obj.browse(cr, uid ,context.get('rec_id',False), context=context)
res = {}
host = context.get('host')
port = ''
prefix = 'http://'
if not config.get('xmlrpc'):
if not config.get('netrpc'):
prefix = 'https://'
port = config.get('xmlrpcs_port', 8071)
else:
port = config.get('netrpc_port',8070)
else:
port = config.get('xmlrpc_port',8069)
if not config.get_misc('webdav','enable',True):
raise Exception("WebDAV is disabled, cannot continue")
user_pool = self.pool.get('res.users')
@ -195,16 +186,16 @@ configuration
if pref_ids:
pref_ids = pref_ids[0]
if pref_ids.device == 'iphone':
url = host + ':' + str(port) + '/'+ pref_ids.service + '/' + cr.dbname + '/'+'calendars/'
url = host + '/'+ pref_ids.service + '/' + cr.dbname + '/'+'calendars/'
else :
url = host + ':' + str(port) + '/'+ pref_ids.service + '/' + cr.dbname + '/'+'calendars/'+ 'users/'+ current_user.login + '/'+ pref_ids.collection.name+ '/'+ pref_ids.calendar.name
url = host + '/'+ pref_ids.service + '/' + cr.dbname + '/'+'calendars/'+ 'users/'+ current_user.login + '/'+ pref_ids.collection.name+ '/'+ pref_ids.calendar.name
res['description'] = self.__doc.get(pref_ids.device , self.__doc['other'])
file = open(addons.get_module_resource('caldav','doc', 'caldav_doc.pdf'),'rb')
res['caldav_doc_file'] = base64.encodestring(file.read())
#res['doc_link'] = 'http://doc.openerp.com/'
res['url'] = prefix+url
res['url'] = url
return res
def browse_caldav(self, cr, uid, ids, context):
@ -239,12 +230,8 @@ class user_preference(osv.osv_memory):
return ids[0]
def _get_default_host(self, cr, uid, context):
ids=self.search(cr,uid,[])
host_name = ''
if ids:
ids = len(ids)> 1 and len(ids)-1 or ids[0] # Use len(ids)-1 for taking the value of last id
host_name = self.browse(cr, uid,[ids],context=context)[0].host_name
return host_name
return self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context)
_defaults={
'service': 'webdav',

View File

@ -484,10 +484,10 @@ class crm_case(crm_base):
case_email = case.user_id.user_email
src = case_email
dest = case.user_id
dest = case.user_id.user_email or ""
body = case.description or ""
if case.message_ids:
body = case.message_ids[0].description or ""
body = case.message_ids[0].body_text or ""
if not destination:
src, dest = dest, case.email_from
if body and case.user_id.signature:

3672
addons/crm/i18n/es_MX.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -42,7 +42,7 @@
and I set the fields so that the meeting will occur weekly on Monday and Friday 10 times.
-
!python {model: crm.meeting}: |
self.write(cr, uid, [ref("crm_meeting_regardingpresentation0")], {'fr': 1, 'mo': 1, 'th': 1, 'tu': 1, 'we':1, 'count':10, 'interval': 1, 'rrule_type': 'weekly'})
self.write(cr, uid, [ref("crm_meeting_regardingpresentation0")], {'fr': 1, 'mo': 1, 'th': 1, 'tu': 1, 'we':1, 'count':10, 'interval': 1, 'rrule_type': 'weekly', 'recurrency' : True})
- |
I can see from the calendar view that the meeting is scheduled on Monday and Friday

View File

@ -21,60 +21,6 @@
from osv import osv
from tools.translate import _
import wizard
import pooler
#===============================================================================
# Put original wizard because of action in init
# Remove it after solution foraction in init
#===============================================================================
class phonecall2meeting(wizard.interface):
def _makeMeeting(self, cr, uid, data, context=None):
pool = pooler.get_pool(cr.dbname)
phonecall_case_obj = pool.get('crm.phonecall')
data_obj = pool.get('ir.model.data')
result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_meetings_filter')
id = data_obj.read(cr, uid, result, ['res_id'])
id1 = data_obj._get_id(cr, uid, 'crm', 'crm_case_calendar_view_meet')
id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_meet')
id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_meet')
if id1:
id1 = data_obj.browse(cr, uid, id1, context=context).res_id
if id2:
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
if id3:
id3 = data_obj.browse(cr, uid, id3, context=context).res_id
phonecall = phonecall_case_obj.browse(cr, uid, data['id'], context=context)
partner_id = phonecall.partner_id and phonecall.partner_id.id or False
name = phonecall.name
email = phonecall.email_from
section_id = phonecall.section_id and phonecall.section_id.id or False
return {
'name': _('Meetings'),
'domain' : "[('user_id','=',%s)]"%(uid),
'context': {'default_partner_id': partner_id, 'default_section_id': section_id, 'default_email_from': email, 'default_state':'open', 'default_name':name},
'view_type': 'form',
'view_mode': 'calendar,form,tree',
'res_model': 'crm.meeting',
'view_id': False,
'views': [(id1,'calendar'),(id2,'form'),(id3,'tree')],
'type': 'ir.actions.act_window',
'search_view_id': id['res_id']
}
states = {
'init': {
'actions': [],
'result': {'type': 'action', 'action': _makeMeeting, 'state': 'order'}
},
'order': {
'actions': [],
'result': {'type': 'state', 'state': 'end'}
}
}
phonecall2meeting('crm.phonecall.meeting_set')
class crm_phonecall2meeting(osv.osv_memory):
""" Phonecall to Meeting """
@ -109,7 +55,7 @@ class crm_phonecall2meeting(osv.osv_memory):
record_id = context and context.get('active_id', False) or False
if record_id:
phonecall_obj = self.pool.get('crm.phonecall')
phonecall_obj = self.pool.get('crm.phonecall')
data_obj = self.pool.get('ir.model.data')
# Get meeting views
@ -127,22 +73,22 @@ class crm_phonecall2meeting(osv.osv_memory):
phonecall = phonecall_obj.browse(cr, uid, record_id, context=context)
context = {
'default_phonecall_id': phonecall.id,
'default_partner_id': phonecall.partner_id and phonecall.partner_id.id or False,
'default_email': phonecall.email_from ,
'default_phonecall_id': phonecall.id,
'default_partner_id': phonecall.partner_id and phonecall.partner_id.id or False,
'default_email': phonecall.email_from ,
'default_name': phonecall.name
}
value = {
'name': _('Meetings'),
'domain' : "[('user_id','=',%s)]" % (uid),
'context': context,
'view_type': 'form',
'view_mode': 'calendar,form,tree',
'res_model': 'crm.meeting',
'view_id': False,
'views': [(id1, 'calendar'), (id2, 'form'), (id3, 'tree')],
'type': 'ir.actions.act_window',
'name': _('Meetings'),
'domain' : "[('user_id','=',%s)]" % (uid),
'context': context,
'view_type': 'form',
'view_mode': 'calendar,form,tree',
'res_model': 'crm.meeting',
'view_id': False,
'views': [(id1, 'calendar'), (id2, 'form'), (id3, 'tree')],
'type': 'ir.actions.act_window',
'search_view_id': res['res_id']
}

View File

@ -1,60 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
# 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 wizard
import pooler
def _open_history_event(self, cr, uid, data, context=None):
pool = pooler.get_pool(cr.dbname)
data_obj = pool.get('ir.model.data')
result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_filter')
id = data_obj.read(cr, uid, result, ['res_id'])
id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_calendar_section-view')
if id2:
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
res = ''
if data.get('model') and data.get('ids'):
model_obj = pooler.get_pool(cr.dbname).get(data['model'])
res = model_obj.browse(cr, uid, data['ids'], context=context)
if len(res):
res = res[0].name
return {
'name': 'History : ' + res,
'view_type': 'form',
"view_mode": 'calendar, tree, form',
'view_id' : False,
'views': [(id2,'calendar'),(False,'form'),(False,'tree'),(False,'graph')],
'res_model': 'crm.case',
'type': 'ir.actions.act_window',
'domain': data.get('id',False) and "[('case_id','=',%d)]" % (data['id']) or "[]",
'search_view_id': id['res_id']
}
class case_history_event(wizard.interface):
states = {
'init': {
'actions': [],
'result': {'type': 'action', 'action': _open_history_event, 'state':'end'}
}
}
case_history_event('crm.case.history.events')

View File

@ -0,0 +1,137 @@
# Slovenian translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
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: 2011-10-19 07:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Slovenian <sl@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: 2011-10-21 04:55+0000\n"
"X-Generator: Launchpad (build 14165)\n"
#. module: document_ftp
#: model:ir.model,name:document_ftp.model_document_ftp_configuration
msgid "Auto Directory Configuration"
msgstr "Avto konfiguracija map"
#. module: document_ftp
#: view:document.ftp.configuration:0
msgid ""
"Indicate the network address on which your OpenERP server should be "
"reachable for end-users. This depends on your network topology and "
"configuration, and will only affect the links displayed to the users. The "
"format is HOST:PORT and the default host (localhost) is only suitable for "
"access from the server machine itself.."
msgstr ""
#. module: document_ftp
#: field:document.ftp.configuration,progress:0
msgid "Configuration Progress"
msgstr ""
#. module: document_ftp
#: model:ir.actions.url,name:document_ftp.action_document_browse
msgid "Browse Files"
msgstr "Brskanje Datoteke"
#. module: document_ftp
#: field:document.ftp.configuration,config_logo:0
msgid "Image"
msgstr "Slika"
#. module: document_ftp
#: field:document.ftp.configuration,host:0
msgid "Address"
msgstr "Naslov"
#. module: document_ftp
#: field:document.ftp.browse,url:0
msgid "FTP Server"
msgstr "Strežnik FTP"
#. module: document_ftp
#: model:ir.actions.act_window,name:document_ftp.action_config_auto_directory
msgid "FTP Server Configuration"
msgstr "Konfiguracija FTP strežnika"
#. module: document_ftp
#: model:ir.module.module,description:document_ftp.module_meta_information
msgid ""
"This is a support FTP Interface with document management system.\n"
" With this module you would not only be able to access documents through "
"OpenERP\n"
" but you would also be able to connect with them through the file system "
"using the\n"
" FTP client.\n"
msgstr ""
#. module: document_ftp
#: view:document.ftp.browse:0
msgid "_Browse"
msgstr "_Prebrskaj"
#. module: document_ftp
#: help:document.ftp.configuration,host:0
msgid ""
"Server address or IP and port to which users should connect to for DMS access"
msgstr ""
"Naslov strežnika ali IP in vrata, na katerega se bodo uporabniki povezali za "
"DMS dostop"
#. module: document_ftp
#: model:ir.ui.menu,name:document_ftp.menu_document_browse
msgid "Shared Repository (FTP)"
msgstr ""
#. module: document_ftp
#: view:document.ftp.browse:0
msgid "_Cancel"
msgstr "_Prekliči"
#. module: document_ftp
#: view:document.ftp.configuration:0
msgid "Configure FTP Server"
msgstr "Konfiguriraj FTP strežnik"
#. module: document_ftp
#: model:ir.module.module,shortdesc:document_ftp.module_meta_information
msgid "Integrated FTP Server with Document Management System"
msgstr ""
#. module: document_ftp
#: view:document.ftp.configuration:0
msgid "title"
msgstr "naslov"
#. module: document_ftp
#: model:ir.model,name:document_ftp.model_document_ftp_browse
msgid "Document FTP Browse"
msgstr ""
#. module: document_ftp
#: view:document.ftp.configuration:0
msgid "Knowledge Application Configuration"
msgstr ""
#. module: document_ftp
#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
msgid "Document Browse"
msgstr ""
#. module: document_ftp
#: view:document.ftp.browse:0
msgid "Browse Document"
msgstr ""
#. module: document_ftp
#: view:document.ftp.configuration:0
msgid "res_config_contents"
msgstr "res_config_contents"

View File

@ -19,7 +19,6 @@
#
##############################################################################
import google_map
import wizard
import google_map_launch
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -34,7 +34,9 @@ Using this you can directly open Google Map from the URL widget.""",
'images': ['images/google_map.jpeg'],
'depends': ['base'],
'init_xml': [],
'update_xml': ['google_map_wizard.xml', 'google_map_view.xml'],
'update_xml': [
'google_map_view.xml',
],
'demo_xml': [],
'installable': True,
'active': False,

View File

@ -18,15 +18,33 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import osv
from osv import fields,osv,orm
class launch_map(osv.osv):
class res_partner_address(osv.osv):
_description ='Partner Contact'
_name = 'res.partner.address'
_inherit = 'res.partner.address'
_columns = {
_inherit = "res.partner.address"
def open_map(self, cr, uid, ids, context=None):
address_obj= self.pool.get('res.partner.address')
partner = address_obj.browse(cr, uid, ids, context=context)[0]
url="http://maps.google.com/maps?oi=map&q="
if partner.street:
url+=partner.street.replace(' ','+')
if partner.city:
url+='+'+partner.city.replace(' ','+')
if partner.state_id:
url+='+'+partner.state_id.name.replace(' ','+')
if partner.country_id:
url+='+'+partner.country_id.name.replace(' ','+')
if partner.zip:
url+='+'+partner.zip.replace(' ','+')
return {
'type': 'ir.actions.act_url',
'url':url,
'target': 'new'
}
res_partner_address()
launch_map()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -12,8 +12,8 @@
<label string="Street2 : " align="1.0"/>
<group colspan="1" col="2">
<field name="street2" nolabel="1"/>
<button name="%(wizard_google_map)d"
string="Map" type="action" icon="gtk-zoom-in"/>
<button name="open_map"
string="Map" type="object" icon="gtk-zoom-in"/>
</group>
</field>
</field>
@ -29,7 +29,8 @@
<label string="Street2 : " align="1.0"/>
<group colspan="1" col="2">
<field name="street2" nolabel="1"/>
<button name="%(wizard_google_map)d" string="Map" type="action" icon="gtk-zoom-in"/>
<button name="open_map"
string="Map" type="object" icon="gtk-zoom-in"/>
</group>
</field>
</field>
@ -46,8 +47,8 @@
<label string="Street2 : " align="1.0"/>
<group colspan="1" col="2">
<field name="street2" nolabel="1"/>
<button name="%(wizard_google_map)d"
string="Map" type="action" icon="gtk-zoom-in"/>
<button name="open_map"
string="Map" type="object" icon="gtk-zoom-in"/>
</group>
</field>
</field>

View File

@ -1,12 +0,0 @@
<?xml version="1.0" ?>
<openerp>
<data>
<wizard
string="Launch Google Map"
model="res.partner.address"
name="google_map_launch"
id="wizard_google_map"
keyword="client_action_multi"/>
</data>
</openerp>

View File

@ -1,24 +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 google_map_launch
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,61 +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 wizard
from osv import osv
import pooler
from osv import fields
import time
def _launch_wizard(self, cr, uid, data, context=None):
address_obj= pooler.get_pool(cr.dbname).get('res.partner.address')
m= address_obj.browse(cr, uid, data['id'], context=context)
url=''
url="http://maps.google.com/maps?oi=map&q="
if m.street:
url+=m.street.replace(' ','+')
if m.street2:
url+='+'+m.street2.replace(' ','+')
if m.city:
url+='+'+m.city.replace(' ','+')
if m.state_id:
url+='+'+m.state_id.name.replace(' ','+')
if m.country_id:
url+='+'+m.country_id.name.replace(' ','+')
if m.zip:
url+='+'+m.zip.replace(' ','+')
return {
'type': 'ir.actions.act_url',
'url':url,
'target': 'new'
}
class launch_map(wizard.interface):
states= {'init' : {'actions': [],
'result':{'type':'action',
'action': _launch_wizard,
'state':'end'}
}
}
launch_map('google_map_launch')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -131,16 +131,14 @@ class hr_expense_expense(osv.osv):
wf_service = netsvc.LocalService("workflow")
mod_obj = self.pool.get('ir.model.data')
res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_supplier_form')
res_id = res and res[1] or False,
inv_ids = []
for id in ids:
wf_service.trg_validate(uid, 'hr.expense.expense', id, 'invoice', cr)
inv_ids.append(self.browse(cr, uid, id).invoice_id.id)
return {
'name': _('Supplier Invoices'),
'view_type': 'form',
'view_mode': 'form,tree',
'view_id': [res_id],
'view_mode': 'form',
'view_id': [res[1] if res else False],
'res_model': 'account.invoice',
'context': "{'type':'out_invoice', 'journal_type': 'purchase'}",
'type': 'ir.actions.act_window',

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="action_hr_timesheet_sheet_graph" model="ir.actions.act_window">
<field name="name">Timesheets</field>
<field name="type">ir.actions.act_window</field>
@ -19,8 +20,8 @@
<field name="user_id"/>
<field name="department_id" invisible="1"/>
<field name="name"/>
<field name="total_attendance"/>
<field name="total_timesheet"/>
<field name="total_attendance" widget="float_time"/>
<field name="total_timesheet" widget="float_time"/>
<field name="state"/>
</tree>
</field>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="hr_timesheet_sheet_graph" model="ir.ui.view">
<field name="name">hr.timesheet.sheet.graph</field>
<field name="model">hr_timesheet_sheet.sheet</field>
@ -311,9 +311,9 @@
<field name="date_from"/>
<field name="date_to"/>
<field name="department_id"/>
<field name="total_attendance"/>
<field name="total_timesheet"/>
<field name="total_difference"/>
<field name="total_attendance" widget="float_time"/>
<field name="total_timesheet" widget="float_time"/>
<field name="total_difference" widget="float_time"/>
<field name="state"/>
</tree>
</field>

View File

@ -60,7 +60,7 @@ class import_framework(Thread):
self.context = context or {}
self.email = email_to_notify
self.table_list = []
self.logger = logging.getLogger('import_framework')
self.logger = logging.getLogger(module_name)
self.initialize()
"""
@ -165,6 +165,7 @@ class import_framework(Thread):
data_i is a map external field_name => value
and each data_i have a external id => in data_id['id']
"""
self.logger.info(' Importing %s into %s' % (table, model))
if not datas:
return (0, 'No data found')
mapping['id'] = 'id_new'
@ -187,8 +188,7 @@ class import_framework(Thread):
model_obj = self.obj.pool.get(model)
if not model_obj:
raise ValueError(_("%s is not a valid model name") % model)
self.logger.debug(_("fields imported : "))
self.logger.debug(fields)
self.logger.debug(_(" fields imported : ") + str(fields))
(p, r, warning, s) = model_obj.import_data(self.cr, self.uid, fields, res, mode='update', current_module=self.module_name, noupdate=True, context=self.context)
for (field, field_name) in self_dependencies:
self._import_self_dependencies(model_obj, field, datas)
@ -330,7 +330,6 @@ class import_framework(Thread):
xml_ref = self.mapped_id_if_exist(model, domain_search, table, name)
fields.append('id')
data.append(xml_id)
obj.import_data(self.cr, self.uid, fields, [data], mode='update', current_module=self.module_name, noupdate=True, context=self.context)
return xml_ref or xml_id
@ -385,7 +384,6 @@ class import_framework(Thread):
res = self._resolve_dependencies(self.get_mapping()[table].get('dependencies', []), imported)
result.extend(res)
if to_import:
self.logger.debug(_("import : ") + table )
(position, warning) = self._import_table(table)
result.append((table, position, warning))
imported.add(table)
@ -396,12 +394,13 @@ class import_framework(Thread):
traceback.print_exc(file=sh)
error = sh.getvalue()
print error
finally:
self.cr.close()
self.date_ended = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
self._send_notification_email(result, error)
self.cr.close()
def _resolve_dependencies(self, dep, imported):
"""
import dependencies recursively
@ -414,7 +413,6 @@ class import_framework(Thread):
res = self._resolve_dependencies(self.get_mapping()[dependency].get('dependencies', []), imported)
result.extend(res)
if to_import:
self.logger.debug("import dependency : " + dependency)
r = self._import_table(dependency)
(position, warning) = r
result.append((dependency, position, warning))
@ -422,15 +420,16 @@ class import_framework(Thread):
return result
def _send_notification_email(self, result, error):
if not self.email or not self.email[0]:
if not self.email:
return False
tools.email_send(
'import@module.openerp',
self.email,
self.get_email_subject(result, error),
self.get_email_body(result, error),
)
email_obj = self.obj.pool.get('mail.message')
email_id = email_obj.create(self.cr, self.uid, {
'email_from' : 'import@module.openerp',
'email_to' : self.email,
'body_text' : self.get_email_body(result, error),
'subject' : self.get_email_subject(result, error),
'auto_delete' : True})
email_obj.send(self.cr, self.uid, [email_id])
if error:
self.logger.error(_("Import failed due to an unexpected error"))
else:

View File

@ -210,12 +210,12 @@ class sugar_import(import_framework):
def get_email_mapping(self):
return {
'model' : 'mailgate.message',
'model' : 'mail.message',
'dependencies' : [self.TABLE_USER, self.TABLE_ACCOUNT, self.TABLE_CONTACT, self.TABLE_LEAD, self.TABLE_OPPORTUNITY, self.TABLE_MEETING, self.TABLE_CALL],
'hook' : self.import_email,
'map' : {
'name':'name',
'history' : const("1"),
'subject':'name',
'state' : const('received'),
'date':'date_sent',
'email_from': 'from_addr_name',
'email_to': 'to_addrs_names',
@ -226,7 +226,9 @@ class sugar_import(import_framework):
'model': 'model',
'partner_id/.id': 'partner_id/.id',
'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
'description': ppconcat('description', 'description_html'),
'body_text': 'description',
'body_html' : 'description_html',
}
}
@ -575,10 +577,10 @@ class sugar_import(import_framework):
}
def get_opportunity_status(self, sugar_val):
fields = ['name', 'type']
fields = ['name', 'case_default']
name = 'Opportunity_' + sugar_val['sales_stage']
data = [sugar_val['sales_stage'], 'Opportunity']
return self.import_object(fields, data, 'crm.case.stage', self.TABLE_STAGE, name, [('type', '=', 'opportunity'), ('name', 'ilike', sugar_val['sales_stage'])])
data = [sugar_val['sales_stage'], '1']
return self.import_object(fields, data, 'crm.case.stage', self.TABLE_STAGE, name, [('name', 'ilike', sugar_val['sales_stage'])])
def import_opportunity_contact(self, val):
sugar_opportunities_contact = set(sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Opportunities', module_id=val.get('id'), related_module='Contacts', query=None, deleted=None))
@ -647,11 +649,11 @@ class sugar_import(import_framework):
import lead
"""
def get_lead_status(self, sugar_val):
fields = ['name', 'type']
fields = ['name', 'case_default']
name = 'lead_' + sugar_val.get('status', '')
data = [sugar_val.get('status', ''), 'lead']
return self.import_object(fields, data, 'crm.case.stage', self.TABLE_STAGE, name, [('type', '=', 'lead'), ('name', 'ilike', sugar_val.get('status', ''))])
data = [sugar_val.get('status', ''), '1']
return self.import_object(fields, data, 'crm.case.stage', self.TABLE_STAGE, name, [('name', 'ilike', sugar_val.get('status', ''))])
lead_state = {
'New' : 'draft',
'Assigned':'open',
@ -1085,7 +1087,7 @@ class import_sugarcrm(osv.osv):
scheduler Method
"""
context = {'username': args[4], 'password': args[5], 'url': args[3], 'instance_name': args[3]}
imp = sugar_import(self, cr, uid, args[2], "import_sugarcrm", [args[1]], context)
imp = sugar_import(self, cr, uid, args[2], "import_sugarcrm", args[1], context)
imp.set_table_list(args[0])
imp.start()
return True
@ -1129,7 +1131,7 @@ class import_sugarcrm(osv.osv):
raise osv.except_osv(_('Error !!'), _("%s data required %s Module to be installed, Please install %s module") %(keys,module,module))
url = self.parse_valid_url(context)
context.update({'url': url})
imp = sugar_import(self, cr, uid, context.get('instance_name'), "import_sugarcrm", [context.get('email_user')], context)
imp = sugar_import(self, cr, uid, context.get('instance_name'), "import_sugarcrm", context.get('email_user'), context)
imp.set_table_list(keys)
imp.start()
obj_model = self.pool.get('ir.model.data')

View File

@ -32,13 +32,21 @@ import import_sugarcrm
import logging
import sys
debug = False
class LoginError(Exception): pass
def login(username, password, url):
setURL(url)
loc = sugarsoapLocator()
portType = loc.getsugarsoapPortType(url)
if debug:
portType = loc.getsugarsoapPortType(url, tracefile=sys.stdout)
else:
portType = loc.getsugarsoapPortType(url)
request = loginRequest()
uauth = ns0.user_auth_Def(request)
request._user_auth = uauth

View File

@ -274,9 +274,7 @@ class mrp_bom(osv.osv):
if product_id:
prod = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
v = {'product_uom': prod.uom_id.id}
if not name:
v['name'] = prod.name
v = {'name': prod.name, 'product_uom': prod.uom_id.id}
return {'value': v}
return {}

View File

@ -39,7 +39,7 @@
<xsl:template name="first_page_frames">
<xsl:if test="$page_format='a4_normal'">
<frame id="main" x1="1cm" y1="2.5cm" width="21.0cm" height="29.0cm"/>
<frame id="main" x1="1cm" y1="2.5cm" width="19.0cm" height="25.0cm"/>
</xsl:if>
<xsl:if test="$page_format='a4_letter'">
@ -49,7 +49,7 @@
</xsl:template>
<xsl:template name="other_pages_frames">
<frame id="main" x1="1cm" y1="2.5cm" width="21.0cm" height="29cm"/>
<frame id="main" x1="1cm" y1="2.5cm" width="19.0cm" height="25.0cm"/>
</xsl:template>
</xsl:stylesheet>

View File

@ -3,6 +3,8 @@
<xsl:import href="custom_default.xsl"/>
<xsl:import href="custom_rml.xsl"/>
<xsl:variable name="page_format">a4_normal</xsl:variable>
<xsl:template match="/">
<xsl:call-template name="rml"/>
@ -11,7 +13,7 @@
<!-- stylesheet -->
<xsl:template name="stylesheet">
<paraStyle name="title" fontName="Helvetica-Bold" fontSize="15.0" leftIndent="-8.0cm" alignment="center"/>
<paraStyle name="title" fontName="Helvetica-Bold" fontSize="15.0" alignment="center"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT"/>

View File

@ -19,7 +19,7 @@
<xpath expr="//button[@string='Install Modules']" position="replace">
<button colspan="1" icon="gtk-close" special="cancel" string="_Close"/>
</xpath>
<xpath expr="//button[@string='Skip']" position="replace">
<xpath expr="//button[@string='Cancel']" position="replace">
</xpath>
<xpath expr="//separator[@string=&quot;vsep&quot;]" position="attributes">
<attribute name="string"/>

View File

@ -55,7 +55,7 @@ class pos_payment_report_date(osv.osv_memory):
_columns = {
'date_start': fields.date('Start Date', required=True),
'date_end': fields.date('End Date', required=True),
'user_id': fields.many2many('res.users', 'res_user_sale', 'user_id', 'sale_id', 'Salesman')
'user_id': fields.many2many('res.users', 'res_user_sale_date', 'user_id', 'sale_id', 'Salesman')
}
_defaults = {
'date_start': lambda *a: time.strftime('%Y-%m-%d'),

View File

@ -40,7 +40,8 @@ class sale_order_line(osv.osv):
def product_id_change(self, cr, uid, ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=False,
lang=False, update_tax=True,date_order=False,packaging=False,fiscal_position=False, flag=False):
lang=False, update_tax=True, date_order=False, packaging=False,
fiscal_position=False, flag=False, context=None):
def get_real_price(res_dict, product_id, qty, uom, pricelist):
item_obj = self.pool.get('product.pricelist.item')
@ -59,7 +60,7 @@ class sale_order_line(osv.osv):
product_tmpl_id = product.product_tmpl_id.id
product_read = template_obj.read(cr, uid, product_tmpl_id, [field_name], context)
factor = 1.0
if uom and uom != product.uom_id.id:
product_uom_obj = self.pool.get('product.uom')
@ -70,7 +71,7 @@ class sale_order_line(osv.osv):
res=super(sale_order_line, self).product_id_change(cr, uid, ids, pricelist, product, qty,
uom, qty_uos, uos, name, partner_id,
lang, update_tax,date_order,fiscal_position=fiscal_position,flag=flag)
lang, update_tax, date_order, packaging=packaging, fiscal_position=fiscal_position, flag=flag, context=context)
context = {'lang': lang, 'partner_id': partner_id}
result=res['value']

View File

@ -321,6 +321,10 @@
<field name="type">kanban</field>
<field name="arch" type="xml">
<kanban default_group_by="type_id" >
<field name="color"/>
<field name="priority"/>
<field name="state"/>
<field name="type_id"/>
<templates>
<t t-name="kanban-box">
<t t-set="color" t-value="kanban_color(record.color.raw_value || record.type_id.raw_value)"/>

View File

@ -28,7 +28,7 @@ from project.project import task as base_project_task
class project_task(osv.osv):
_name = "project.task"
_inherit = ["calendar.todo", "project.task"]
_inherit = ["project.task", "calendar.todo"]
_columns = {
# force inherit from project.project_task so that
# calendar.todo.active is masked oute
@ -42,11 +42,11 @@ class project_task(osv.osv):
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\'.'),
}
_defaults = {
'state': 'draft',
}
def open_task(self, cr, uid, ids, context=None):
"""
Open Task Form for Project Task.
@ -109,6 +109,8 @@ class project_task(osv.osv):
self.write(cr, uid, [exists], val)
ids.append(exists)
else:
#set user_id with id, needed later
val.update({'user_id' : uid})
task_id = self.create(cr, uid, val)
ids.append(task_id)
return ids

View File

@ -65,9 +65,9 @@
<field name="type">form</field>
<field name="arch" type="xml">
<field name="progress" position="after">
<field name="recurrency"/>
<field name="edit_all" attrs="{'invisible':[('recurrency','=', False)]}"
on_change="onchange_edit_all(rrule_type,edit_all)"/>
<!-- Recurrency of task not well implemented for now, remove the option-->
<field name="recurrency" invisible="1"/>
<field name="edit_all" attrs="{'invisible':[('recurrency','=', False)]}"/>
</field>
</field>
</record>
@ -79,46 +79,57 @@
<field name="type">form</field>
<field name="arch" type="xml">
<notebook colspan="4" position="inside">
<page string="Recurrency Option" attrs="{'invisible':[('recurrency','=',False)]}">
<group colspan="2" col="4" >
<field name="rrule_type" string="Recurrency" colspan="1" attrs="{'readonly':[('recurrent_uid','!=',False)]}"/>
</group>
<newline/>
<group col="4" colspan="6" name="rrule">
<separator string="Recurrency Rule" colspan="8"/>
<group col="6" colspan="4">
<field name="interval" string="Repeat Times" attrs="{'readonly': [('end_date','!=',False)]}"/>
<field name="count" attrs="{'readonly': [('end_date','!=',False)]}"/>
<field name="end_date" attrs="{'invisible': [('readonly','!=',False)]}"/>
<page string="Recurrency Option" attrs="{'invisible': [('recurrency','=',False)], 'readonly': ['|', ('recurrent_uid','!=',False), ('state','=','done')]}">
<group col="4" colspan="4" name="rrule">
<group col="4" colspan="4">
<field name="rrule_type" string="Recurrency period" />
<field name="interval" />
<separator string="End of recurrency" colspan="4"/>
<field name="end_type" />
<label string=" " colspan="2" />
<newline />
<field name="count" attrs="{'invisible' : [('end_type', '!=', 'count')] }"/>
<label string=" " colspan="2" />
<newline />
<field name="end_date" attrs="{'invisible' : [('end_type', '!=', 'end_date')], 'required': [('end_type', '=', 'end_date')]}"/>
<newline />
</group>
<group col="14" colspan="4" name="Select weekdays"
attrs="{'invisible' :[('rrule_type','not in', ['weekly','daily_working'])]}">
<group col="8" colspan="4" name="Select weekdays" attrs="{'invisible' :[('rrule_type','not in', ['weekly'])]}">
<separator string="Choose day where repeat the meeting" colspan="8"/>
<field name="mo" colspan="1" />
<field name="tu" colspan="1" />
<field name="we" colspan="1" />
<field name="th" colspan="1" />
<newline/>
<field name="fr" colspan="1" />
<field name="sa" colspan="1" attrs="{'invisible': [('rrule_type','=','daily_working')]}"/>
<field name="su" colspan="1" attrs="{'invisible': [('rrule_type','=','daily_working')]}"/>
<field name="sa" colspan="1" />
<field name="su" colspan="1" />
<newline />
</group>
<group col="10" colspan="4" attrs="{'invisible': [('rrule_type','!=','monthly'), ('rrule_type','!=','yearly')]}">
<group col="10" colspan="4"
attrs="{'invisible' : [('rrule_type','!=','monthly')]}">
<separator string="Choose day in the month where repeat the meeting" colspan="12"/>
<group col="2" colspan="1">
<field name="select1" />
<field name="select1" />
</group>
<group col="2" colspan="1" attrs="{'invisible' : [('select1','=','day')]}">
<field name="day" attrs="{'required' : [('select1','=','date')]}" />
<group col="2" colspan="1">
<field name="day"
attrs="{'required' : [('select1','=','date'), ('rrule_type','=','monthly')],
'invisible' : [('select1','=','day')]}" />
</group>
<group col="3" colspan="1" attrs="{'invisible' : [('select1','=','date')]}">
<field name="byday" string="The" attrs="{'required' : [('select1','=','day')]}" />
<field name="week_list" nolabel="1" attrs="{'required' : [('select1','=','day')]}" />
</group>
<group col="1" colspan="1" attrs="{'invisible' : [('rrule_type','!=','yearly')]}">
<field name="month_list" string="of" colspan="1" attrs="{'required' : [('rrule_type','=','yearly')]}" />
<group col="3" colspan="1">
<field name="byday" string="The"
attrs="{'required' : [('select1','=','day'), ('rrule_type','=','monthly')], 'invisible' : [('select1','=','date')]}" />
<field name="week_list" nolabel="1"
attrs="{'required' : [('select1','=','day'), ('rrule_type','=','monthly')], 'invisible' : [('select1','=','date')]}" />
</group>
</group>
</group>
</page>
</notebook>
</field>

View File

@ -188,7 +188,7 @@
<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="progress" widget="progressbar"/>
<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"/>

File diff suppressed because it is too large Load Diff

View File

@ -164,7 +164,7 @@ class procurement_order(osv.osv):
if procurement.product_id.purchase_requisition:
requisition_id=self.pool.get('purchase.requisition').create(cr, uid, {
'name': sequence_obj.get(cr, uid, 'purchase.order.requisition'),
'origin': procurement.name,
'origin': procurement.origin,
'date_end': procurement.date_planned,
'warehouse_id':procurement.purchase_id and procurement.purchase_id.warehouse_id.id,
'company_id':procurement.company_id.id,

1987
addons/sale/i18n/es_MX.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -106,7 +106,7 @@ class sale_order(osv.osv):
procurement_order mp on (mp.move_id=m.id)
WHERE
p.sale_id IN %s GROUP BY m.state, mp.state, p.sale_id, p.type''', (tuple(ids),))
for item in cr.dictfetchall():
if item['move_state'] == 'cancel':
continue
@ -1073,6 +1073,53 @@ class sale_order_line(osv.osv):
default.update({'state': 'draft', 'move_ids': [], 'invoiced': False, 'invoice_lines': []})
return super(sale_order_line, self).copy_data(cr, uid, id, default, context=context)
def product_packaging_change(self, cr, uid, ids, pricelist, product, qty=0, uom=False,
partner_id=False, packaging=False, flag=False, context=None):
if not product:
return {'value': {'product_packaging': False}}
product_obj = self.pool.get('product.product')
product_uom_obj = self.pool.get('product.uom')
pack_obj = self.pool.get('product.packaging')
warning = {}
result = {}
warning_msgs = ''
if flag:
res = self.product_id_change(cr, uid, ids, pricelist=pricelist,
product=product, qty=qty, uom=uom, partner_id=partner_id,
packaging=packaging, flag=False, context=context)
warning_msgs = res.get('warning') and res['warning']['message']
products = product_obj.browse(cr, uid, product, context=context)
if not products.packaging:
packaging = result['product_packaging'] = False
elif not packaging and products.packaging and not flag:
packaging = products.packaging[0].id
result['product_packaging'] = packaging
if packaging:
default_uom = products.uom_id and products.uom_id.id
pack = pack_obj.browse(cr, uid, packaging, context=context)
q = product_uom_obj._compute_qty(cr, uid, uom, pack.qty, default_uom)
# qty = qty - qty % q + q
if qty and (q and not (qty % q) == 0):
ean = pack.ean or _('(n/a)')
qty_pack = pack.qty
type_ul = pack.ul
if not warning_msgs:
warn_msg = _("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") % \
(qty, ean, qty_pack, type_ul.name)
warning_msgs += _("Picking Information ! : ") + warn_msg + "\n\n"
warning = {
'title': _('Configuration Error !'),
'message': warning_msgs
}
result['product_uom_qty'] = qty
return {'value': result, 'warning': warning}
def product_id_change(self, cr, uid, ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=False,
lang=False, update_tax=True, date_order=False, packaging=False, fiscal_position=False, flag=False, context=None):
@ -1081,7 +1128,6 @@ class sale_order_line(osv.osv):
if not partner_id:
raise osv.except_osv(_('No Customer Defined !'), _('You have to select a customer in the sales form !\nPlease set one customer before choosing a product.'))
warning = {}
warning_msgs = ''
product_uom_obj = self.pool.get('product.uom')
partner_obj = self.pool.get('res.partner')
product_obj = self.pool.get('product.product')
@ -1097,28 +1143,10 @@ class sale_order_line(osv.osv):
if not date_order:
date_order = time.strftime(DEFAULT_SERVER_DATE_FORMAT)
result = {}
res = self.product_packaging_change(cr, uid, ids, pricelist, product, qty, uom, partner_id, packaging, context=context)
result = res.get('value', {})
warning_msgs = res.get('warning') and res['warning']['message'] or ''
product_obj = product_obj.browse(cr, uid, product, context=context)
if not packaging and product_obj.packaging:
packaging = product_obj.packaging[0].id
result['product_packaging'] = packaging
if packaging:
default_uom = product_obj.uom_id and product_obj.uom_id.id
pack = self.pool.get('product.packaging').browse(cr, uid, packaging, context=context)
q = product_uom_obj._compute_qty(cr, uid, uom, pack.qty, default_uom)
# qty = qty - qty % q + q
if qty and (q and not (qty % q) == 0):
ean = pack.ean or _('(n/a)')
qty_pack = pack.qty
type_ul = pack.ul
warn_msg = _("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") % \
(qty, ean, qty_pack, type_ul.name)
warning_msgs += _("Picking Information ! : ") + warn_msg + "\n\n"
result['product_uom_qty'] = qty
uom2 = False
if uom:
@ -1184,7 +1212,7 @@ class sale_order_line(osv.osv):
max(0,product_obj.qty_available), product_obj.uom_id.name)
warning_msgs += _("Not enough stock ! : ") + warn_msg + "\n\n"
# get unit price
if not pricelist:
warn_msg = _('You have to select a pricelist or a customer in the sales form !\n'
'Please set one before choosing a product.')
@ -1205,7 +1233,7 @@ class sale_order_line(osv.osv):
if warning_msgs:
warning = {
'title': _('Configuration Error !'),
'message' : warning_msgs
'message' : warning_msgs
}
return {'value': result, 'domain': domain, 'warning': warning}

View File

@ -4,7 +4,7 @@
<menuitem id="base.menu_sales" name="Sales" parent="base.menu_base_partner" sequence="1"/>
<menuitem id="base.menu_product" name="Products" parent="base.menu_base_partner" sequence="9"/>
<menuitem id="base.menu_product" name="Products" parent="base.menu_base_partner" sequence="9"/>
<record id="view_shop_form" model="ir.ui.view">
<field name="name">sale.shop</field>
@ -127,8 +127,7 @@
<field name="product_uom" on_change="product_uom_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, context)"/>
<field groups="product.group_uos" name="product_uos_qty"/>
<field groups="product.group_uos" name="product_uos"/>
<field name="product_packaging" context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}" 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, False, context)" domain="[('product_id','=',product_id)]" groups="base.group_extended"/>
<field name="product_packaging" context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'shop':parent.shop_id, 'uom':product_uom}" on_change="product_packaging_change(parent.pricelist_id, product_id, product_uom_qty, product_uom, parent.partner_id, product_packaging, True, context)" domain="[('product_id','=',product_id)]" groups="base.group_extended"/>
<field colspan="4" name="name"/>
<field name="price_unit"/>
<field name="discount"/>

View File

@ -0,0 +1,167 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * sale_crm
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0.2\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-07-05 15:46+0000\n"
"PO-Revision-Date: 2011-07-05 15:46+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: sale_crm
#: field:crm.make.sale,partner_id:0
msgid "Customer"
msgstr "Cliente"
#. module: sale_crm
#: view:crm.make.sale:0
msgid "Convert to Quotation"
msgstr "Convertir a presupuesto"
#. module: sale_crm
#: code:addons/sale_crm/wizard/crm_make_sale.py:108
#, python-format
msgid "is converted to Quotation."
msgstr "se ha convertido a presupuesto."
#. module: sale_crm
#: code:addons/sale_crm/wizard/crm_make_sale.py:89
#, python-format
msgid "Data Insufficient!"
msgstr "¡Datos insuficientes!"
#. module: sale_crm
#: code:addons/sale_crm/wizard/crm_make_sale.py:89
#, python-format
msgid "Customer has no addresses defined!"
msgstr "¡El cliente no tiene definidas direcciones!"
#. module: sale_crm
#: model:ir.model,name:sale_crm.model_crm_make_sale
msgid "Make sales"
msgstr "Crear ventas"
#. module: sale_crm
#: model:ir.module.module,description:sale_crm.module_meta_information
msgid "\n"
"This module adds a shortcut on one or several opportunity cases in the CRM.\n"
"This shortcut allows you to generate a sales order based on the selected case.\n"
"If different cases are open (a list), it generates one sale order by\n"
"case.\n"
"The case is then closed and linked to the generated sales order.\n"
"\n"
"We suggest you to install this module if you installed both the sale and the\n"
"crm modules.\n"
" "
msgstr "\n"
"Este módulo añade un acceso directo a uno o varios casos de oportunidades en el CRM.\n"
"Este acceso directo le permite generar un pedido de venta a partir del caso seleccionado.\n"
"Si están abiertos distintos casos (una lista), genera un pedido de venta por\n"
"caso.\n"
"El caso se cierra y es enlazado al pedido ventas generado.\n"
"\n"
"Le sugerimos que instale este módulo si ha instalado ambos módulos sale y crm.\n"
" "
#. module: sale_crm
#: view:crm.make.sale:0
msgid "_Create"
msgstr "_Crear"
#. module: sale_crm
#: sql_constraint:sale.order:0
msgid "Order Reference must be unique !"
msgstr "¡La referencia del pedido debe ser única!"
#. module: sale_crm
#: help:crm.make.sale,close:0
msgid "Check this to close the opportunity after having created the sale order."
msgstr "Marque esta opción para cerrar la oportunidad después de haber creado el pedido de venta."
#. module: sale_crm
#: view:crm.lead:0
msgid "Convert to Quote"
msgstr "Convertir a presupuesto"
#. module: sale_crm
#: view:account.invoice.report:0
#: view:board.board:0
msgid "Monthly Turnover"
msgstr "Volumen mensual"
#. module: sale_crm
#: code:addons/sale_crm/wizard/crm_make_sale.py:110
#, python-format
msgid "Converted to Sales Quotation(id: %s)."
msgstr "Convertido a presupuesto de venta (id: %s)."
#. module: sale_crm
#: code:addons/sale_crm/wizard/crm_make_sale.py:108
#, python-format
msgid "Opportunity "
msgstr "Oportunidad "
#. module: sale_crm
#: code:addons/sale_crm/wizard/crm_make_sale.py:92
#, python-format
msgid "Opportunity: %s"
msgstr "Oportunidad: %s"
#. module: sale_crm
#: model:ir.module.module,shortdesc:sale_crm.module_meta_information
msgid "Creates Sales order from Opportunity"
msgstr "Crea pedido de venta desde oportunidad"
#. module: sale_crm
#: model:ir.actions.act_window,name:sale_crm.action_quotation_for_sale_crm
msgid "Quotations"
msgstr "Presupuestos"
#. module: sale_crm
#: field:crm.make.sale,shop_id:0
msgid "Shop"
msgstr "Tienda"
#. module: sale_crm
#: view:board.board:0
msgid "Opportunities by Stage"
msgstr "Oportunidades por etapa"
#. module: sale_crm
#: view:board.board:0
msgid "My Quotations"
msgstr "Mis presupuestos"
#. module: sale_crm
#: field:crm.make.sale,close:0
msgid "Close Opportunity"
msgstr "Cerrar oportunidad"
#. module: sale_crm
#: view:sale.order:0
#: field:sale.order,section_id:0
msgid "Sales Team"
msgstr "Equipo de ventas"
#. module: sale_crm
#: model:ir.actions.act_window,name:sale_crm.action_crm_make_sale
msgid "Make Quotation"
msgstr "Realizar un presupuesto"
#. module: sale_crm
#: view:crm.make.sale:0
msgid "Cancel"
msgstr "Cancelar"
#. module: sale_crm
#: model:ir.model,name:sale_crm.model_sale_order
msgid "Sales Order"
msgstr "Pedido de venta"

View File

@ -38,7 +38,7 @@
name="product_packaging"
attrs="{'readonly':[('layout_type','!=','article')]}"
context="{'partner_id':parent.partner_id,'quantity':product_uom_qty,'pricelist':parent.pricelist_id,'shop':parent.shop_id,'uom':product_uom}"
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, False, context)"
on_change="product_packaging_change(parent.pricelist_id, product_id, product_uom_qty, product_uom, parent.partner_id, product_packaging, True, context)"
domain="[('product_id','=',product_id)]"
groups="base.group_extended"/>
<separator colspan="4" string="Manual Description" />

View File

@ -0,0 +1,335 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * sale_margin
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0.2\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-07-05 15:57+0000\n"
"PO-Revision-Date: 2011-07-05 15:57+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: sale_margin
#: view:report.account.invoice.product:0
msgid "Category"
msgstr "Categoría"
#. module: sale_margin
#: selection:report.account.invoice.product,type:0
msgid "Customer Refund"
msgstr "Factura de abono de cliente"
#. module: sale_margin
#: selection:report.account.invoice.product,type:0
msgid "Customer Invoice"
msgstr "Factura de cliente"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "February"
msgstr "Febrero"
#. module: sale_margin
#: view:report.account.invoice.product:0
msgid "Current"
msgstr "Actual"
#. module: sale_margin
#: view:report.account.invoice.product:0
msgid "Group By..."
msgstr "Agrupar por..."
#. module: sale_margin
#: view:report.account.invoice.product:0
#: field:report.account.invoice.product,state:0
msgid "State"
msgstr "Estado"
#. module: sale_margin
#: model:ir.module.module,description:sale_margin.module_meta_information
msgid " \n"
" This module adds the 'Margin' on sales order,\n"
" which gives the profitability by calculating the difference between the Unit Price and Cost Price\n"
" "
msgstr " \n"
" Este módulo añade el 'Margen' en el pedido de venta,\n"
" que proporciona la rentabilidad calculando la diferencia entre el precio unidad y el precio de coste\n"
" "
#. module: sale_margin
#: view:report.account.invoice.product:0
#: selection:report.account.invoice.product,state:0
msgid "Draft"
msgstr "Borrador"
#. module: sale_margin
#: selection:report.account.invoice.product,state:0
msgid "Paid"
msgstr "Pagado"
#. module: sale_margin
#: model:ir.model,name:sale_margin.model_stock_picking
msgid "Picking List"
msgstr "Lista de Empaque"
#. module: sale_margin
#: help:sale.order,margin:0
msgid "It gives profitability by calculating the difference between the Unit Price and Cost Price."
msgstr "Proporciona la rentabilidad calculando la diferencia entre el precio unidad y el precio de coste."
#. module: sale_margin
#: field:report.account.invoice.product,type:0
msgid "Type"
msgstr "Tipo"
#. module: sale_margin
#: model:ir.model,name:sale_margin.model_report_account_invoice_product
msgid "Invoice Statistics"
msgstr "Estadísticas de facturas"
#. module: sale_margin
#: view:report.account.invoice.product:0
#: field:report.account.invoice.product,product_id:0
msgid "Product"
msgstr "Producto"
#. module: sale_margin
#: sql_constraint:sale.order:0
msgid "Order Reference must be unique !"
msgstr "¡La referencia del pedido debe ser única!"
#. module: sale_margin
#: view:report.account.invoice.product:0
msgid "Invoice by Partner"
msgstr "Facturas por empresa"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "August"
msgstr "Agosto"
#. module: sale_margin
#: view:report.account.invoice.product:0
#: selection:report.account.invoice.product,state:0
msgid "Pro-forma"
msgstr "Pro-forma"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "May"
msgstr "Mayo"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "June"
msgstr "Junio"
#. module: sale_margin
#: view:report.account.invoice.product:0
msgid "Date Invoiced"
msgstr "Fecha de facturación"
#. module: sale_margin
#: model:ir.module.module,shortdesc:sale_margin.module_meta_information
msgid "Margins in Sales Order"
msgstr "Márgenes en pedidos de venta"
#. module: sale_margin
#: view:report.account.invoice.product:0
msgid "Search Margin"
msgstr "Buscar margen"
#. module: sale_margin
#: view:report.account.invoice.product:0
msgid "This Year"
msgstr "Este año"
#. module: sale_margin
#: field:report.account.invoice.product,date:0
msgid "Date"
msgstr "Fecha"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "July"
msgstr "Julio"
#. module: sale_margin
#: view:report.account.invoice.product:0
msgid "Extended Filters..."
msgstr "Filtros extendidos..."
#. module: sale_margin
#: view:report.account.invoice.product:0
msgid "This Month"
msgstr "Este Mes"
#. module: sale_margin
#: view:report.account.invoice.product:0
#: field:report.account.invoice.product,day:0
msgid "Day"
msgstr "Día"
#. module: sale_margin
#: field:report.account.invoice.product,categ_id:0
msgid "Categories"
msgstr "Categorias"
#. module: sale_margin
#: field:account.invoice.line,cost_price:0
#: field:report.account.invoice.product,cost_price:0
#: field:sale.order.line,purchase_price:0
msgid "Cost Price"
msgstr "Precio coste"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "October"
msgstr "Octubre"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "January"
msgstr "Enero"
#. module: sale_margin
#: view:report.account.invoice.product:0
#: field:report.account.invoice.product,year:0
msgid "Year"
msgstr "Año"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "September"
msgstr "Septiembre"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "April"
msgstr "Abril"
#. module: sale_margin
#: field:report.account.invoice.product,amount:0
msgid "Amount"
msgstr "Importe"
#. module: sale_margin
#: selection:report.account.invoice.product,type:0
msgid "Supplier Refund"
msgstr "Factura de abono de proveedor"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "March"
msgstr "Marzo"
#. module: sale_margin
#: field:report.account.invoice.product,margin:0
#: field:sale.order,margin:0
#: field:sale.order.line,margin:0
msgid "Margin"
msgstr "Margen"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "November"
msgstr "Noviembre"
#. module: sale_margin
#: field:report.account.invoice.product,quantity:0
msgid "Quantity"
msgstr "Cantidad"
#. module: sale_margin
#: view:report.account.invoice.product:0
msgid "Invoices by product"
msgstr "Facturas por producto"
#. module: sale_margin
#: selection:report.account.invoice.product,type:0
msgid "Supplier Invoice"
msgstr "Factura de proveedor"
#. module: sale_margin
#: field:stock.picking,invoice_ids:0
msgid "Invoices"
msgstr "Facturas"
#. module: sale_margin
#: selection:report.account.invoice.product,month:0
msgid "December"
msgstr "Diciembre"
#. module: sale_margin
#: model:ir.model,name:sale_margin.model_account_invoice_line
msgid "Invoice Line"
msgstr "Línea de factura"
#. module: sale_margin
#: view:report.account.invoice.product:0
#: field:report.account.invoice.product,month:0
msgid "Month"
msgstr "Mes"
#. module: sale_margin
#: selection:report.account.invoice.product,state:0
msgid "Canceled"
msgstr "Cancelada"
#. module: sale_margin
#: model:ir.actions.act_window,help:sale_margin.action_report_account_invoice_report
msgid "This report gives you an overview of all the invoices generated by the system. You can sort and group your results by specific selection criteria to quickly find what you are looking for."
msgstr "Este informe ofrece una visión general de todas las facturas generadas por el sistema. Puede ordenar y agrupar los resultados por criterios específicos de selección para encontrar rápidamente lo que busca."
#. module: sale_margin
#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_product
msgid "Invoice Report"
msgstr "Informe de factura"
#. module: sale_margin
#: view:report.account.invoice.product:0
msgid "Done"
msgstr "Realizado"
#. module: sale_margin
#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_reoirt
msgid "Invoice"
msgstr "Factura"
#. module: sale_margin
#: view:stock.picking:0
msgid "Customer Invoices"
msgstr "Facturas de cliente"
#. module: sale_margin
#: view:report.account.invoice.product:0
#: field:report.account.invoice.product,partner_id:0
msgid "Partner"
msgstr "Socio"
#. module: sale_margin
#: model:ir.model,name:sale_margin.model_sale_order
msgid "Sales Order"
msgstr "Pedido de venta"
#. module: sale_margin
#: selection:report.account.invoice.product,state:0
msgid "Open"
msgstr "Abierta"
#. module: sale_margin
#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_report
msgid "Invoice Analysis"
msgstr "Análisis de facturas"
#. module: sale_margin
#: model:ir.model,name:sale_margin.model_sale_order_line
msgid "Sales Order Line"
msgstr "Línea pedido de venta"

View File

@ -0,0 +1,71 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * sale_order_dates
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0.2\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-07-05 16:02+0000\n"
"PO-Revision-Date: 2011-07-05 16:02+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: sale_order_dates
#: sql_constraint:sale.order:0
msgid "Order Reference must be unique !"
msgstr "¡La referencia del pedido debe ser única!"
#. module: sale_order_dates
#: help:sale.order,requested_date:0
msgid "Date on which customer has requested for sales."
msgstr "Fecha en que el cliente ha solicitado la venta."
#. module: sale_order_dates
#: field:sale.order,commitment_date:0
msgid "Commitment Date"
msgstr "Fecha compromiso"
#. module: sale_order_dates
#: field:sale.order,effective_date:0
msgid "Effective Date"
msgstr "Fecha efectiva"
#. module: sale_order_dates
#: model:ir.module.module,shortdesc:sale_order_dates.module_meta_information
msgid "Sales Order Dates"
msgstr "Fechas en pedidos de venta"
#. module: sale_order_dates
#: help:sale.order,effective_date:0
msgid "Date on which picking is created."
msgstr "Fecha en que la orden ha sido creada."
#. module: sale_order_dates
#: field:sale.order,requested_date:0
msgid "Requested Date"
msgstr "Fecha solicitud"
#. module: sale_order_dates
#: model:ir.model,name:sale_order_dates.model_sale_order
msgid "Sales Order"
msgstr "Pedido de venta"
#. module: sale_order_dates
#: model:ir.module.module,description:sale_order_dates.module_meta_information
msgid "\n"
"Add commitment, requested and effective dates on the sales order.\n"
""
msgstr "\n"
"Añade las fechas de compromiso, solicitada y efectiva en el pedido de venta.\n"
""
#. module: sale_order_dates
#: help:sale.order,commitment_date:0
msgid "Date on which delivery of products is to be made."
msgstr "Fecha en que la entrega de productos se va a realizar."

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<data>
<record id="view_groups_form" model="ir.ui.view">
<field name="name">res.groups.form</field>
<field name="model">res.groups</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_groups_form"/>
<field name="arch" type="xml">
<group name="default_filters" position="inside">
<field name="name" position="after">
<field name="share"/>
</group>
</field>
</field>
</record>
</data>

3696
addons/stock/i18n/es_MX.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1384,7 +1384,6 @@
<button name="%(track_line)d" string="Split in production lots" type="action"
icon="terp-stock_effects-object-colorize" attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}"
states="draft,waiting,confirmed,assigned,done"
context="{'default_use_exist': picking_id.type=='in'}"
groups="base.group_extended"/>
<field groups="base.group_extended" name="tracking_id"/>
<button name="setlast_tracking" string="Put in current pack" type="object"
@ -1557,7 +1556,6 @@
<button name="%(track_line)d" string="Split in production lots" type="action"
icon="terp-stock_effects-object-colorize" attrs="{'invisible': [('prodlot_id','&lt;&gt;',False)]}"
states="draft,waiting,confirmed,assigned,done"
context="{'default_use_exist': picking_id.type=='in'}"
groups="base.group_extended"/>
<field name="tracking_id" groups="base.group_extended"/>
<button name="setlast_tracking" string="Put in current pack" type="object"

View File

@ -88,7 +88,7 @@ class stock_partial_picking(osv.osv_memory):
def _partial_move_for(self, cr, uid, move):
partial_move = {
'product_id' : move.product_id.id,
'quantity' : move.product_qty,
'quantity' : move.state == 'assigned' and move.product_qty or 0,
'product_uom' : move.product_uom.id,
'prodlot_id' : move.prodlot_id.id,
'move_id' : move.id,

View File

@ -0,0 +1,594 @@
# Spanish (Chile) translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:16+0000\n"
"PO-Revision-Date: 2011-10-24 19:30+0000\n"
"Last-Translator: Francisco Reyes Acuña <Unknown>\n"
"Language-Team: Spanish (Chile) <es_CL@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: 2011-10-25 04:53+0000\n"
"X-Generator: Launchpad (build 14185)\n"
#. module: stock_location
#: selection:product.pulled.flow,picking_type:0
#: selection:stock.location.path,picking_type:0
msgid "Sending Goods"
msgstr "Envío de mercancías"
#. module: stock_location
#: view:product.product:0
msgid "Pulled Paths"
msgstr "Rutas arrastradas"
#. module: stock_location
#: selection:product.pulled.flow,type_proc:0
msgid "Move"
msgstr "Movimiento"
#. module: stock_location
#: model:ir.model,name:stock_location.model_stock_location_path
msgid "Pushed Flows"
msgstr "Flujos empujados"
#. module: stock_location
#: selection:stock.location.path,auto:0
msgid "Automatic No Step Added"
msgstr "Movimiento automático, paso no añadido"
#. module: stock_location
#: view:product.product:0
msgid "Parameters"
msgstr "Parámetros"
#. module: stock_location
#: field:stock.location.path,location_from_id:0
msgid "Source Location"
msgstr "Ubicación de origen"
#. module: stock_location
#: help:product.pulled.flow,cancel_cascade:0
msgid "Allow you to cancel moves related to the product pull flow"
msgstr ""
"Le permite cancelar movimientos relacionados con el flujo de arrastre de "
"producto."
#. module: stock_location
#: model:ir.model,name:stock_location.model_product_pulled_flow
#: field:product.product,flow_pull_ids:0
msgid "Pulled Flows"
msgstr "Flujos arrastrados"
#. module: stock_location
#: constraint:stock.move:0
msgid "You must assign a production lot for this product"
msgstr "Debe asignar un lote de producción para este producto"
#. module: stock_location
#: help:product.pulled.flow,location_src_id:0
msgid "Location used by Destination Location to supply"
msgstr "Ubicación usada como destino al abastecer."
#. module: stock_location
#: selection:product.pulled.flow,picking_type:0
#: selection:stock.location.path,picking_type:0
msgid "Internal"
msgstr "Interno"
#. module: stock_location
#: code:addons/stock_location/procurement_pull.py:98
#, python-format
msgid ""
"Pulled procurement coming from original location %s, pull rule %s, via "
"original Procurement %s (#%d)"
msgstr ""
"Abastecimiento arrastrado proveniente de la ubicación original %s, regla de "
"arrastre %s, vía abastecimiento original %s (#%d)"
#. module: stock_location
#: model:ir.model,name:stock_location.model_stock_location
msgid "Location"
msgstr "Ubicación"
#. module: stock_location
#: field:product.pulled.flow,invoice_state:0
#: field:stock.location.path,invoice_state:0
msgid "Invoice Status"
msgstr "Estado de facturación"
#. module: stock_location
#: help:product.pulled.flow,name:0
msgid "This field will fill the packing Origin and the name of its moves"
msgstr ""
"Este campo rellenará el origen de la guiá de despacho y el nombre de sus "
"movimientos."
#. module: stock_location
#: help:stock.location.path,auto:0
msgid ""
"This is used to define paths the product has to follow within the location "
"tree.\n"
"The 'Automatic Move' value will create a stock move after the current one "
"that will be validated automatically. With 'Manual Operation', the stock "
"move has to be validated by a worker. With 'Automatic No Step Added', the "
"location is replaced in the original move."
msgstr ""
"Se utiliza para definir rutas que el producto debe seguir dentro del árbol "
"de ubicaciones.\n"
"La opción 'Movimiento automático' creará un movimiento de stock después del "
"actual que se validará automáticamente. Con 'Operación manual', el "
"movimiento de stock debe ser validado por un trabajador. Con 'Automático "
"paso no añadido', la ubicación se reemplaza en el movimiento original."
#. module: stock_location
#: model:ir.module.module,shortdesc:stock_location.module_meta_information
msgid "Warehouse Locations Paths"
msgstr "Rutas en las ubicaciones de almacén"
#. module: stock_location
#: view:product.product:0
msgid "Conditions"
msgstr "Condiciones"
#. module: stock_location
#: model:stock.location,name:stock_location.location_pack_zone
msgid "Pack Zone"
msgstr "Zona de empaquetado"
#. module: stock_location
#: model:stock.location,name:stock_location.location_gate_b
msgid "Gate B"
msgstr "Puerta B"
#. module: stock_location
#: model:stock.location,name:stock_location.location_gate_a
msgid "Gate A"
msgstr "Puerta A"
#. module: stock_location
#: selection:product.pulled.flow,type_proc:0
msgid "Buy"
msgstr "Comprar"
#. module: stock_location
#: view:product.product:0
msgid "Pushed flows"
msgstr "Flujos empujados"
#. module: stock_location
#: model:stock.location,name:stock_location.location_dispatch_zone
msgid "Dispatch Zone"
msgstr "Zona de despacho"
#. module: stock_location
#: model:ir.model,name:stock_location.model_stock_move
msgid "Stock Move"
msgstr "Movimiento de stock"
#. module: stock_location
#: view:product.product:0
msgid "Pulled flows"
msgstr "Flujos arrastrados"
#. module: stock_location
#: field:product.pulled.flow,company_id:0
#: field:stock.location.path,company_id:0
msgid "Company"
msgstr "Empresa"
#. module: stock_location
#: view:product.product:0
msgid "Logistics Flows"
msgstr "Flujos de logística"
#. module: stock_location
#: help:stock.move,cancel_cascade:0
msgid "If checked, when this move is cancelled, cancel the linked move too"
msgstr ""
"Si está marcado, cuando este movimiento se cancela, también cancela el "
"movimiento relacionado."
#. module: stock_location
#: selection:product.pulled.flow,type_proc:0
msgid "Produce"
msgstr "Producir"
#. module: stock_location
#: selection:product.pulled.flow,procure_method:0
msgid "Make to Order"
msgstr "Obtener bajo pedido"
#. module: stock_location
#: selection:product.pulled.flow,procure_method:0
msgid "Make to Stock"
msgstr "Obtener para stock"
#. module: stock_location
#: field:product.pulled.flow,partner_address_id:0
msgid "Partner Address"
msgstr "Dirección de empresa"
#. module: stock_location
#: selection:product.pulled.flow,invoice_state:0
#: selection:stock.location.path,invoice_state:0
msgid "To Be Invoiced"
msgstr "Para facturar"
#. module: stock_location
#: help:stock.location.path,delay:0
msgid "Number of days to do this transition"
msgstr "Número de días para realizar esta transición"
#. module: stock_location
#: model:ir.module.module,description:stock_location.module_meta_information
msgid ""
"\n"
"This module supplements the Warehouse application by adding support for per-"
"product\n"
"location paths, effectively implementing Push and Pull inventory flows.\n"
"\n"
"Typically this could be used to:\n"
"* Manage product manufacturing chains\n"
"* Manage default locations per product\n"
"* Define routes within your warehouse according to business needs, such as:\n"
" - Quality Control\n"
" - After Sales Services\n"
" - Supplier Returns\n"
"* Help rental management, by generating automated return moves for rented "
"products\n"
"\n"
"Once this module is installed, an additional tab appear on the product form, "
"where you can add\n"
"Push and Pull flow specifications. The demo data of CPU1 product for that "
"push/pull :\n"
"\n"
"Push flows\n"
"----------\n"
"Push flows are useful when the arrival of certain products in a given "
"location should always\n"
"be followed by a corresponding move to another location, optionally after a "
"certain delay.\n"
"The original Warehouse application already supports such Push flow "
"specifications on the\n"
"Locations themselves, but these cannot be refined per-product.\n"
"\n"
"A push flow specification indicates which location is chained with which "
"location, and with\n"
"what parameters. As soon as a given quantity of products is moved in the "
"source location,\n"
"a chained move is automatically foreseen according to the parameters set on "
"the flow specification\n"
"(destination location, delay, type of move, journal, etc.) The new move can "
"be automatically\n"
"processed, or require a manual confirmation, depending on the parameters.\n"
"\n"
"Pull flows\n"
"----------\n"
"Pull flows are a bit different from Pull flows, in the sense that they are "
"not related to\n"
"the processing of product moves, but rather to the processing of procurement "
"orders.\n"
"What is being pulled is a need, not directly products.\n"
"A classical example of Push flow is when you have an Outlet company, with a "
"parent Company\n"
"that is responsible for the supplies of the Outlet.\n"
"\n"
" [ Customer ] <- A - [ Outlet ] <- B - [ Holding ] <~ C ~ [ Supplier ]\n"
"\n"
"When a new procurement order (A, coming from the confirmation of a Sale "
"Order for example) arrives\n"
"in the Outlet, it is converted into another procurement (B, via a Push flow "
"of type 'move')\n"
"requested from the Holding. When procurement order B is processed by the "
"Holding company, and\n"
"if the product is out of stock, it can be converted into a Purchase Order "
"(C) from the Supplier\n"
"(Push flow of type Purchase). The result is that the procurement order, the "
"need, is pushed\n"
"all the way between the Customer and Supplier.\n"
"\n"
"Technically, Pull flows allow to process procurement orders differently, not "
"only depending on\n"
"the product being considered, but also depending on which location holds the "
"\"need\" for that\n"
"product (i.e. the destination location of that procurement order).\n"
"\n"
"Use-Case\n"
"--------\n"
"\n"
"You can use the demo data as follow:\n"
" CPU1: Sell some CPU1 from Shop 1 and run the scheduler\n"
" - Warehouse: delivery order, Shop 1: reception\n"
" CPU3:\n"
" - When receiving the product, it goes to Quality Control location then "
"stored to shelf 2.\n"
" - When delivering the customer: Pick List -> Packing -> Delivery Order "
"from Gate A\n"
" "
msgstr ""
"\n"
"Este módulo complementa la aplicación Almacén, añadiendo soporte para cada "
"producto,\n"
"ruta de ubicación, aplicación efectiva de flujos de inventario de Entrada y "
"Salida.\n"
"\n"
"Normalmente, esto se podría utilizar para:\n"
"* Gestión de las cadenas de fabricación de productos\n"
"* Gestionar ubicaciones predeterminadas por producto\n"
"* Definir las rutas dentro de su almacén de acuerdo a las necesidades "
"empresariales, tales como:\n"
" - Control de Calidad\n"
" - Después de Servicios de Ventas\n"
" - Proveedor Devoluciones\n"
"* Gestión de Ayuda a la rentabilidad, mediante la generación de movimientos "
"automáticos para productos alquilados\n"
"\n"
"Una vez que este módulo está instalado, aparecerá una ficha adicional en la "
"pestaña del producto, donde se puede añadir\n"
"las especificaciones del flujo de Entrada y de Salida. Los datos de "
"demostración del producto CPU1 para esos flujos de entrada/salida:\n"
"\n"
"Flujos de Entrada\n"
"----------\n"
"Los flujos de entrada son útiles cuando la llegada de determinados productos "
"a un lugar determinado siempre\n"
"va seguida de un movimiento que corresponde a otra ubicación, opcionalmente "
"después de un cierto retraso.\n"
"La aplicación Almacén original ya soporta tales especificaciones del flujo "
"de entrada en sus Ubicaciones, pero estas no pueden ser refinadas por "
"producto.\n"
"\n"
"Una especificación de flujo de entrada indica qué ubicación está encadenada "
"con qué ubicación, y con\n"
"qué parámetros. Tan pronto como una cantidad determinada de productos se "
"mueve de la ubicación de origen,\n"
"un movimiento encadenado de forma automática configurado de acuerdo con los "
"parámetros establecidos en la especificación del flujo\n"
"(lugar de destino, demora, tipo de movimiento, diarios, etc) se dispara. El "
"nuevo movimiento puede ser automáticamente\n"
"procesado, o requerir una confirmación manual, dependiendo de los "
"parámetros.\n"
"\n"
"Flujos de Salida\n"
"----------\n"
"Los flujos de salida son un poco diferentes de los flujos de entrada, en el "
"sentido de que no están relacionados con\n"
"la tramitación de movimientos de productos, sino más bien con el tratamiento "
"de los pedidos de venta.\n"
"Lo que se saca es una necesidad, no directamente los productos.\n"
"Un ejemplo clásico de flujo de salida es cuando usted tiene una empresa de "
"Outlet, con una empresa padre\n"
"que es la responsable de los suministros del Outlet.\n"
"\n"
" [cliente] <- A - [Outlet] <- B - [Suministrador] <~ C ~ [Proveedor]\n"
"\n"
"Cuando una nueva orden de compra (A, procedente de la confirmación de una "
"orden de venta por ejemplo) llega al Outlet, se convierte en otra compra (B, "
"a través de un flujo de entrada del tipo 'mover')\n"
"solicitada desde el socio. Cuando el orden de compa para B es procesado por "
"la empresa socia, y\n"
"si el producto está agotado, puede convertirse en una Orden de Compra (C) "
"del Proveedor\n"
"(flujo de Entrada de tipo Compra). El resultado es que el orden de "
"adquisición, la necesidad, se traslada automáticamente del Cliente al "
"Proveedor.\n"
"\n"
"Técnicamente, los flujos de Salida permiten procesar los pedidos de "
"adquisición de otra manera, no sólo en función del producto considerado, "
"sino también en función de qué ubicación tiene la \"necesidad\" de qué\n"
"producto (es decir, la ubicación de destino de esa orden de compra).\n"
"\n"
"Caso de Uso\n"
"---------------\n"
"\n"
"Puede utilizar los datos de demostración de la siguiente manera:\n"
" CPU1: Venta de algunas CPU1 en la tienda 1 y ejecutar el planificador\n"
" - Almacén: órden de entrega, Tienda 1: Recepción\n"
" CPU3:\n"
" - Al recibir el producto, va al Control de Calidad y se almacena en la "
"plataforma 2.\n"
" - Cuando se entrega al cliente: Lista de Selección -> Embalaje -> Orden "
"de Entrega desde la puerta A\n"
" "
#. module: stock_location
#: field:product.pulled.flow,type_proc:0
msgid "Type of Procurement"
msgstr "Tipo de abastecimiento"
#. module: stock_location
#: help:product.pulled.flow,company_id:0
msgid "Is used to know to which company belong packings and moves"
msgstr ""
"Se usa para saber a que compañía pertenece las guias de despacho y "
"movimientos."
#. module: stock_location
#: field:product.pulled.flow,name:0
msgid "Name"
msgstr "Nombre"
#. module: stock_location
#: help:product.product,path_ids:0
msgid ""
"These rules set the right path of the product in the whole location tree."
msgstr ""
"Estas reglas fijan la ruta correcta del producto en todo el árbol de "
"ubicaciones."
#. module: stock_location
#: selection:stock.location.path,auto:0
msgid "Manual Operation"
msgstr "Operación manual"
#. module: stock_location
#: model:ir.model,name:stock_location.model_product_product
#: field:product.pulled.flow,product_id:0
msgid "Product"
msgstr "Producto"
#. module: stock_location
#: field:product.pulled.flow,procure_method:0
msgid "Procure Method"
msgstr "Método abastecimiento"
#. module: stock_location
#: field:product.pulled.flow,picking_type:0
#: field:stock.location.path,picking_type:0
msgid "Shipping Type"
msgstr "Tipo de envío"
#. module: stock_location
#: help:product.pulled.flow,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 ""
"'Obtener para stock': Cuando sea necesario, coger del stock o esperar hasta "
"que sea reabastecido. 'Obtener bajo pedido': Cuando sea necesario, comprar o "
"producir para la petición de abastecimiento."
#. module: stock_location
#: help:product.pulled.flow,location_id:0
msgid "Is the destination location that needs supplying"
msgstr "Es la ubicación destino que necesita suministro."
#. module: stock_location
#: field:stock.location.path,product_id:0
msgid "Products"
msgstr "Productos"
#. module: stock_location
#: code:addons/stock_location/procurement_pull.py:118
#, python-format
msgid "Pulled from another location via procurement %d"
msgstr "Arrastrado desde otra ubicación vía abastecimiento %d"
#. module: stock_location
#: model:stock.location,name:stock_location.stock_location_qualitytest0
msgid "Quality Control"
msgstr "Control de calidad"
#. module: stock_location
#: selection:product.pulled.flow,invoice_state:0
#: selection:stock.location.path,invoice_state:0
msgid "Not Applicable"
msgstr "No Aplicable"
#. module: stock_location
#: field:stock.location.path,delay:0
msgid "Delay (days)"
msgstr "Retraso (días)"
#. module: stock_location
#: code:addons/stock_location/procurement_pull.py:67
#, python-format
msgid ""
"Picking for pulled procurement coming from original location %s, pull rule "
"%s, via original Procurement %s (#%d)"
msgstr ""
"Guía de despacho para abastecimiento arrastrado proveniente de la ubicación "
"original %s, regla de arrastre %s, vía abastecimiento original %s (#%d)"
#. module: stock_location
#: field:product.product,path_ids:0
msgid "Pushed Flow"
msgstr "Flujo empujado"
#. module: stock_location
#: code:addons/stock_location/procurement_pull.py:89
#, python-format
msgid ""
"Move for pulled procurement coming from original location %s, pull rule %s, "
"via original Procurement %s (#%d)"
msgstr ""
"Movimiento para abastecimiento arrastrado proveniente de la ubicación "
"original %s, regla de arrastre %s, vía abastecimiento original %s (#%d)"
#. module: stock_location
#: constraint:stock.move:0
msgid "You try to assign a lot which is not from the same product"
msgstr "Está intentando asignar un lote que no es del mismo producto"
#. module: stock_location
#: model:ir.model,name:stock_location.model_procurement_order
msgid "Procurement"
msgstr "Abastecimiento"
#. module: stock_location
#: field:stock.location.path,location_dest_id:0
msgid "Destination Location"
msgstr "Ubicación de destino"
#. module: stock_location
#: field:stock.location.path,auto:0
#: selection:stock.location.path,auto:0
msgid "Automatic Move"
msgstr "Movimiento automático"
#. module: stock_location
#: selection:product.pulled.flow,picking_type:0
#: selection:stock.location.path,picking_type:0
msgid "Getting Goods"
msgstr "Recepción mercancías"
#. module: stock_location
#: view:product.product:0
msgid "Action Type"
msgstr "Tipo de acción"
#. module: stock_location
#: constraint:product.product:0
msgid "Error: Invalid ean code"
msgstr "Error: Código EAN no válido"
#. module: stock_location
#: help:product.pulled.flow,picking_type:0
#: help:stock.location.path,picking_type:0
msgid ""
"Depending on the company, choose whatever you want to receive or send "
"products"
msgstr "Según la compañía, seleccionar si desea recibir o enviar productos."
#. module: stock_location
#: model:stock.location,name:stock_location.location_order
msgid "Order Processing"
msgstr "Procesando pedido"
#. module: stock_location
#: field:stock.location.path,name:0
msgid "Operation"
msgstr "Operación"
#. module: stock_location
#: view:product.product:0
#: field:product.product,path_ids:0
#: view:stock.location.path:0
msgid "Location Paths"
msgstr "Rutas de ubicaciones"
#. module: stock_location
#: field:product.pulled.flow,journal_id:0
#: field:stock.location.path,journal_id:0
msgid "Journal"
msgstr "Diario"
#. module: stock_location
#: field:product.pulled.flow,cancel_cascade:0
#: field:stock.move,cancel_cascade:0
msgid "Cancel Cascade"
msgstr "Cancelar cascada"
#. module: stock_location
#: selection:product.pulled.flow,invoice_state:0
#: selection:stock.location.path,invoice_state:0
msgid "Invoiced"
msgstr "Facturado"

View File

@ -0,0 +1,83 @@
# Spanish (Chile) translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-03 16:58+0000\n"
"PO-Revision-Date: 2011-10-24 19:35+0000\n"
"Last-Translator: Francisco Reyes Acuña <Unknown>\n"
"Language-Team: Spanish (Chile) <es_CL@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: 2011-10-25 04:53+0000\n"
"X-Generator: Launchpad (build 14185)\n"
#. module: stock_no_autopicking
#: model:ir.model,name:stock_no_autopicking.model_product_product
msgid "Product"
msgstr "Producto"
#. module: stock_no_autopicking
#: model:ir.module.module,description:stock_no_autopicking.module_meta_information
msgid ""
"\n"
" This module allows an intermediate picking process to provide raw "
"materials\n"
" to production orders.\n"
"\n"
" One example of usage of this module is to manage production made by "
"your\n"
" suppliers (sub-contracting). To achieve this, set the assembled product\n"
" which is sub-contracted to \"No Auto-Picking\" and put the location of "
"the\n"
" supplier in the routing of the assembly operation.\n"
" "
msgstr ""
"\n"
" Este módulo permite un proceso de recogida intermedio para proveer "
"materias\n"
" primas a las órdenes de fabricación.\n"
"\n"
" Un ejemplo de uso de este módulo es gestionar la producción realizada "
"por sus\n"
" proveedores (subcontratación). Para conseguir esto, establezca los "
"productos ensamblados\n"
" que serán subcontratados a \"No Auto-Recogida\" y establezca la "
"ubicación del nuevo\n"
" proveedor en el proceso de la operación de ensamblado.\n"
" "
#. module: stock_no_autopicking
#: model:ir.model,name:stock_no_autopicking.model_mrp_production
msgid "Manufacturing Order"
msgstr "Orden de fabricación"
#. module: stock_no_autopicking
#: field:product.product,auto_pick:0
msgid "Auto Picking"
msgstr "Auto empaquetado"
#. module: stock_no_autopicking
#: help:product.product,auto_pick:0
msgid "Auto picking for raw materials of production orders."
msgstr "Auto empaquetado para materiales a granel en órdenes de producción."
#. module: stock_no_autopicking
#: constraint:product.product:0
msgid "Error: Invalid ean code"
msgstr "Error: Código EAN no válido"
#. module: stock_no_autopicking
#: model:ir.module.module,shortdesc:stock_no_autopicking.module_meta_information
msgid "Stock No Auto-Picking"
msgstr "Stock no auto empaquetado"
#. module: stock_no_autopicking
#: constraint:mrp.production:0
msgid "Order quantity cannot be negative or zero !"
msgstr "¡La cantidad ordenada no puede ser negativa o cero!"

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -358,24 +358,24 @@ msgstr ""
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -722,8 +722,8 @@ msgid "You must enter one or more column heading."
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr "Моля въведете числов израз"
@ -748,8 +748,9 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr ""
#. module: survey
@ -1089,12 +1090,6 @@ msgstr "Тип на отговор"
msgid "Validation"
msgstr "Валидиране"
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr ""
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1374,7 +1369,7 @@ msgid "Answered"
msgstr "Отговорено"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr ""
@ -1401,7 +1396,7 @@ msgid "Send Invitation"
msgstr "Изпрати покана"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr ""
@ -1517,7 +1512,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr ""

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -369,24 +369,24 @@ msgstr "Camp tipus comentari"
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -754,8 +754,8 @@ msgid "You must enter one or more column heading."
msgstr "Heu d'introduir una o més capçaleres de columna."
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr "Introduïu un valor numèric enter"
@ -782,8 +782,9 @@ msgstr ""
"és major que el número de respostes. Utilitzeu un número menor que %d."
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr "Esperant resposta"
#. module: survey
@ -1131,12 +1132,6 @@ msgstr "Tipus de resposta"
msgid "Validation"
msgstr "Validació"
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr "Esperant resposta"
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1420,7 +1415,7 @@ msgid "Answered"
msgstr "Respost"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr "Enquesta completada"
@ -1447,7 +1442,7 @@ msgid "Send Invitation"
msgstr "Envia invitació"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr "No podeu seleccionar la mateixa resposta més d'una vegada"
@ -1567,7 +1562,7 @@ msgstr ""
"de respostes. Utilitzeu un número menor que %d."
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr "No podeu seleccionar la mateixa resposta més d'una vegada"
@ -1764,3 +1759,6 @@ msgstr "Respostes màximes per usuari"
#: field:survey.name.wiz,page:0
msgid "Page Position"
msgstr "Posició de la pàgina"
#~ msgid "Watting Answer"
#~ msgstr "Esperant resposta"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -358,24 +358,24 @@ msgstr ""
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -722,8 +722,8 @@ msgid "You must enter one or more column heading."
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr ""
@ -748,8 +748,9 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr ""
#. module: survey
@ -1089,12 +1090,6 @@ msgstr ""
msgid "Validation"
msgstr ""
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr ""
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1374,7 +1369,7 @@ msgid "Answered"
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr ""
@ -1401,7 +1396,7 @@ msgid "Send Invitation"
msgstr "Poslat pozvání"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr ""
@ -1517,7 +1512,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr ""

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -368,24 +368,24 @@ msgstr "Kommentar Feldtyp"
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -750,8 +750,8 @@ msgid "You must enter one or more column heading."
msgstr "Sie müssen einer oder mehr Spaltenüberschriften eingeben."
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr "Bitte geben Sie einen Integer Wert ein."
@ -778,8 +778,9 @@ msgstr ""
"Antworten. Bitte geben Sie eine Zahl kleiner als %d ein."
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr "Erwarte Antwort"
#. module: survey
@ -1127,12 +1128,6 @@ msgstr "Antworttyp"
msgid "Validation"
msgstr "Validierung"
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr "Erwarte Antwort"
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1417,7 +1412,7 @@ msgid "Answered"
msgstr "Beantwortet"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr "Komplettiere Antworten zur Umfrage"
@ -1444,7 +1439,7 @@ msgid "Send Invitation"
msgstr "Einladung verschicken"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr "Sie können die selbe Antwort nicht mehr als einmal auswählen."
@ -1565,7 +1560,7 @@ msgstr ""
"der verfügbaren Antworten. Bitte tragen Sie eine Anzahl kleiner als %d ein."
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr "Sie können die selbe Antwort nicht mehr als einmal auswählen."
@ -1919,3 +1914,6 @@ msgstr "Seitenposition"
#~ msgid "Invalid model name in the action definition."
#~ msgstr "Ungültiger Modulname in der Aktionsdefinition."
#~ msgid "Watting Answer"
#~ msgstr "Erwarte Antwort"

View File

@ -15,8 +15,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:38+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 05:00+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -369,24 +369,24 @@ msgstr "Campo tipo comentario"
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -753,8 +753,8 @@ msgid "You must enter one or more column heading."
msgstr "Debe introducir una o más cabeceras de columna."
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr "Por favor introduzca un valor numérico entero"
@ -781,8 +781,9 @@ msgstr ""
"es mayor que el número de respuestas. Por favor, use un número menor que %d."
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr "Esperando respuesta"
#. module: survey
@ -1131,12 +1132,6 @@ msgstr "Tipo respuesta"
msgid "Validation"
msgstr "Validación"
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr "Esperando respuesta"
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1420,7 +1415,7 @@ msgid "Answered"
msgstr "Contestadas"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr "Respuesta completa de la encuesta"
@ -1447,7 +1442,7 @@ msgid "Send Invitation"
msgstr "Enviar invitación"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr "No se puede seleccionar la misma respuesta más de una vez"
@ -1567,7 +1562,7 @@ msgstr ""
"de respuestas. Utilice un número menor que %d."
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr "No puede seleccionar la misma respuesta más de una vez"
@ -1801,6 +1796,9 @@ msgstr "Posición página"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML no válido para la estructura de la vista!"
#~ msgid "Watting Answer"
#~ msgstr "Esperando respuesta"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -358,24 +358,24 @@ msgstr ""
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -722,8 +722,8 @@ msgid "You must enter one or more column heading."
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr ""
@ -748,8 +748,9 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr ""
#. module: survey
@ -1089,12 +1090,6 @@ msgstr ""
msgid "Validation"
msgstr ""
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr ""
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1374,7 +1369,7 @@ msgid "Answered"
msgstr "Vastatud"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr ""
@ -1401,7 +1396,7 @@ msgid "Send Invitation"
msgstr "Saada kutse"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr ""
@ -1517,7 +1512,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr ""

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -369,24 +369,24 @@ msgstr "Type de champ 'Commentaire'"
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -753,8 +753,8 @@ msgid "You must enter one or more column heading."
msgstr "Vous devez saisir un ou plusieurs en-têtes de colonne."
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr "Veuillez saisir un nombre entier"
@ -781,8 +781,9 @@ msgstr ""
"que le nombre de réponses. Veuillez saisir un nombre plus petit que %d."
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr "En attente de réponse"
#. module: survey
@ -1131,12 +1132,6 @@ msgstr "Type de réponse"
msgid "Validation"
msgstr "Validation"
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr "En attente de réponse"
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1420,7 +1415,7 @@ msgid "Answered"
msgstr "Répondu"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr "Terminer de répondre au sondage"
@ -1447,7 +1442,7 @@ msgid "Send Invitation"
msgstr "Envoyer des invitations"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr "Vous ne pouvez pas sélectionner plusieurs fois une même réponse."
@ -1567,7 +1562,7 @@ msgstr ""
"que le nombre de réponses. Veuillez saisir un nombre plus petit que %d."
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr "Vous ne pouvez pas saisir plusieurs fois la même réponse"
@ -1764,3 +1759,6 @@ msgstr "Nb de réponses maximum par utilisateur"
#: field:survey.name.wiz,page:0
msgid "Page Position"
msgstr "Position de la page"
#~ msgid "Watting Answer"
#~ msgstr "En attente de réponse"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -358,24 +358,24 @@ msgstr ""
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -722,8 +722,8 @@ msgid "You must enter one or more column heading."
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr ""
@ -748,8 +748,9 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr ""
#. module: survey
@ -1089,12 +1090,6 @@ msgstr ""
msgid "Validation"
msgstr ""
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr ""
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1374,7 +1369,7 @@ msgid "Answered"
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr ""
@ -1401,7 +1396,7 @@ msgid "Send Invitation"
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr ""
@ -1517,7 +1512,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr ""

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:38+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 05:00+0000\n"
"X-Generator: Launchpad (build 14170)\n"
"Language: hr\n"
#. module: survey
@ -359,24 +359,24 @@ msgstr ""
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -723,8 +723,8 @@ msgid "You must enter one or more column heading."
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr ""
@ -749,8 +749,9 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr ""
#. module: survey
@ -1090,12 +1091,6 @@ msgstr ""
msgid "Validation"
msgstr ""
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr ""
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1375,7 +1370,7 @@ msgid "Answered"
msgstr "Odgovoren"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr ""
@ -1402,7 +1397,7 @@ msgid "Send Invitation"
msgstr "Poslan poziv"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr ""
@ -1518,7 +1513,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr ""

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -358,24 +358,24 @@ msgstr "Megjegyzésmező típusa"
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -723,8 +723,8 @@ msgid "You must enter one or more column heading."
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr "Adjon meg egy egész számot"
@ -749,8 +749,9 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr "Válaszra várva"
#. module: survey
@ -1090,12 +1091,6 @@ msgstr "Válasz típusa"
msgid "Validation"
msgstr "Érvényesítés"
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr "Válaszra várva"
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1375,7 +1370,7 @@ msgid "Answered"
msgstr "Megválaszolt"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr ""
@ -1402,7 +1397,7 @@ msgid "Send Invitation"
msgstr "Meghívás küldése"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr ""
@ -1518,7 +1513,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr ""
@ -1711,3 +1706,6 @@ msgstr "Maximum válasz felhasználónként"
#: field:survey.name.wiz,page:0
msgid "Page Position"
msgstr "Oldal pozíció"
#~ msgid "Watting Answer"
#~ msgstr "Válaszra várva"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -358,24 +358,24 @@ msgstr "Tipo di campo commento"
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -722,8 +722,8 @@ msgid "You must enter one or more column heading."
msgstr "E' necessario inserire una o più colonne intestazione."
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr "Inserire un numero intero"
@ -748,9 +748,10 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgstr ""
msgid "Waiting Answer"
msgstr "In attesa di risposta"
#. module: survey
#: view:survey:0
@ -1091,12 +1092,6 @@ msgstr "Tipo risposta"
msgid "Validation"
msgstr "Convalida"
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr "In attesa di risposta"
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1376,7 +1371,7 @@ msgid "Answered"
msgstr "Risposto"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr ""
@ -1403,7 +1398,7 @@ msgid "Send Invitation"
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr ""
@ -1519,7 +1514,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr ""

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -358,24 +358,24 @@ msgstr "Тайлбар талбарын төрөл"
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -722,8 +722,8 @@ msgid "You must enter one or more column heading."
msgstr "Та нэгээс олон баганад гарчиг оруулах ёстой"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr ""
@ -748,9 +748,10 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgstr ""
msgid "Waiting Answer"
msgstr "Хариулт хүлээх"
#. module: survey
#: view:survey:0
@ -1089,12 +1090,6 @@ msgstr "Хариултын төрөл"
msgid "Validation"
msgstr "Батлагдсан"
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr "Хариулт хүлээх"
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1374,7 +1369,7 @@ msgid "Answered"
msgstr "Хариулсан"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr ""
@ -1401,7 +1396,7 @@ msgid "Send Invitation"
msgstr "Урилга илгээх"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr ""
@ -1517,7 +1512,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr ""

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -367,24 +367,24 @@ msgstr "Opmerking veldsoort"
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -748,8 +748,8 @@ msgid "You must enter one or more column heading."
msgstr "U moet één of meer kolomkoppen invoeren."
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr "Vul aub een heel getal in"
@ -776,8 +776,9 @@ msgstr ""
"Gebruik aub een aantal dat kleiner is dan %d."
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr "Wacht op antwoord"
#. module: survey
@ -1121,12 +1122,6 @@ msgstr "Antwoordsoort"
msgid "Validation"
msgstr "Validatie"
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr "Wacht op antwoord"
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1410,7 +1405,7 @@ msgid "Answered"
msgstr "Beantwoord"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr "Volledig enquête antwoord"
@ -1437,7 +1432,7 @@ msgid "Send Invitation"
msgstr "Uitnodiging versturen"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr "U kunt hetzelfde antwoord niet meer dan één keer selecteren"
@ -1557,7 +1552,7 @@ msgstr ""
"aub een aantal dat kleiner is dan %d."
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr "U kunt hetzelfde antwoord niet meer dan één keer selecteren"
@ -1756,3 +1751,6 @@ msgstr "Pagina positie"
#~ msgid "Invalid model name in the action definition."
#~ msgstr "Ongeldige modelnaam in de actie definitie."
#~ msgid "Watting Answer"
#~ msgstr "Wacht op antwoord"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:37+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 04:59+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -358,24 +358,24 @@ msgstr ""
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -722,8 +722,8 @@ msgid "You must enter one or more column heading."
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr ""
@ -748,8 +748,9 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr ""
#. module: survey
@ -1089,12 +1090,6 @@ msgstr ""
msgid "Validation"
msgstr ""
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr ""
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1374,7 +1369,7 @@ msgid "Answered"
msgstr "Z odpowiedzią"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr ""
@ -1401,7 +1396,7 @@ msgid "Send Invitation"
msgstr "Wyślij zaproszenie"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr ""
@ -1517,7 +1512,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr ""

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:38+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 05:00+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -364,24 +364,24 @@ msgstr ""
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -730,8 +730,8 @@ msgid "You must enter one or more column heading."
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr "Por favor, indique um número inteiro"
@ -756,8 +756,9 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr "Aguardando resposta"
#. module: survey
@ -1099,12 +1100,6 @@ msgstr "Tipo de resposta"
msgid "Validation"
msgstr "Validação"
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr "Aguardando resposta"
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1385,7 +1380,7 @@ msgid "Answered"
msgstr "Respondido"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr ""
@ -1412,7 +1407,7 @@ msgid "Send Invitation"
msgstr "Enviar Convite"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr ""
@ -1528,7 +1523,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr ""
@ -1880,3 +1875,6 @@ msgstr "Posição da Página"
#~ msgid "Response Count"
#~ msgstr "Contagem da Resposta"
#~ msgid "Watting Answer"
#~ msgstr "Aguardando resposta"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:38+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 05:00+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -360,24 +360,24 @@ msgstr "Tipo do Campo de Comentário"
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -726,8 +726,8 @@ msgid "You must enter one or more column heading."
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr "Digite um valor inteiro"
@ -752,8 +752,9 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr "Aguardando Resposta"
#. module: survey
@ -1093,12 +1094,6 @@ msgstr "Tipo de Resposta"
msgid "Validation"
msgstr "Validação"
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr "Aguardando Resposta"
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1380,7 +1375,7 @@ msgid "Answered"
msgstr "Respondida"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr "Resposta Completa da Pesquisa"
@ -1407,7 +1402,7 @@ msgid "Send Invitation"
msgstr "Enviar Convite"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr "Você não pode selecionar a mesma resposta mais de uma vez"
@ -1523,7 +1518,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr "Você não pode selecionar a mesma resposta mais de uma vez"
@ -1716,3 +1711,6 @@ msgstr ""
#: field:survey.name.wiz,page:0
msgid "Page Position"
msgstr ""
#~ msgid "Watting Answer"
#~ msgstr "Aguardando Resposta"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-19 05:38+0000\n"
"X-Generator: Launchpad (build 14157)\n"
"X-Launchpad-Export-Date: 2011-10-22 05:00+0000\n"
"X-Generator: Launchpad (build 14170)\n"
#. module: survey
#: view:survey.print:0
@ -358,24 +358,24 @@ msgstr ""
#: code:addons/survey/survey.py:642
#: code:addons/survey/wizard/survey_answer.py:124
#: code:addons/survey/wizard/survey_answer.py:131
#: code:addons/survey/wizard/survey_answer.py:700
#: code:addons/survey/wizard/survey_answer.py:739
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:788
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:801
#: code:addons/survey/wizard/survey_answer.py:812
#: code:addons/survey/wizard/survey_answer.py:821
#: code:addons/survey/wizard/survey_answer.py:826
#: code:addons/survey/wizard/survey_answer.py:900
#: code:addons/survey/wizard/survey_answer.py:936
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:982
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:988
#: code:addons/survey/wizard/survey_answer.py:1000
#: code:addons/survey/wizard/survey_answer.py:1007
#: code:addons/survey/wizard/survey_answer.py:1010
#: code:addons/survey/wizard/survey_answer.py:699
#: code:addons/survey/wizard/survey_answer.py:738
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:787
#: code:addons/survey/wizard/survey_answer.py:792
#: code:addons/survey/wizard/survey_answer.py:800
#: code:addons/survey/wizard/survey_answer.py:811
#: code:addons/survey/wizard/survey_answer.py:820
#: code:addons/survey/wizard/survey_answer.py:825
#: code:addons/survey/wizard/survey_answer.py:899
#: code:addons/survey/wizard/survey_answer.py:935
#: code:addons/survey/wizard/survey_answer.py:953
#: code:addons/survey/wizard/survey_answer.py:981
#: code:addons/survey/wizard/survey_answer.py:984
#: code:addons/survey/wizard/survey_answer.py:987
#: code:addons/survey/wizard/survey_answer.py:999
#: code:addons/survey/wizard/survey_answer.py:1006
#: code:addons/survey/wizard/survey_answer.py:1009
#: code:addons/survey/wizard/survey_selection.py:134
#: code:addons/survey/wizard/survey_selection.py:138
#: code:addons/survey/wizard/survey_send_invitation.py:74
@ -722,8 +722,8 @@ msgid "You must enter one or more column heading."
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:759
#: code:addons/survey/wizard/survey_answer.py:954
#: code:addons/survey/wizard/survey_answer.py:758
#: code:addons/survey/wizard/survey_answer.py:953
#, python-format
msgid "Please enter an integer value"
msgstr ""
@ -748,8 +748,9 @@ msgid ""
msgstr ""
#. module: survey
#: selection:survey.request,state:0
#: view:survey.request:0
msgid "Watting Answer"
msgid "Waiting Answer"
msgstr ""
#. module: survey
@ -1089,12 +1090,6 @@ msgstr ""
msgid "Validation"
msgstr ""
#. module: survey
#: view:survey.request:0
#: selection:survey.request,state:0
msgid "Waiting Answer"
msgstr ""
#. module: survey
#: selection:survey.question,comment_valid_type:0
#: selection:survey.question,validation_type:0
@ -1374,7 +1369,7 @@ msgid "Answered"
msgstr "Отвечено"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:433
#: code:addons/survey/wizard/survey_answer.py:432
#, python-format
msgid "Complete Survey Answer"
msgstr ""
@ -1401,7 +1396,7 @@ msgid "Send Invitation"
msgstr "Отправить Приглашение"
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:793
#: code:addons/survey/wizard/survey_answer.py:792
#, python-format
msgid "You cannot select the same answer more than one time"
msgstr ""
@ -1517,7 +1512,7 @@ msgid ""
msgstr ""
#. module: survey
#: code:addons/survey/wizard/survey_answer.py:985
#: code:addons/survey/wizard/survey_answer.py:984
#, python-format
msgid "You cannot select same answer more than one time'"
msgstr ""

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