bzr revid: hmo@tinyerp.com-20100226100903-9o0znndezon2vzm7
This commit is contained in:
Harry (Open ERP)
2010-02-26 15:39:03 +05:30
175 changed files with 3534 additions and 2901 deletions
+1
View File
@@ -0,0 +1 @@
.*
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
+3 -3
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-01-30 16:38+0000\n"
"PO-Revision-Date: 2010-02-23 13:20+0000\n"
"Last-Translator: Dukai Gábor <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-31 04:51+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -1789,7 +1789,7 @@ msgstr "Értékesítés"
#: wizard_button:account.account.balance.report,account_selection,checktype:0
#: wizard_button:account.general.ledger.report,account_selection,checktype:0
msgid "Next"
msgstr ""
msgstr "Tovább"
#. module: account
#: help:res.partner,property_account_position:0
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-21 04:56+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
+37 -35
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-02-16 11:32+0000\n"
"Last-Translator: Treecko <Unknown>\n"
"PO-Revision-Date: 2010-02-24 18:59+0000\n"
"Last-Translator: Anders Eriksson <ae@mobilasystem.se>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-17 04:55+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -73,6 +73,8 @@ msgid ""
"This account will be used to value incoming stock for the current product "
"category"
msgstr ""
"Detta konto kommer att användas användas för inleveranser till lagret för "
"den aktuella produktkategorin"
#. module: account
#: help:account.invoice,period_id:0
@@ -105,7 +107,7 @@ msgstr ""
#: model:ir.actions.wizard,name:account.wizard_vat_declaration
#: model:ir.ui.menu,name:account.menu_wizard_vat_declaration
msgid "Print Taxes Report"
msgstr ""
msgstr "Skriv ut momsrapport"
#. module: account
#: field:account.account,parent_id:0
@@ -115,7 +117,7 @@ msgstr ""
#. module: account
#: selection:account.move,type:0
msgid "Journal Voucher"
msgstr ""
msgstr "Journalverifikat"
#. module: account
#: field:account.invoice,residual:0
@@ -159,7 +161,7 @@ msgstr ""
#. module: account
#: model:ir.actions.wizard,name:account.wizard_invoice_state_confirm
msgid "Confirm draft invoices"
msgstr ""
msgstr "Godkänn preliminära fakturor"
#. module: account
#: help:account.payment.term.line,days2:0
@@ -172,12 +174,12 @@ msgstr ""
#. module: account
#: view:account.move:0
msgid "Total Credit"
msgstr ""
msgstr "Total kredit"
#. module: account
#: field:account.config.wizard,charts:0
msgid "Charts of Account"
msgstr ""
msgstr "Kontoplan"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_move_line_select
@@ -200,7 +202,7 @@ msgstr ""
#. module: account
#: field:account.tax.code,sum_period:0
msgid "Period Sum"
msgstr ""
msgstr "Periodtotal"
#. module: account
#: view:account.tax:0
@@ -235,19 +237,19 @@ msgstr ""
#: field:account.tax.template,amount:0
#: xsl:account.transfer:0
msgid "Amount"
msgstr ""
msgstr "Belopp"
#. module: account
#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger
#: model:ir.actions.wizard,name:account.wizard_third_party_ledger
#: model:ir.ui.menu,name:account.menu_third_party_ledger
msgid "Partner Ledger"
msgstr ""
msgstr "Partnerreskontra"
#. module: account
#: field:product.template,supplier_taxes_id:0
msgid "Supplier Taxes"
msgstr ""
msgstr "Leverantörsskatter"
#. module: account
#: view:account.move:0
@@ -282,13 +284,13 @@ msgstr ""
#: selection:account.tax,type:0
#: selection:account.tax.template,type:0
msgid "Fixed"
msgstr ""
msgstr "Fast"
#. module: account
#: model:ir.actions.report.xml,name:account.account_overdue
#: view:res.company:0
msgid "Overdue Payments"
msgstr ""
msgstr "Försenade betalningar"
#. module: account
#: wizard_view:account.account.balance.report,checktype:0
@@ -299,7 +301,7 @@ msgstr ""
#: wizard_view:account.analytic.account.quantity_cost_ledger.report,init:0
#: wizard_view:account.vat.declaration,init:0
msgid "Select period"
msgstr ""
msgstr "Välj period"
#. module: account
#: field:account.invoice,origin:0
@@ -350,7 +352,7 @@ msgstr ""
#: field:account.move.line,analytic_account_id:0
#: field:report.hr.timesheet.invoice.journal,account_id:0
msgid "Analytic Account"
msgstr ""
msgstr "Objekt"
#. module: account
#: field:account.tax,child_depend:0
@@ -363,12 +365,12 @@ msgstr ""
#: rml:account.general.journal:0
#: field:account.journal,name:0
msgid "Journal Name"
msgstr ""
msgstr "Journalnamn"
#. module: account
#: view:account.payment.term:0
msgid "Description on invoices"
msgstr ""
msgstr "Fakturabeskrivning"
#. module: account
#: constraint:account.analytic.account:0
@@ -410,17 +412,17 @@ msgstr ""
#. module: account
#: rml:account.overdue:0
msgid "Date:"
msgstr ""
msgstr "Datum:"
#. module: account
#: selection:account.account.type,sign:0
msgid "Negative"
msgstr ""
msgstr "Negativ"
#. module: account
#: rml:account.partner.balance:0
msgid "(Account/Partner) Name"
msgstr ""
msgstr "(Konto/Partner) namn"
#. module: account
#: selection:account.move,type:0
@@ -464,7 +466,7 @@ msgstr ""
#. module: account
#: rml:account.invoice:0
msgid "Disc.(%)"
msgstr ""
msgstr "Rabatt (%)"
#. module: account
#: rml:account.general.ledger:0
@@ -473,12 +475,12 @@ msgstr ""
#: rml:account.overdue:0
#: field:account.subscription,ref:0
msgid "Ref"
msgstr ""
msgstr "Ref"
#. module: account
#: field:account.tax.template,type_tax_use:0
msgid "Tax Use In"
msgstr ""
msgstr "Aktuell moms"
#. module: account
#: help:account.tax.template,include_base_amount:0
@@ -501,12 +503,12 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_account_tax_code_template_form
#: model:ir.ui.menu,name:account.menu_action_account_tax_code_template_form
msgid "Tax Code Templates"
msgstr ""
msgstr "Momsmallar"
#. module: account
#: view:account.invoice:0
msgid "Supplier invoice"
msgstr ""
msgstr "Leverantörsfaktura"
#. module: account
#: model:process.transition,name:account.process_transition_reconcilepaid0
@@ -523,7 +525,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account.action_account_tax_template_form
#: model:ir.ui.menu,name:account.menu_action_account_tax_template_form
msgid "Tax Templates"
msgstr ""
msgstr "Momsmallar"
#. module: account
#: field:account.invoice,reconciled:0
@@ -549,7 +551,7 @@ msgstr ""
#. module: account
#: view:account.invoice.line:0
msgid "Line"
msgstr ""
msgstr "Rad"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
@@ -560,7 +562,7 @@ msgstr ""
#: selection:account.tax,applicable_type:0
#: selection:account.tax.template,applicable_type:0
msgid "True"
msgstr ""
msgstr "Sant"
#. module: account
#: help:account.payment.term.line,days:0
@@ -577,7 +579,7 @@ msgstr ""
#. module: account
#: rml:account.central.journal:0
msgid "Printing Date"
msgstr ""
msgstr "Utskriftsdatum"
#. module: account
#: rml:account.general.ledger:0
@@ -616,7 +618,7 @@ msgstr ""
#. module: account
#: field:account.analytic.account,contact_id:0
msgid "Contact"
msgstr ""
msgstr "Kontakt"
#. module: account
#: selection:account.model.line,date:0
@@ -637,7 +639,7 @@ msgstr ""
#. module: account
#: field:account.invoice.line,discount:0
msgid "Discount (%)"
msgstr ""
msgstr "Rabatt (%)"
#. module: account
#: wizard_field:account.move.line.reconcile,init_full,writeoff:0
@@ -653,12 +655,12 @@ msgstr ""
#. module: account
#: model:ir.ui.menu,name:account.menu_analytic_accounting
msgid "Analytic Accounting"
msgstr ""
msgstr "Objektsredovisning"
#. module: account
#: rml:account.overdue:0
msgid "Sub-Total :"
msgstr ""
msgstr "Subtotal :"
#. module: account
#: field:account.analytic.account,line_ids:0
@@ -671,7 +673,7 @@ msgstr ""
#. module: account
#: selection:account.subscription,period_type:0
msgid "month"
msgstr ""
msgstr "månad"
#. module: account
#: field:account.analytic.account,partner_id:0
+84 -73
View File
@@ -29,18 +29,6 @@ from mx.DateTime import RelativeDateTime
from tools import config
from tools.translate import _
#class fiscalyear_seq(osv.osv):
# _name = "fiscalyear.seq"
# _description = "Maintains Invoice sequences with Fiscal Year"
# _rec_name = 'fiscalyear_id'
# _columns = {
# 'journal_id': fields.many2one('account.journal', 'Journal'),
# 'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year',required=True),
# 'sequence_id':fields.many2one('ir.sequence', 'Sequence',required=True),
# }
#
#fiscalyear_seq()
class account_invoice(osv.osv):
def _amount_all(self, cr, uid, ids, name, args, context=None):
res = {}
@@ -505,21 +493,21 @@ class account_invoice(osv.osv):
else:
journal_ids=self.pool.get('account.journal').search(cr,uid,[])
dom={'journal_id': [('id','in',journal_ids)]}
if currency_id and company_id:
currency = self.pool.get('res.currency').browse(cr, uid, currency_id)
if currency.company_id.id != company_id:
val['currency_id'] = False
else:
val['currency_id'] = currency.id
if company_id:
company = self.pool.get('res.company').browse(cr, uid, company_id)
if company.currency_id.company_id.id != company_id:
val['currency_id'] = False
val['currency_id'] = False
else:
val['currency_id'] = company.currency_id.id
return {'value' : val, 'domain': dom }
# go from canceled state to draft state
@@ -631,7 +619,84 @@ class account_invoice(osv.osv):
self.write(cr, uid, [inv.id], res['value'])
return True
def check_tax_lines(self, cr, uid, inv, compute_taxes, ait_obj):
if not inv.tax_line:
for tax in compute_taxes.values():
ait_obj.create(cr, uid, tax)
else:
tax_key = []
for tax in inv.tax_line:
if tax.manual:
continue
key = (tax.tax_code_id.id, tax.base_code_id.id, tax.account_id.id)
tax_key.append(key)
if not key in compute_taxes:
raise osv.except_osv(_('Warning !'), _('Global taxes defined, but are not in invoice lines !'))
base = compute_taxes[key]['base']
if abs(base - tax.base) > inv.company_id.currency_id.rounding:
raise osv.except_osv(_('Warning !'), _('Tax base different !\nClick on compute to update tax base'))
for key in compute_taxes:
if not key in tax_key:
raise osv.except_osv(_('Warning !'), _('Taxes missing !'))
def compute_invoice_totals(self, cr, uid, inv, company_currency, ref, invoice_move_lines):
total = 0
total_currency = 0
for i in invoice_move_lines:
if inv.currency_id.id != company_currency:
i['currency_id'] = inv.currency_id.id
i['amount_currency'] = i['price']
i['price'] = cur_obj.compute(cr, uid, inv.currency_id.id,
company_currency, i['price'],
context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')})
else:
i['amount_currency'] = False
i['currency_id'] = False
i['ref'] = ref
if inv.type in ('out_invoice','in_refund'):
total += i['price']
total_currency += i['amount_currency'] or i['price']
i['price'] = - i['price']
else:
total -= i['price']
total_currency -= i['amount_currency'] or i['price']
return total, total_currency, invoice_move_lines
def inv_line_characteristic_hashcode(self, invoice, invoice_line):
"""Overridable hashcode generation for invoice lines. Lines having the same hashcode
will be grouped together if the journal has the 'group line' option. Of course a module
can add fields to invoice lines that would need to be tested too before merging lines
or not."""
return "%s-%s-%s-%s-%s"%(
invoice_line['account_id'],
invoice_line.get('tax_code_id',"False"),
invoice_line.get('product_id',"False"),
invoice_line.get('analytic_account_id',"False"),
invoice_line.get('date_maturity',"False"))
def group_lines(self, cr, uid, iml, line, inv):
"""Merge account move lines (and hence analytic lines) if invoice line hashcodes are equals"""
if inv.journal_id.group_invoice_lines:
line2 = {}
for x, y, l in line:
tmp = self.inv_line_characteristic_hashcode(inv, l)
if tmp in line2:
am = line2[tmp]['debit'] - line2[tmp]['credit'] + (l['debit'] - l['credit'])
line2[tmp]['debit'] = (am > 0) and am or 0.0
line2[tmp]['credit'] = (am < 0) and -am or 0.0
line2[tmp]['tax_amount'] += l['tax_amount']
line2[tmp]['analytic_lines'] += l['analytic_lines']
else:
line2[tmp] = l
line = []
for key, val in line2.items():
line.append((0,0,val))
return line
def action_move_create(self, cr, uid, ids, *args):
"""Creates invoice related analytics and financial move lines"""
ait_obj = self.pool.get('account.invoice.tax')
cur_obj = self.pool.get('res.currency')
context = {}
@@ -650,24 +715,7 @@ class account_invoice(osv.osv):
context.update({'lang': inv.partner_id.lang})
compute_taxes = ait_obj.compute(cr, uid, inv.id, context=context)
if not inv.tax_line:
for tax in compute_taxes.values():
ait_obj.create(cr, uid, tax)
else:
tax_key = []
for tax in inv.tax_line:
if tax.manual:
continue
key = (tax.tax_code_id.id, tax.base_code_id.id, tax.account_id.id)
tax_key.append(key)
if not key in compute_taxes:
raise osv.except_osv(_('Warning !'), _('Global taxes defined, but are not in invoice lines !'))
base = compute_taxes[key]['base']
if abs(base - tax.base) > inv.company_id.currency_id.rounding:
raise osv.except_osv(_('Warning !'), _('Tax base different !\nClick on compute to update tax base'))
for key in compute_taxes:
if not key in tax_key:
raise osv.except_osv(_('Warning !'), _('Taxes missing !'))
self.check_tax_lines(cr, uid, inv, compute_taxes, ait_obj)
if inv.type in ('in_invoice', 'in_refund') and abs(inv.check_total - inv.amount_total) >= (inv.currency_id.rounding/2.0):
raise osv.except_osv(_('Bad total !'), _('Please verify the price of the invoice !\nThe real total does not match the computed total.'))
@@ -684,24 +732,7 @@ class account_invoice(osv.osv):
# create one move line for the total and possibly adjust the other lines amount
total = 0
total_currency = 0
for i in iml:
if inv.currency_id.id != company_currency:
i['currency_id'] = inv.currency_id.id
i['amount_currency'] = i['price']
i['price'] = cur_obj.compute(cr, uid, inv.currency_id.id,
company_currency, i['price'],
context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')})
else:
i['amount_currency'] = False
i['currency_id'] = False
i['ref'] = ref
if inv.type in ('out_invoice','in_refund'):
total += i['price']
total_currency += i['amount_currency'] or i['price']
i['price'] = - i['price']
else:
total -= i['price']
total_currency -= i['amount_currency'] or i['price']
total, total_currency, iml = self.compute_invoice_totals(cr, uid, inv, company_currency, ref, iml)
acc_id = inv.account_id.id
name = inv['name'] or '/'
@@ -756,26 +787,7 @@ class account_invoice(osv.osv):
line = map(lambda x:(0,0,self.line_get_convert(cr, uid, x, part, date, context={})) ,iml)
if inv.journal_id.group_invoice_lines:
line2 = {}
for x, y, l in line:
tmp = str(l['account_id'])
tmp += '-'+str(l.get('tax_code_id',"False"))
tmp += '-'+str(l.get('product_id',"False"))
tmp += '-'+str(l.get('analytic_account_id',"False"))
tmp += '-'+str(l.get('date_maturity',"False"))
if tmp in line2:
am = line2[tmp]['debit'] - line2[tmp]['credit'] + (l['debit'] - l['credit'])
line2[tmp]['debit'] = (am > 0) and am or 0.0
line2[tmp]['credit'] = (am < 0) and -am or 0.0
line2[tmp]['tax_amount'] += l['tax_amount']
line2[tmp]['analytic_lines'] += l['analytic_lines']
else:
line2[tmp] = l
line = []
for key, val in line2.items():
line.append((0,0,val))
line = self.group_lines(cr, uid, iml, line, inv)
journal_id = inv.journal_id.id #self._get_journal(cr, uid, {'type': inv['type']})
journal = self.pool.get('account.journal').browse(cr, uid, journal_id)
@@ -1449,4 +1461,3 @@ class account_invoice_tax(osv.osv):
account_invoice_tax()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
###############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 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/>.
#
##############################################################################
@@ -70,51 +70,51 @@ account_analytic_default()
class account_invoice_line(osv.osv):
_inherit = 'account.invoice.line'
_description = 'account invoice line'
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition=False, price_unit=False, address_invoice_id=False, context={}):
res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition, price_unit, address_invoice_id, context)
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition=False, price_unit=False, address_invoice_id=False, currency_id=False, context={}):
res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition, price_unit, address_invoice_id, currency_id=currency_id, context=context)
rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context)
if rec:
res_prod['value'].update({'account_analytic_id':rec.analytic_id.id})
else:
res_prod['value'].update({'account_analytic_id':False})
res_prod['value'].update({'account_analytic_id':False})
return res_prod
account_invoice_line()
class stock_picking(osv.osv):
_inherit = "stock.picking"
def _get_account_analytic_invoice(self, cursor, user, picking, move_line):
partner_id = picking.address_id and picking.address_id.partner_id or False
rec = self.pool.get('account.analytic.default').account_get(cursor, user, move_line.product_id.id, partner_id and partner_id.id, user, time.strftime('%Y-%m-%d'), context={})
if rec:
return rec.analytic_id.id
return super(stock_picking, self)._get_account_analytic_invoice(cursor,
user, picking, move_line)
stock_picking()
class sale_order_line(osv.osv):
_inherit = 'sale.order.line'
# Method overridden to set the analytic account by default on criterion match
def invoice_line_create(self, cr, uid, ids, context={}):
create_ids = super(sale_order_line,self).invoice_line_create(cr, uid, ids, context)
sale_line_obj = self.browse(cr, uid, ids[0], context)
pool_inv_line = self.pool.get('account.invoice.line')
for line in pool_inv_line.browse(cr, uid, create_ids, context):
rec = self.pool.get('account.analytic.default').account_get(cr, uid, line.product_id.id, sale_line_obj.order_id.partner_id.id, uid, time.strftime('%Y-%m-%d'), context)
if rec:
pool_inv_line.write(cr, uid, [line.id], {'account_analytic_id':rec.analytic_id.id}, context=context)
return create_ids
sale_order_line()
sale_order_line()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-21 04:56+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_default
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_balance
+1 -1
View File
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-22 04:41+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_chart
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-22 04:41+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_chart
-17
View File
@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>account_invoice_layout</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse-pydev version="1.0"?>
<pydev_project>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.4</pydev_property>
</pydev_project>
+53
View File
@@ -0,0 +1,53 @@
# Slovak translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-02-23 08:12+0000\n"
"Last-Translator: Radoslav Sloboda <rado.sloboda@gmail.com>\n"
"Language-Team: Slovak <sk@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: 2010-02-25 04:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_tax_include
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Neplatný súbor XML pre zobrazenie architektúry!"
#. module: account_tax_include
#: field:account.invoice,price_type:0
msgid "Price method"
msgstr ""
#. module: account_tax_include
#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information
msgid "Invoices and prices with taxes included"
msgstr "Faktúry a ceny zahrnuté s DPH"
#. module: account_tax_include
#: selection:account.invoice,price_type:0
msgid "Tax included"
msgstr ""
#. module: account_tax_include
#: selection:account.invoice,price_type:0
msgid "Tax excluded"
msgstr ""
#. module: account_tax_include
#: view:account.tax:0
msgid "Compute Code for Taxes included prices"
msgstr ""
#. module: account_tax_include
#: field:account.invoice.line,price_subtotal_incl:0
msgid "Subtotal"
msgstr "Medzisúčet"
+10 -10
View File
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 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/>.
#
##############################################################################
@@ -36,7 +36,7 @@ class account_invoice(osv.osv):
_defaults = {
'price_type': lambda *a: 'tax_excluded',
}
def refund(self, cr, uid, ids, date=None, period_id=None, description=None):
map_old_new = {}
refund_ids = []
@@ -44,12 +44,12 @@ class account_invoice(osv.osv):
new_id = super(account_invoice,self).refund(cr, uid, ids, date=date, period_id=period_id, description=description)
refund_ids += new_id
map_old_new[old_inv_id] = new_id[0]
for old_inv_id in map_old_new.keys():
old_inv_record = self.read(cr, uid, [old_inv_id], ['price_type'])[0]['price_type']
self.write(cr, uid, [map_old_new[old_inv_id]], {'price_type' : old_inv_record})
return refund_ids
account_invoice()
class account_invoice_line(osv.osv):
@@ -156,16 +156,16 @@ class account_invoice_line(osv.osv):
else:
return super(account_invoice_line, self).product_id_change_unit_price_inv(cr, uid, tax_id, price_unit, qty, address_invoice_id, product, partner_id, context=context)
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, context=None):
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None):
# note: will call product_id_change_unit_price_inv with context...
# Temporary trap, for bad context that came from koo:
# Temporary trap, for bad context that came from koo:
# if isinstance(context, str):
# print "str context:", context
ctx = (context and context.copy()) or {}
ctx.update({'price_type': ctx.get('price_type','tax_excluded')})
return super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, context=ctx)
return super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id=currency_id, context=ctx)
account_invoice_line()
class account_invoice_tax(osv.osv):
@@ -180,7 +180,7 @@ class account_invoice_tax(osv.osv):
cur_obj = self.pool.get('res.currency')
cur = inv.currency_id
company_currency = inv.company_id.currency_id.id
for line in inv.invoice_line:
data = self.pool.get('account.invoice.line')._amount_line2(cr, uid, [line.id], [], [], context)[line.id]
for tax in data['data']:
@@ -218,7 +218,7 @@ class account_invoice_tax(osv.osv):
t['amount'] = cur_obj.round(cr, uid, cur, t['amount'])
t['base_amount'] = cur_obj.round(cr, uid, cur, t['base_amount'])
t['tax_amount'] = cur_obj.round(cr, uid, cur, t['tax_amount'])
return tax_grouped
account_invoice_tax()
+66
View File
@@ -0,0 +1,66 @@
# Slovak translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-02-23 08:09+0000\n"
"Last-Translator: Radoslav Sloboda <rado.sloboda@gmail.com>\n"
"Language-Team: Slovak <sk@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: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: analytic_user_function
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Neplatný súbor XML pre zobrazenie architektúry!"
#. module: analytic_user_function
#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid
msgid "Relation table between users and products on a analytic account"
msgstr ""
#. module: analytic_user_function
#: field:analytic_user_funct_grid,product_id:0
msgid "Product"
msgstr "Produkt"
#. module: analytic_user_function
#: field:analytic_user_funct_grid,account_id:0
msgid "Analytic Account"
msgstr "Analytický účet"
#. module: analytic_user_function
#: view:account.analytic.account:0
#: field:account.analytic.account,user_product_ids:0
msgid "Users/Products Rel."
msgstr ""
#. module: analytic_user_function
#: field:analytic_user_funct_grid,user_id:0
msgid "User"
msgstr "Užívateľ"
#. module: analytic_user_function
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Názov objektu musí začínať x_ a nesmie obsahovať žiadne špeciálne znaky!"
#. module: analytic_user_function
#: model:ir.module.module,shortdesc:analytic_user_function.module_meta_information
msgid "Analytic User Function"
msgstr ""
#. module: analytic_user_function
#: view:analytic_user_funct_grid:0
msgid "User's Product for this Analytic Account"
msgstr ""
+1 -1
View File
@@ -394,7 +394,7 @@ request was delegated to"),
'language': fields.function(_compute_data, method=True, string='Language', type="selection", selection=_lang_get, multi='language', store=True, help="To specify the language for text values in a property or property parameter."),
'user_id': fields.many2one('res.users', 'User'),
'partner_address_id': fields.many2one('res.partner.address', 'Contact'),
'partner_id': fields.related('partner_address_id', 'partner_id', type='many2one', relation='res.partner', string='Partner'),
'partner_id': fields.related('partner_address_id', 'partner_id', type='many2one', relation='res.partner', string='Partner', help="Partner related to contact"),
'email': fields.char('Email', size=124, required=True, help="Email of Invited Person"),
'event_date': fields.function(_compute_data, method=True, string='Event Date', type="datetime", multi='event_date'),
'event_end_date': fields.function(_compute_data, method=True, string='Event End Date', type="datetime", multi='event_end_date'),
+2 -2
View File
@@ -71,8 +71,8 @@
<group colspan="4" col="4">
<field name="user_id" string="Invited User"/>
<newline/>
<field name="partner_id" string="Partner"/>
<field name="partner_address_id" string="Contact"/>
<field name="partner_address_id" string="Partner Contact"/>
<field name="partner_id" string="Partner" readonly="1"/>
<field name="role" string="Role" />
<field name="cutype" string="Invitation type" />
<field name="rsvp" />
+2 -1
View File
@@ -62,12 +62,13 @@ class base_setup_config_choice(osv.osv_memory):
'type': menu.type,
'view_id': view_id,
'domain': menu.domain,
'res_users': menu.res_model,
'res_model': menu.res_model,
'src_model': menu.src_model,
'view_type': menu.view_type,
'view_mode': menu.view_mode,
'views': menu.views,
}
def config(self, cr, uid, ids, context=None):
menu = self.get_default_menu(cr, uid, context=context)
self.set_default_menu(cr, uid, menu, context=context)
+4 -4
View File
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="base.user_demo" model="res.users">
<field name="action_id" ref="action_base_setup"/>
</record>
<!-- TODO: Remove comment after fixing bug #527050-->
<!-- <record id="base.user_demo" model="res.users">-->
<!-- <field name="action_id" ref="action_base_setup"/>-->
<!-- </record>-->
</data>
</openerp>
+10 -10
View File
@@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-12-15 11:05+0000\n"
"PO-Revision-Date: 2010-02-23 08:20+0000\n"
"Last-Translator: Radoslav Sloboda <rado.sloboda@gmail.com>\n"
"Language-Team: Slovak <sk@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: 2009-12-16 05:21+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_account
#: view:board.board:0
msgid "Analytic accounts to close"
msgstr ""
msgstr "Zatvoriť analytické účty"
#. module: board_account
#: view:board.board:0
@@ -36,24 +36,24 @@ msgstr "Neplatný súbor XML pre zobrazenie architektúry!"
#: model:ir.actions.act_window,name:board_account.open_board_account
#: model:ir.ui.menu,name:board_account.menu_board_account
msgid "Accounting Dashboard"
msgstr ""
msgstr "Nástenka účtovníctva"
#. module: board_account
#: model:ir.actions.act_window,name:board_account.action_aged_receivable
msgid "Receivable Accounts"
msgstr ""
msgstr "Účty pohľadávok"
#. module: board_account
#: view:board.board:0
#: model:ir.actions.act_window,name:board_account.act_my_account
msgid "Accounts to invoice"
msgstr ""
msgstr "Účty na faktúre"
#. module: board_account
#: view:board.board:0
#: model:ir.actions.act_window,name:board_account.action_account_analytic_line_to_invoice
msgid "Costs to invoice"
msgstr ""
msgstr "Náklady na faktúru"
#. module: board_account
#: view:board.board:0
@@ -73,17 +73,17 @@ msgstr ""
#. module: board_account
#: view:board.board:0
msgid "My indicators"
msgstr ""
msgstr "Moja ukazovatele"
#. module: board_account
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Neplatný názov modelu v akcii definície."
#. module: board_account
#: model:ir.ui.menu,name:board_account.next_id_68
msgid "Accounting"
msgstr ""
msgstr "Účtovníctvo"
#. module: board_account
#: view:board.board:0
+1
View File
@@ -155,6 +155,7 @@ class crm_case_stage(osv.osv):
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of case stages."),
'object_id': fields.many2one('ir.model','Object Name'),
'probability': fields.float('Probability (%)', required=True),
'on_change': fields.boolean('Set Onchange'),
}
def _find_object_id(self, cr, uid, context=None):
object_id = context and context.get('object_id', False) or False
+2 -1
View File
@@ -36,7 +36,7 @@ class crm_lead(osv.osv):
'name': fields.char('Lead Subject', size=64),
'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]"),
'type_id': fields.many2one('crm.case.resource.type', 'Lead Type Name', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]"),
'partner_name': fields.char("Lead Name", size=64),
'partner_name': fields.char("Partner Name", size=64),
'partner_name2': fields.char('Contact', size=64),
'partner_phone': fields.char('Phone', size=32),
'partner_mobile': fields.char('Mobile', size=32),
@@ -54,6 +54,7 @@ class crm_lead(osv.osv):
"the partner mentality in relation to our services.The scale has" \
"to be created with a factor for each level from 0 (Very dissatisfied) to 10 (Extremely satisfied)."),
'opportunity_id': fields.many2one('crm.opportunity', 'Opportunity'),
'user_id': fields.many2one('res.users', 'Salesman'),
}
crm_lead()
+3 -5
View File
@@ -28,7 +28,7 @@
<field name="arch" type="xml">
<form string="Leads Form">
<group colspan="4" col="7">
<field name="partner_name" string="Lead Name" required="1"/>
<field name="partner_name" string="Partner Name" required="1"/>
<field name="partner_name2"/>
<field name="user_id"/>
<button
@@ -124,11 +124,9 @@
<field name="partner_name2"/>
<field name="email_from"/>
<field name="partner_phone"/>
<field name="stage_id" string="Status"/>
<button name="stage_previous" string="Previous" states="open,pending" type="object" icon="gtk-go-back"/>
<button name="stage_next" string="Next" states="open,pending" type="object" icon="gtk-go-forward"/>
<field name="section_id"/>
<field name="user_id"/>
<field name="state"/>
<button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/>
@@ -191,7 +189,7 @@
<group expand="1" string="Group By..." colspan="4">
<filter string="Stage" icon="terp-crm" domain="[]" context="{'group_by':'stage_id'}"/>
<filter string="Partner" icon="terp-crm" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Responsible" icon="terp-crm" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Salesman" icon="terp-crm" domain="[]" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>
<filter string="Creation" icon="terp-project" domain="[]" context="{'group_by':'create_date'}"/>
<filter string="Exp.Closing" icon="terp-project" domain="[]" context="{'group_by':'date_deadline'}"/>
+7 -2
View File
@@ -27,9 +27,13 @@ from datetime import datetime, timedelta
class crm_opportunity(osv.osv):
_name = 'crm.opportunity'
crm_opportunity()
class crm_phonecall(osv.osv):
_name = 'crm.phonecall'
crm_phonecall()
crm_phonecall()
class crm_meeting(osv.osv):
_name = 'crm.meeting'
_description = "Meeting Cases"
@@ -44,7 +48,8 @@ class crm_meeting(osv.osv):
'phonecall_id':fields.many2one ('crm.phonecall', 'Phonecall'),
'opportunity_id':fields.many2one ('crm.opportunity', 'Opportunity'),
'attendee_ids': fields.many2many('calendar.attendee', 'event_attendee_rel', 'event_id', 'attendee_id', 'Attendees'),
'date_closed': fields.datetime('Closed', readonly=True),
'date_closed': fields.datetime('Closed', readonly=True),
'date_deadline': fields.datetime('Deadline'),
}
crm_meeting()
+8 -5
View File
@@ -37,7 +37,7 @@ class crm_opportunity(osv.osv):
_inherit = 'crm.case'
_columns = {
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]"),
'categ_id': fields.many2one('crm.case.categ', 'Source', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]"),
'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]"),
'type_id': fields.many2one('crm.case.resource.type', 'Resource Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.opportunity')]"),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
'probability': fields.float('Probability (%)'),
@@ -45,17 +45,20 @@ class crm_opportunity(osv.osv):
'ref' : fields.reference('Reference', selection=crm._links_get, size=128),
'ref2' : fields.reference('Reference 2', selection=crm._links_get, size=128),
'date_closed': fields.datetime('Closed', readonly=True),
'user_id': fields.many2one('res.users', 'Salesman'),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True,
help='The state is set to \'Draft\', when a case is created.\
\nIf the case is in progress the state is set to \'Open\'.\
\nWhen the case is over, the state is set to \'Done\'.\
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
}
def onchange_stage_id(self, cr, uid, ids, stage, context={}):
if not stage:
def onchange_stage_id(self, cr, uid, ids, stage_id, context={}):
if not stage_id:
return {'value':{}}
probability = self.pool.get('crm.case.stage').browse(cr, uid, stage, context).probability
return {'value':{'probability':probability}}
stage = self.pool.get('crm.case.stage').browse(cr, uid, stage_id, context)
if not stage.on_change:
return {'value':{}}
return {'value':{'probability':stage.probability}}
crm_opportunity()
+8 -4
View File
@@ -55,7 +55,7 @@
<page string="Opportunity">
<group col="2" colspan="2">
<separator colspan="2" string="Contacts"/>
<field name="partner_id" required="1" select="1" on_change="onchange_partner_id(partner_id, email_from)" colspan="2"/>
<field name="partner_id" select="1" on_change="onchange_partner_id(partner_id, email_from)" colspan="2"/>
<field name="partner_address_id" string="Contact" on_change="onchange_partner_address_id(partner_address_id, email_from)" colspan="1"/>
<field name="email_from" string="Email"/>
<field name="partner_phone"/>
@@ -65,7 +65,7 @@
<field name="type_id" select="1" string="Campaign"/>
<field name="section_id" colspan="1" widget="selection"/>
<field name="priority" string="Priority"/>
<field name="categ_id" select="1" string="Source" widget="selection" domain="[('object_id.model', '=', 'crm.opportunity')]"/>
<field name="categ_id" select="1" string="Category" widget="selection" domain="[('object_id.model', '=', 'crm.opportunity')]"/>
</group>
<separator colspan="4" string="Details"/>
@@ -154,6 +154,7 @@
<field name="planned_revenue" sum="Total of Planned Revenue"/>
<field name="probability" widget="progressbar" avg="Avg. of Probability"/>
<field name="date_deadline" string="Excepted Closing"/>
<field name="section_id"/>
<field name="user_id"/>
<field name="state"/>
<button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/>
@@ -213,8 +214,11 @@
<newline/>
<group expand="1" string="Group By..." colspan="4">
<filter string="Stage" icon="terp-crm" domain="[]" context="{'group_by':'stage_id'}"/>
<filter string="Partner" icon="terp-crm" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Responsible" icon="terp-crm" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Category" icon="terp-crm" domain="[]" context="{'group_by':'categ_id'}"/>
<filter string="Campaign" icon="terp-crm" domain="[]" context="{'group_by':'type_id'}"/>
<separator orientation="vertical"/>
<filter string="Partner" icon="terp-crm" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Salesman" icon="terp-crm" domain="[]" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>
<filter string="Creation" icon="terp-project" domain="[]" context="{'group_by':'create_date'}"/>
<filter string="Exp.Closing" icon="terp-project" domain="[]" context="{'group_by':'date_deadline'}"/>
+2
View File
@@ -76,6 +76,8 @@
<field name="object_id" invisible="1" />
<field name="sequence"/>
<field name="probability"/>
<field name="on_change"/>
</form>
</field>
</record>
+3 -3
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2010-01-05 05:59+0000\n"
"PO-Revision-Date: 2010-02-02 16:15+0000\n"
"PO-Revision-Date: 2010-02-24 10:59+0000\n"
"Last-Translator: Carlo Vettore <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-04 04:47+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
@@ -297,7 +297,7 @@ msgstr "Sezioni"
#. module: crm
#: help:crm.menu.config_wizard,opportunity:0
msgid "Tracks identified business opportunities for your sales pipeline."
msgstr ""
msgstr "Tracce identificano le opportunità per le linee di vendita."
#. module: crm
#: view:crm.meeting:0
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-22 04:41+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
+6 -8
View File
@@ -35,7 +35,7 @@ class lead2opportunity(wizard.interface):
<label string="You may have to verify that this partner does not exist already." colspan="4"/>
<newline />
<field name="action"/>
<group attrs="{'invisible':[('action','=','create')]}">
<group attrs="{'invisible':[('action','!=','exist')]}">
<field name="partner_id" attrs="{'required':[('action','=','exist')]}"/>
</group>
</form>"""
@@ -75,11 +75,9 @@ class lead2opportunity(wizard.interface):
def _selectopportunity(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
case_obj = pool.get('crm.lead')
for case in case_obj.browse(cr, uid, data['ids']):
if not case.partner_id:
return 'create_partner'
return {'name': case.name, 'probability': case.probability or 20.0,
'planned_revenue':case.planned_revenue, 'partner_id':case.partner_id.id}
case = case_obj.browse(cr, uid, data['id'])
return {'name': case.name, 'probability': case.probability,
'planned_revenue':case.planned_revenue, 'partner_id':case.partner_id and case.partner_id.id or False}
def _selectChoice(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
@@ -151,7 +149,7 @@ class lead2opportunity(wizard.interface):
pool = pooler.get_pool(cr.dbname)
lead_case_obj = pool.get('crm.lead')
partner_obj = pool.get('res.partner')
contact_obj = pool.get('res.partner.address')
contact_obj = pool.get('res.partner.address')
if data['form']['action'] == 'create':
for case in lead_case_obj.browse(cr, uid, data['ids']):
partner_id = partner_obj.search(cr, uid, [('name', '=', case.partner_name or case.name)])
@@ -189,7 +187,7 @@ class lead2opportunity(wizard.interface):
'create_partner': {
'actions': [],
'result': {'type': 'form', 'arch': partner_form, 'fields': partner_fields,
'state' : [('end', 'Cancel', 'gtk-cancel'),('create', 'Continue', 'gtk-go-forward')]}
'state' : [('end', 'Cancel', 'gtk-cancel'),('opportunity', 'Skip', 'gtk-goto-last'), ('create', 'Continue', 'gtk-go-forward')]}
},
'create': {
'actions': [],
+41 -41
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-04-10 09:33+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-24 18:48+0000\n"
"Last-Translator: Anders Eriksson <ae@mobilasystem.se>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:05+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: delivery
@@ -36,7 +36,7 @@ msgstr ""
#. module: delivery
#: view:delivery.grid:0
msgid "Destination"
msgstr ""
msgstr "Destination"
#. module: delivery
#: model:product.template,name:delivery.delivery_product_product_template
@@ -71,59 +71,59 @@ msgstr ""
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid
msgid "Delivery Grid"
msgstr ""
msgstr "Leveransmatris"
#. module: delivery
#: field:delivery.grid,zip_from:0
msgid "Start Zip"
msgstr ""
msgstr "Från postnr"
#. module: delivery
#: selection:delivery.grid.line,price_type:0
msgid "Fixed"
msgstr ""
msgstr "Fast"
#. module: delivery
#: field:delivery.grid,line_ids:0
msgid "Grid Line"
msgstr ""
msgstr "Matrisrad"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_delivery_grid_form
#: model:ir.ui.menu,name:delivery.menu_action_delivery_grid_form
msgid "Delivery Pricelist"
msgstr ""
msgstr "Leveransprislista"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_picking_tree5
#: model:ir.ui.menu,name:delivery.menu_action_picking_tree5
msgid "Generate Draft Invoices On Receptions"
msgstr ""
msgstr "Skapa en preliminär faktura vid leverans"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid_line
msgid "Delivery line of grid"
msgstr ""
msgstr "Matrisens leveransrad"
#. module: delivery
#: model:ir.ui.menu,name:delivery.menu_delivery
msgid "Delivery"
msgstr ""
msgstr "Leverans"
#. module: delivery
#: view:delivery.grid.line:0
msgid "Grid Lines"
msgstr ""
msgstr "Matrisrader"
#. module: delivery
#: field:delivery.grid.line,grid_id:0
msgid "Grid"
msgstr ""
msgstr "Matris"
#. module: delivery
#: view:res.partner:0
msgid "Deliveries Properties"
msgstr ""
msgstr "Leveransuppgifter"
#. module: delivery
#: field:delivery.carrier,active:0
@@ -134,13 +134,13 @@ msgstr "Aktiv"
#. module: delivery
#: view:delivery.grid:0
msgid "Grid definition"
msgstr ""
msgstr "Matrisdefinition"
#. module: delivery
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
msgid "Weight * Volume"
msgstr ""
msgstr "Vikt * Volym"
#. module: delivery
#: selection:delivery.grid.line,operator:0
@@ -150,22 +150,22 @@ msgstr ""
#. module: delivery
#: field:delivery.carrier,product_id:0
msgid "Delivery Product"
msgstr ""
msgstr "Leveransprodukt"
#. module: delivery
#: view:delivery.grid.line:0
msgid "Condition"
msgstr ""
msgstr "Villkor"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_carrier
msgid "Carrier and delivery grids"
msgstr ""
msgstr "Distributör- och leveransmatris"
#. module: delivery
#: field:delivery.grid.line,standard_price:0
msgid "Cost Price"
msgstr ""
msgstr "Kostpris"
#. module: delivery
#: field:delivery.grid.line,name:0
@@ -180,7 +180,7 @@ msgstr ""
#. module: delivery
#: field:delivery.grid,country_ids:0
msgid "Countries"
msgstr ""
msgstr "Länder"
#. module: delivery
#: constraint:product.template:0
@@ -196,18 +196,18 @@ msgstr "Anteckningar"
#. module: delivery
#: field:delivery.grid.line,variable_factor:0
msgid "Variable Factor"
msgstr ""
msgstr "Variabel faktor"
#. module: delivery
#: selection:delivery.grid.line,price_type:0
#: field:delivery.grid.line,type:0
msgid "Variable"
msgstr ""
msgstr "Variabel"
#. module: delivery
#: field:delivery.grid,name:0
msgid "Grid Name"
msgstr ""
msgstr "Matrisnamn"
#. module: delivery
#: view:delivery.carrier:0
@@ -222,17 +222,17 @@ msgstr "Bärare"
#: selection:delivery.grid.line,variable_factor:0
#: field:stock.picking,volume:0
msgid "Volume"
msgstr ""
msgstr "Volym"
#. module: delivery
#: field:delivery.grid.line,max_value:0
msgid "Maximum Value"
msgstr ""
msgstr "Maximalt värde"
#. module: delivery
#: wizard_button:delivery.sale.order,init,delivery:0
msgid "Add Delivery Costs"
msgstr ""
msgstr "Lägg till leveranskostnad"
#. module: delivery
#: wizard_field:delivery.sale.order,init,carrier_id:0
@@ -240,7 +240,7 @@ msgstr ""
#: model:ir.ui.menu,name:delivery.menu_action_delivery_carrier_form
#: field:res.partner,property_delivery_carrier:0
msgid "Delivery Method"
msgstr ""
msgstr "Leveransmetod"
#. module: delivery
#: field:sale.order,id:0
@@ -255,19 +255,19 @@ msgstr ""
#. module: delivery
#: model:ir.module.module,shortdesc:delivery.module_meta_information
msgid "Carriers and deliveries"
msgstr ""
msgstr "Distributörer och leveranser"
#. module: delivery
#: field:delivery.carrier,grids_id:0
msgid "Delivery Grids"
msgstr ""
msgstr "Leveranstabeller"
#. module: delivery
#: selection:delivery.grid.line,type:0
#: selection:delivery.grid.line,variable_factor:0
#: field:stock.picking,weight:0
msgid "Weight"
msgstr ""
msgstr "Vikt"
#. module: delivery
#: field:delivery.grid,sequence:0
@@ -277,7 +277,7 @@ msgstr "Sekvens"
#. module: delivery
#: field:delivery.carrier,partner_id:0
msgid "Carrier Partner"
msgstr ""
msgstr "Sistributörpartner"
#. module: delivery
#: model:ir.module.module,description:delivery.module_meta_information
@@ -290,7 +290,7 @@ msgstr ""
#. module: delivery
#: field:delivery.grid,zip_to:0
msgid "To Zip"
msgstr ""
msgstr "Till postnummer"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_picking_tree4
@@ -307,12 +307,12 @@ msgstr ""
#. module: delivery
#: model:ir.actions.wizard,name:delivery.wizard_deliver_line_add
msgid "Delivery Costs"
msgstr ""
msgstr "Leveranskostnad"
#. module: delivery
#: field:delivery.grid.line,list_price:0
msgid "Sale Price"
msgstr ""
msgstr "Försäljningspris"
#. module: delivery
#: constraint:product.product:0
@@ -322,17 +322,17 @@ msgstr ""
#. module: delivery
#: view:delivery.grid:0
msgid "Delivery grids"
msgstr ""
msgstr "Leveransmatriser"
#. module: delivery
#: wizard_button:delivery.sale.order,init,end:0
msgid "Cancel"
msgstr ""
msgstr "Avbryt"
#. module: delivery
#: field:sale.order,carrier_id:0
msgid "Delivery method"
msgstr ""
msgstr "Leveransmetod"
#. module: delivery
#: field:delivery.carrier,price:0
@@ -344,9 +344,9 @@ msgstr "Pris"
#. module: delivery
#: constraint:res.partner:0
msgid "The VAT doesn't seem to be correct."
msgstr ""
msgstr "Momsen verkar vara fel"
#. module: delivery
#: field:delivery.grid.line,price_type:0
msgid "Price Type"
msgstr ""
msgstr "Pristyp"
+76 -75
View File
@@ -36,26 +36,27 @@ import tools
from tools.translate import _
import nodes
DMS_ROOT_PATH = tools.config.get('document_path', os.path.join(tools.config['root_path'], 'filestore'))
class document_file(osv.osv):
_inherit = 'ir.attachment'
_rec_name = 'datas_fname'
def _get_filestore(self, cr):
return os.path.join(tools.config['root_path'], 'filestore', cr.dbname)
return os.path.join(DMS_ROOT_PATH, cr.dbname)
def _data_get(self, cr, uid, ids, name, arg, context):
fbrl = self.browse(cr,uid,ids,context=context)
nctx = nodes.get_node_context(cr,uid,context)
fbrl = self.browse(cr, uid, ids, context=context)
nctx = nodes.get_node_context(cr, uid, context)
result = {}
bin_size = context.get('bin_size', False)
for fbro in fbrl:
fnode = nodes.node_file(None,None,nctx,fbro)
fnode = nodes.node_file(None, None, nctx, fbro)
if not bin_size:
data = fnode.get_data(cr,fbro)
data = fnode.get_data(cr, fbro)
result[fbro.id] = base64.encodestring(data or '')
else:
result[fbro.id] = fnode.get_data_len(cr,fbro)
result[fbro.id] = fnode.get_data_len(cr, fbro)
return result
#
@@ -64,10 +65,10 @@ class document_file(osv.osv):
def _data_set(self, cr, uid, id, name, value, arg, context):
if not value:
return True
fbro = self.browse(cr,uid,id,context=context)
nctx = nodes.get_node_context(cr,uid,context)
fnode = nodes.node_file(None,None,nctx,fbro)
res = fnode.set_data(cr,base64.decodestring(value),fbro)
fbro = self.browse(cr, uid, id, context=context)
nctx = nodes.get_node_context(cr, uid, context)
fnode = nodes.node_file(None, None, nctx, fbro)
res = fnode.set_data(cr, base64.decodestring(value), fbro)
return res
_columns = {
@@ -79,138 +80,138 @@ class document_file(osv.osv):
'file_type': fields.char('Content Type', size=32),
# If ir.attachment contained any data before document is installed, preserve
# the data, don't drop the column!
'db_datas': fields.binary('Data',oldname='datas'),
'db_datas': fields.binary('Data', oldname='datas'),
'index_content': fields.text('Indexed Content'),
'write_date': fields.datetime('Date Modified', readonly=True),
'write_uid': fields.many2one('res.users', 'Last Modification User', readonly=True),
'create_date': fields.datetime('Date Created', readonly=True),
'create_uid': fields.many2one('res.users', 'Creator', readonly=True),
'store_method': fields.selection([('db','Database'),('fs','Filesystem'),('link','Link')], "Storing Method"),
'datas': fields.function(_data_get,method=True,fnct_inv=_data_set,string='File Content',type="binary", nodrop=True),
'store_method': fields.selection([('db', 'Database'), ('fs', 'Filesystem'), ('link', 'Link')], "Storing Method"),
'datas': fields.function(_data_get, method=True, fnct_inv=_data_set, string='File Content', type="binary", nodrop=True),
'store_fname': fields.char('Stored Filename', size=200),
'res_model': fields.char('Attached Model', size=64), #res_model
'res_id': fields.integer('Attached ID'), #res_id
'partner_id':fields.many2one('res.partner', 'Partner', select=1),
'title': fields.char('Resource Title',size=64),
'title': fields.char('Resource Title', size=64),
}
def __get_def_directory(self,cr,uid, context = None):
def __get_def_directory(self, cr, uid, context=None):
dirobj = self.pool.get('document.directory')
return dirobj._get_root_directory(cr,uid,context)
return dirobj._get_root_directory(cr, uid, context)
_defaults = {
'user_id': lambda self,cr,uid,ctx:uid,
'file_size': lambda self,cr,uid,ctx:0,
'user_id': lambda self, cr, uid, ctx:uid,
'file_size': lambda self, cr, uid, ctx:0,
'store_method': lambda *args: 'db',
'parent_id': __get_def_directory
}
_sql_constraints = [
('filename_uniq', 'unique (name,parent_id,res_id,res_model)', 'The file name must be unique !')
]
def _check_duplication(self, cr, uid,vals,ids=[],op='create'):
name=vals.get('name',False)
parent_id=vals.get('parent_id',False)
res_model=vals.get('res_model',False)
res_id=vals.get('res_id',0)
if op=='write':
for file in self.browse(cr,uid,ids):
def _check_duplication(self, cr, uid, vals, ids=[], op='create'):
name = vals.get('name', False)
parent_id = vals.get('parent_id', False)
res_model = vals.get('res_model', False)
res_id = vals.get('res_id', 0)
if op == 'write':
for file in self.browse(cr, uid, ids):
if not name:
name=file.name
name = file.name
if not parent_id:
parent_id=file.parent_id and file.parent_id.id or False
parent_id = file.parent_id and file.parent_id.id or False
if not res_model:
res_model=file.res_model and file.res_model or False
res_model = file.res_model and file.res_model or False
if not res_id:
res_id=file.res_id and file.res_id or 0
res=self.search(cr,uid,[('id','<>',file.id),('name','=',name),('parent_id','=',parent_id),('res_model','=',res_model),('res_id','=',res_id)])
res_id = file.res_id and file.res_id or 0
res = self.search(cr, uid, [('id', '<>', file.id), ('name', '=', name), ('parent_id', '=', parent_id), ('res_model', '=', res_model), ('res_id', '=', res_id)])
if len(res):
return False
if op=='create':
res=self.search(cr,uid,[('name','=',name),('parent_id','=',parent_id),('res_id','=',res_id),('res_model','=',res_model)])
if op == 'create':
res = self.search(cr, uid, [('name', '=', name), ('parent_id', '=', parent_id), ('res_id', '=', res_id), ('res_model', '=', res_model)])
if len(res):
return False
return True
def copy(self, cr, uid, id, default=None, context=None):
if not default:
default ={}
default = {}
if 'name' not in default:
name = self.read(cr, uid, [id])[0]['name']
default.update({'name': name+ " (copy)"})
return super(document_file,self).copy(cr,uid,id,default,context)
default.update({'name': name + " (copy)"})
return super(document_file, self).copy(cr, uid, id, default, context)
def write(self, cr, uid, ids, vals, context=None):
res=self.search(cr,uid,[('id','in',ids)])
res = self.search(cr, uid, [('id', 'in', ids)])
if not len(res):
return False
if not self._check_duplication(cr,uid,vals,ids,'write'):
if not self._check_duplication(cr, uid, vals, ids, 'write'):
raise osv.except_osv(_('ValidateError'), _('File name must be unique!'))
result = super(document_file,self).write(cr,uid,ids,vals,context=context)
result = super(document_file, self).write(cr, uid, ids, vals, context=context)
cr.commit()
return result
def create(self, cr, uid, vals, context=None):
if not context:
context = {}
vals['title']=vals['name']
vals['parent_id'] = context.get('parent_id',False) or vals.get('parent_id',False)
if not vals.get('res_id', False) and context.get('default_res_id',False):
vals['res_id']=context.get('default_res_id',False)
if not vals.get('res_model', False) and context.get('default_res_model',False):
vals['res_model']=context.get('default_res_model',False)
if vals.get('res_id', False) and vals.get('res_model',False):
obj_model=self.pool.get(vals['res_model'])
vals['title'] = vals['name']
vals['parent_id'] = context.get('parent_id', False) or vals.get('parent_id', False)
if not vals.get('res_id', False) and context.get('default_res_id', False):
vals['res_id'] = context.get('default_res_id', False)
if not vals.get('res_model', False) and context.get('default_res_model', False):
vals['res_model'] = context.get('default_res_model', False)
if vals.get('res_id', False) and vals.get('res_model', False):
obj_model = self.pool.get(vals['res_model'])
result = obj_model.read(cr, uid, [vals['res_id']], context=context)
if len(result):
obj=result[0]
if obj.get('name',False):
vals['title'] = (obj.get('name',''))[:60]
if obj_model._name=='res.partner':
vals['partner_id']=obj['id']
elif obj.get('address_id',False):
if isinstance(obj['address_id'],tuple) or isinstance(obj['address_id'],list):
address_id=obj['address_id'][0]
obj = result[0]
if obj.get('name', False):
vals['title'] = (obj.get('name', ''))[:60]
if obj_model._name == 'res.partner':
vals['partner_id'] = obj['id']
elif obj.get('address_id', False):
if isinstance(obj['address_id'], tuple) or isinstance(obj['address_id'], list):
address_id = obj['address_id'][0]
else:
address_id=obj['address_id']
address=self.pool.get('res.partner.address').read(cr,uid,[address_id],context=context)
address_id = obj['address_id']
address = self.pool.get('res.partner.address').read(cr, uid, [address_id], context=context)
if len(address):
vals['partner_id']=address[0]['partner_id'][0] or False
elif obj.get('partner_id',False):
if isinstance(obj['partner_id'],tuple) or isinstance(obj['partner_id'],list):
vals['partner_id']=obj['partner_id'][0]
vals['partner_id'] = address[0]['partner_id'][0] or False
elif obj.get('partner_id', False):
if isinstance(obj['partner_id'], tuple) or isinstance(obj['partner_id'], list):
vals['partner_id'] = obj['partner_id'][0]
else:
vals['partner_id']=obj['partner_id']
vals['partner_id'] = obj['partner_id']
datas=None
if vals.get('link',False) :
datas = None
if vals.get('link', False) :
import urllib
datas=base64.encodestring(urllib.urlopen(vals['link']).read())
datas = base64.encodestring(urllib.urlopen(vals['link']).read())
else:
datas = vals.get('datas',False)
datas = vals.get('datas', False)
vals['file_size']= datas and len(datas) or 0
if not self._check_duplication(cr,uid,vals):
vals['file_size'] = datas and len(datas) or 0
if not self._check_duplication(cr, uid, vals):
raise osv.except_osv(_('ValidateError'), _('File name must be unique!'))
result = super(document_file,self).create(cr, uid, vals, context)
result = super(document_file, self).create(cr, uid, vals, context)
cr.commit()
return result
def unlink(self,cr, uid, ids, context={}):
def unlink(self, cr, uid, ids, context={}):
stor = self.pool.get('document.storage')
unres= []
unres = []
# We have to do the unlink in 2 stages: prepare a list of actual
# files to be unlinked, update the db (safer to do first, can be
# rolled back) and then unlink the files. The list wouldn't exist
# after we discard the objects
for f in self.browse(cr, uid, ids, context):
# TODO: update the node cache
r = stor.prepare_unlink(cr,uid,f.parent_id.storage_id, f)
r = stor.prepare_unlink(cr, uid, f.parent_id.storage_id, f)
if r:
unres.append(r)
res = super(document_file, self).unlink(cr, uid, ids, context)
stor.do_unlink(cr,uid,unres)
stor.do_unlink(cr, uid, unres)
return res
document_file()
+55 -54
View File
@@ -34,6 +34,8 @@ import string
import netsvc
from content_index import cntIndex
DMS_ROOT_PATH = tools.config.get('document_path', os.path.join(tools.config.get('root_path'), 'filestore'))
""" The algorithm of data storage
@@ -71,12 +73,12 @@ def random_name():
name = "".join(d)
return name
INVALID_CHARS={'*':str(hash('*')), '|':str(hash('|')) , "\\":str(hash("\\")), '/':'__', ':':str(hash(':')), '"':str(hash('"')), '<':str(hash('<')) , '>':str(hash('>')) , '?':str(hash('?'))}
INVALID_CHARS = {'*':str(hash('*')), '|':str(hash('|')) , "\\":str(hash("\\")), '/':'__', ':':str(hash(':')), '"':str(hash('"')), '<':str(hash('<')) , '>':str(hash('>')) , '?':str(hash('?'))}
def create_directory(path):
dir_name = random_name()
path = os.path.join(path,dir_name)
path = os.path.join(path, dir_name)
os.makedirs(path)
return dir_name
@@ -103,19 +105,18 @@ class document_storage(osv.osv):
'user_id': fields.many2one('res.users', 'Owner'),
'group_ids': fields.many2many('res.groups', 'document_directory_group_rel', 'item_id', 'group_id', 'Groups'),
'dir_ids': fields.one2many('document.directory', 'parent_id', 'Directories'),
'type': fields.selection([('db','Database'),('filestore','Internal File storage'),
('realstore','External file storage'), ('virtual','Virtual storage')], 'Type', required=True),
'path': fields.char('Path',size=250,select=1,help="For file storage, the root path of the storage"),
'online': fields.boolean('Online',help="If not checked, media is currently offline and its contents not available", required=True),
'type': fields.selection([('db', 'Database'), ('filestore', 'Internal File storage'),
('realstore', 'External file storage'), ('virtual', 'Virtual storage')], 'Type', required=True),
'path': fields.char('Path', size=250, select=1, help="For file storage, the root path of the storage"),
'online': fields.boolean('Online', help="If not checked, media is currently offline and its contents not available", required=True),
'readonly': fields.boolean('Read Only', help="If set, media is for reading only"),
}
def _get_rootpath(self,cr,uid,context=None):
from tools import config
return os.path.join(tools.config['root_path'], 'filestore', cr.dbname)
def _get_rootpath(self, cr, uid, context=None):
return os.path.join(DMS_ROOT_PATH, cr.dbname)
_defaults = {
'user_id': lambda self,cr,uid,ctx: uid,
'user_id': lambda self, cr, uid, ctx: uid,
'online': lambda *args: True,
'readonly': lambda *args: False,
# Note: the defaults below should only be used ONCE for the default
@@ -127,22 +128,22 @@ class document_storage(osv.osv):
# SQL note: a path = NULL doesn't have to be unique.
('path_uniq', 'UNIQUE(type,path)', "The storage path must be unique!")
]
def get_data(self, cr,uid, id, file_node,context = None, fil_obj = None):
def get_data(self, cr, uid, id, file_node, context=None, fil_obj=None):
""" retrieve the contents of some file_node having storage_id = id
optionally, fil_obj could point to the browse object of the file
(ir.attachment)
"""
if not context:
context = {}
boo = self.browse(cr,uid,id,context)
boo = self.browse(cr, uid, id, context)
if fil_obj:
ira = fil_obj
else:
ira = self.pool.get('ir.attachment').browse(cr,uid, file_node.file_id, context=context)
return self.__get_data_3(cr,uid,boo, ira, context)
def __get_data_3(self,cr,uid, boo, ira, context):
ira = self.pool.get('ir.attachment').browse(cr, uid, file_node.file_id, context=context)
return self.__get_data_3(cr, uid, boo, ira, context)
def __get_data_3(self, cr, uid, boo, ira, context):
if not boo.online:
raise RuntimeError('media offline')
if boo.type == 'filestore':
@@ -150,17 +151,17 @@ class document_storage(osv.osv):
# On a migrated db, some files may have the wrong storage type
# try to fix their directory.
if ira.file_size:
netsvc.Logger().notifyChannel('document',netsvc.LOG_WARNING,"ir.attachment #%d does not have a filename, but is at filestore, fix it!" %ira.id)
netsvc.Logger().notifyChannel('document', netsvc.LOG_WARNING, "ir.attachment #%d does not have a filename, but is at filestore, fix it!" % ira.id)
return None
fpath = os.path.join(boo.path,ira.store_fname)
print "Trying to read \"%s\".."% fpath
return file(fpath,'rb').read()
fpath = os.path.join(boo.path, ira.store_fname)
print "Trying to read \"%s\".." % fpath
return file(fpath, 'rb').read()
elif boo.type == 'db':
# TODO: we need a better api for large files
if ira.db_datas:
out=base64.decodestring(ira.db_datas)
out = base64.decodestring(ira.db_datas)
else:
out=''
out = ''
return out
elif boo.type == 'realstore':
# fpath = os.path.join(boo.path,
@@ -168,23 +169,23 @@ class document_storage(osv.osv):
else:
raise TypeError("No %s storage" % boo.type)
def set_data(self, cr,uid, id, file_node, data, context = None, fil_obj = None):
def set_data(self, cr, uid, id, file_node, data, context=None, fil_obj=None):
""" store the data.
This function MUST be used from an ir.attachment. It wouldn't make sense
to store things persistently for other types (dynamic).
"""
if not context:
context = {}
boo = self.browse(cr,uid,id,context)
boo = self.browse(cr, uid, id, context)
logger = netsvc.Logger()
if fil_obj:
ira = fil_obj
else:
ira = self.pool.get('ir.attachment').browse(cr,uid, file_node.file_id, context=context)
ira = self.pool.get('ir.attachment').browse(cr, uid, file_node.file_id, context=context)
if not boo.online:
raise RuntimeError('media offline')
logger.notifyChannel('document',netsvc.LOG_DEBUG,"Store data for ir.attachment #%d" %ira.id)
logger.notifyChannel('document', netsvc.LOG_DEBUG, "Store data for ir.attachment #%d" % ira.id)
store_fname = None
fname = None
if boo.type == 'filestore':
@@ -192,32 +193,32 @@ class document_storage(osv.osv):
try:
flag = None
# This can be improved
if os.path.isdir(path):
if os.path.isdir(path):
for dirs in os.listdir(path):
if os.path.isdir(os.path.join(path,dirs)) and len(os.listdir(os.path.join(path,dirs)))<4000:
if os.path.isdir(os.path.join(path, dirs)) and len(os.listdir(os.path.join(path, dirs))) < 4000:
flag = dirs
break
flag = flag or create_directory(path)
filename = random_name()
fname = os.path.join(path, flag, filename)
fp = file(fname,'wb')
fp = file(fname, 'wb')
fp.write(data)
fp.close()
logger.notifyChannel('document',netsvc.LOG_DEBUG,"Saved data to %s" % fname)
logger.notifyChannel('document', netsvc.LOG_DEBUG, "Saved data to %s" % fname)
filesize = len(data) # os.stat(fname).st_size
store_fname = os.path.join(flag,filename)
store_fname = os.path.join(flag, filename)
# TODO Here, an old file would be left hanging.
except Exception,e :
netsvc.Logger().notifyChannel('document',netsvc.LOG_WARNING,"Couldn't save data: %s" %str(e))
except Exception, e :
netsvc.Logger().notifyChannel('document', netsvc.LOG_WARNING, "Couldn't save data: %s" % str(e))
raise except_orm(_('Error!'), str(e))
elif boo.type == 'db':
filesize = len(data)
# will that work for huge data? TODO
out=base64.encodestring(data)
out = base64.encodestring(data)
cr.execute('UPDATE ir_attachment SET db_datas = %s WHERE id = %s',
( out, file_node.file_id ))
(out, file_node.file_id))
else:
raise TypeError("No %s storage" % boo.type)
@@ -226,9 +227,9 @@ class document_storage(osv.osv):
icont = ''
mime = ira.file_type
try:
mime,icont = cntIndex.doIndex(data, ira.datas_fname,
ira.file_type or None,fname)
except Exception,e:
mime, icont = cntIndex.doIndex(data, ira.datas_fname,
ira.file_type or None, fname)
except Exception, e:
logger.notifyChannel('document', netsvc.LOG_DEBUG, 'Cannot index file: %s' % str(e))
pass
@@ -236,46 +237,46 @@ class document_storage(osv.osv):
# to write the fname and size, and update them in the db concurrently.
# We cannot use a write() here, because we are already in one.
cr.execute('UPDATE ir_attachment SET store_fname = %s, file_size = %s, index_content = %s, file_type = %s WHERE id = %s',
(store_fname, filesize, ustr(icont), mime, file_node.file_id ))
(store_fname, filesize, ustr(icont), mime, file_node.file_id))
file_node.content_length = filesize
file_node.content_type = mime
return True
except Exception,e :
netsvc.Logger().notifyChannel('document',netsvc.LOG_WARNING,"Couldn't save data: %s" %str(e))
except Exception, e :
netsvc.Logger().notifyChannel('document', netsvc.LOG_WARNING, "Couldn't save data: %s" % str(e))
# should we really rollback once we have written the actual data?
# at the db case (only), that rollback would be safe
raise except_orm(_('Error at doc write!'), str(e))
def prepare_unlink(self,cr,uid,storage_bo, fil_bo):
def prepare_unlink(self, cr, uid, storage_bo, fil_bo):
""" Before we unlink a file (fil_boo), prepare the list of real
files that have to be removed, too. """
if not storage_bo.online:
raise RuntimeError('media offline')
if storage_bo.type == 'filestore':
fname = fil_bo.store_fname
if not fname:
return None
path = storage_bo.path
return ( storage_bo.id, 'file', os.path.join(path,fname))
return (storage_bo.id, 'file', os.path.join(path, fname))
elif storage_bo.type == 'db':
return None
else:
raise TypeError("No %s storage" % boo.type)
def do_unlink(self, cr,uid,unres):
def do_unlink(self, cr, uid, unres):
for id, ktype, fname in unres:
if ktype == 'file':
try:
os.unlink(fname)
except Exception,e:
netsvc.Logger().notifyChannel('document',netsvc.LOG_WARNING,"Could not remove file %s, please remove manually." % fname)
except Exception, e:
netsvc.Logger().notifyChannel('document', netsvc.LOG_WARNING, "Could not remove file %s, please remove manually." % fname)
else:
netsvc.Logger().notifyChannel('document',netsvc.LOG_WARNING,"Unknown unlink key %s" % ktype)
netsvc.Logger().notifyChannel('document', netsvc.LOG_WARNING, "Unknown unlink key %s" % ktype)
return True
document_storage()
+14 -9
View File
@@ -24,11 +24,15 @@ import ftpserver
import authorizer
import abstracted_fs
import netsvc
from tools import config
from tools.misc import detect_ip_addr
HOST = ''
PORT = 8021
if detect_ip_addr:
HOST = config.get('ftp_server_host', detect_ip_addr())
else:
HOST = config.get('ftp_server_host', '127.0.0.1')
PORT = int(config.get('ftp_server_port', '8021'))
PASSIVE_PORTS = None
pps = config.get('ftp_server_passive_ports', '').split(':')
if len(pps) == 2:
@@ -52,14 +56,15 @@ class ftp_server(threading.Thread):
ftpserver.logline = lambda msg: None
ftpserver.logerror = lambda msg: self.log(netsvc.LOG_ERROR, msg)
HOST = config.get('ftp_server_address', detect_ip_addr())
PORT = int(config.get('ftp_server_port', '8021'))
address = (HOST, PORT)
ftpd = ftpserver.FTPServer(address, ftpserver.FTPHandler)
ftpd = ftpserver.FTPServer((HOST, PORT), ftpserver.FTPHandler)
ftpd.serve_forever()
ds = ftp_server()
ds.start()
if HOST.lower() == 'none':
netsvc.Logger().notifyChannel("FTP", netsvc.LOG_INFO, "\n Server FTP Not Started\n")
else:
netsvc.Logger().notifyChannel("FTP", netsvc.LOG_INFO, "\n Serving FTP on %s:%s\n" % (HOST, PORT))
ds = ftp_server()
ds.start()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+13 -13
View File
@@ -7,65 +7,65 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-09 13:36+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-24 20:38+0000\n"
"Last-Translator: Bruno - www.zeekom.com <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:07+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: event
#: field:event.event,date_end:0
#: field:report.event.registration,date_end:0
msgid "Ending date"
msgstr ""
msgstr "Date de Fin"
#. module: event
#: field:event.event,register_min:0
msgid "Minimum Registrations"
msgstr ""
msgstr "Inscriptions Minimum"
#. module: event
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nom de l'objet invalide dans l'action défini"
#. module: event
#: field:event.event,mail_registr:0
msgid "Registration Email"
msgstr ""
msgstr "Email d'inscription"
#. module: event
#: model:crm.case.section,name:event.event_0_crm_case_section
msgid "Concert of Bon Jovi"
msgstr ""
msgstr "Concert de Bon Jovi"
#. module: event
#: field:event.event,mail_confirm:0
msgid "Confirmation Email"
msgstr ""
msgstr "Confirmation par email"
#. module: event
#: constraint:crm.case.section:0
msgid "Error ! You cannot create recursive sections."
msgstr ""
msgstr "Erreur ! Vous ne pouvez pas créer de section récursive."
#. module: event
#: model:ir.model,name:event.model_event_registration
msgid "Event Registration"
msgstr ""
msgstr "Inscription de l'Évenement"
#. module: event
#: model:ir.actions.wizard,name:event.event_reg_invoice
msgid "Make Invoice"
msgstr ""
msgstr "Créer la facture"
#. module: event
#: field:report.event.type.registration,draft_state:0
msgid "Draft Registrations"
msgstr ""
msgstr "Inscriptions Brouillon"
#. module: event
#: view:report.event.registration:0
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-22 04:41+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
+43 -43
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-12-29 09:47+0000\n"
"Last-Translator: NightSpirit <Unknown>\n"
"PO-Revision-Date: 2010-02-24 11:09+0000\n"
"Last-Translator: pmjt <Unknown>\n"
"Language-Team: Finnish <fi@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: 2009-12-30 04:47+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_holidays
@@ -30,7 +30,7 @@ msgstr "Kaikki loma-anomukset"
#. module: hr_holidays
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Virheellinen mallin nimi toimenpiteen määrittelyssä."
#. module: hr_holidays
#: field:hr.holidays.per.user,remaining_leaves:0
@@ -45,12 +45,12 @@ msgstr "Tarkistusta odottavat anomukset"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Light Blue"
msgstr ""
msgstr "Vaaleansininen"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Brown"
msgstr ""
msgstr "Ruskea"
#. module: hr_holidays
#: xsl:holidays.summary:0
@@ -72,7 +72,7 @@ msgstr "Työntekijän lomat"
#. module: hr_holidays
#: view:hr.holidays:0
msgid "Set to Draft"
msgstr ""
msgstr "Aseta luonnokseksi"
#. module: hr_holidays
#: view:hr.holidays.per.user:0
@@ -80,7 +80,7 @@ msgstr ""
#: model:ir.model,name:hr_holidays.model_hr_holidays
#: model:process.node,name:hr_holidays.process_node_holidays0
msgid "Holidays"
msgstr ""
msgstr "Lomat"
#. module: hr_holidays
#: xsl:holidays.summary:0
@@ -95,7 +95,7 @@ msgstr ""
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Light Green"
msgstr ""
msgstr "Vaaleanvihreä"
#. module: hr_holidays
#: model:process.transition,name:hr_holidays.process_transition_employeedeclaration0
@@ -107,7 +107,7 @@ msgstr "Työntekijän ilmoitus"
#: selection:hr.holidays,state:0
#: model:process.transition.action,name:hr_holidays.process_transition_action_validate0
msgid "Validate"
msgstr ""
msgstr "Vahvista"
#. module: hr_holidays
#: model:process.transition,name:hr_holidays.process_transition_refusedrequest0
@@ -117,23 +117,23 @@ msgstr "Hylätty anomus"
#. module: hr_holidays
#: model:process.node,name:hr_holidays.process_node_approved0
msgid "Approved"
msgstr ""
msgstr "Hyväksytty"
#. module: hr_holidays
#: selection:hr.holidays.summary.employee,init,holiday_type:0
msgid "Both"
msgstr ""
msgstr "Molemmat"
#. module: hr_holidays
#: view:hr.holidays:0
msgid "Refuse"
msgstr ""
msgstr "Hylkää"
#. module: hr_holidays
#: wizard_button:hr.holidays.summary,notify,end:0
#: wizard_button:hr.holidays.summary.employee,notify,end:0
msgid "Ok"
msgstr ""
msgstr "Ok"
#. module: hr_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday
@@ -144,7 +144,7 @@ msgstr "Omat loma-anomukset"
#: field:hr.holidays,notes:0
#: field:hr.holidays.per.user,notes:0
msgid "Notes"
msgstr ""
msgstr "Huomautukset"
#. module: hr_holidays
#: field:hr.holidays,holiday_status:0
@@ -206,7 +206,7 @@ msgstr "Oikeudellisen lausuman ilmoitus uudelle työntekijälle"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Magenta"
msgstr ""
msgstr "Purppura"
#. module: hr_holidays
#: model:ir.model,name:hr_holidays.model_hr_holidays_per_user
@@ -222,7 +222,7 @@ msgstr "Määritä lomastatus"
#: selection:hr.holidays.summary,init,holiday_type:0
#: selection:hr.holidays.summary.employee,init,holiday_type:0
msgid "Confirmed"
msgstr ""
msgstr "Vahvistettu"
#. module: hr_holidays
#: wizard_field:hr.holidays.summary,init,date_from:0
@@ -234,7 +234,7 @@ msgstr ""
#: view:hr.holidays:0
#: model:process.transition.action,name:hr_holidays.process_transition_action_confirm0
msgid "Confirm"
msgstr ""
msgstr "Vahvista"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_waiting
@@ -257,7 +257,7 @@ msgstr "Käytettävissä olevien vuosilomien koodit"
#: field:hr.holidays.log,employee_id:0
#: field:hr.holidays.per.user,employee_id:0
msgid "Employee"
msgstr ""
msgstr "Työntekijä"
#. module: hr_holidays
#: selection:hr.holidays,state:0
@@ -293,7 +293,7 @@ msgstr "Omat loma-anomukset"
#: view:hr.holidays:0
#: view:hr.holidays.per.user:0
msgid "Number of Days"
msgstr ""
msgstr "Päivien lukumäärä"
#. module: hr_holidays
#: field:hr.holidays.status,name:0
@@ -306,12 +306,12 @@ msgstr "Loma status"
#: wizard_view:hr.holidays.summary,init:0
#: wizard_view:hr.holidays.summary.employee,init:0
msgid "Report Options"
msgstr ""
msgstr "Raporttiasetukset"
#. module: hr_holidays
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
msgstr "Virheellinen XML näkymä-arkkitehtuurille!"
#. module: hr_holidays
#: model:process.node,note:hr_holidays.process_node_approved0
@@ -378,7 +378,7 @@ msgstr "Tulosta työntekijöiden lomien yhteenveto"
#. module: hr_holidays
#: model:process.node,name:hr_holidays.process_node_calendar0
msgid "Calendar"
msgstr ""
msgstr "Kalenteri"
#. module: hr_holidays
#: field:hr.holidays,date_from:0
@@ -456,7 +456,7 @@ msgstr ""
#: wizard_view:hr.holidays.summary,notify:0
#: wizard_view:hr.holidays.summary.employee,notify:0
msgid "Notification"
msgstr ""
msgstr "Huomautus"
#. module: hr_holidays
#: model:process.node,note:hr_holidays.process_node_holidaysrequest0
@@ -482,7 +482,7 @@ msgstr "Omat käytettävissä olevat lomat"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Black"
msgstr ""
msgstr "Musta"
#. module: hr_holidays
#: model:ir.ui.menu,name:hr_holidays.menu_action_my_holiday_refuse
@@ -507,12 +507,12 @@ msgstr "Sallittujen lomapäivien enimmäismäärä"
#. module: hr_holidays
#: field:hr.holidays,state:0
msgid "Status"
msgstr ""
msgstr "Tila"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Ivory"
msgstr ""
msgstr "Norsunluu"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday
@@ -542,12 +542,12 @@ msgstr "lomapäivät."
#. module: hr_holidays
#: selection:hr.holidays,state:0
msgid "draft"
msgstr ""
msgstr "luonnos"
#. module: hr_holidays
#: field:hr.holidays.per.user,user_id:0
msgid "User"
msgstr ""
msgstr "Käyttäjä"
#. module: hr_holidays
#: model:process.transition,note:hr_holidays.process_transition_employeedeclaration0
@@ -557,7 +557,7 @@ msgstr "Asiakirja työntekijälle"
#. module: hr_holidays
#: field:hr.holidays.log,date:0
msgid "Date"
msgstr ""
msgstr "Päivämäärä"
#. module: hr_holidays
#: model:process.transition.action,name:hr_holidays.process_transition_action_reufse0
@@ -567,7 +567,7 @@ msgstr "Hylkää"
#. module: hr_holidays
#: field:hr.holidays.status,section_id:0
msgid "Section"
msgstr ""
msgstr "Alue"
#. module: hr_holidays
#: field:hr.holidays,manager_id:0
@@ -578,7 +578,7 @@ msgstr "Lomahallinta"
#: field:hr.holidays.per.user,active:0
#: field:hr.holidays.status,active:0
msgid "Active"
msgstr ""
msgstr "Aktiivinen"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_draft
@@ -603,12 +603,12 @@ msgstr "Tarkistusta odottavat loma-anomukset"
#. module: hr_holidays
#: view:hr.holidays:0
msgid "General"
msgstr ""
msgstr "Yleiset"
#. module: hr_holidays
#: view:hr.holidays.per.user:0
msgid "General Information"
msgstr ""
msgstr "Yleiset Tiedot"
#. module: hr_holidays
#: view:hr.holidays:0
@@ -616,7 +616,7 @@ msgstr ""
#: wizard_button:hr.holidays.summary,init,end:0
#: wizard_button:hr.holidays.summary.employee,init,end:0
msgid "Cancel"
msgstr ""
msgstr "Peruuta"
#. module: hr_holidays
#: model:process.transition,name:hr_holidays.process_transition_holidaysdefrequest0
@@ -627,7 +627,7 @@ msgstr ""
#: selection:hr.holidays.summary,init,holiday_type:0
#: selection:hr.holidays.summary.employee,init,holiday_type:0
msgid "Validated"
msgstr ""
msgstr "Vahvistettu"
#. module: hr_holidays
#: model:ir.actions.act_window,name:hr_holidays.action_my_holiday_refuse
@@ -638,13 +638,13 @@ msgstr "Omat hylätyt loma-anomukset"
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
msgstr "Objektin nimen tulee alkaa x_ ja se ei saa sisältää erikoismerkkejä!"
#. module: hr_holidays
#: wizard_button:hr.holidays.summary,init,checkdept:0
#: wizard_button:hr.holidays.summary.employee,init,checkemp:0
msgid "Print"
msgstr ""
msgstr "Tulosta"
#. module: hr_holidays
#: model:ir.actions.wizard,name:hr_holidays.holidays_summary
@@ -660,13 +660,13 @@ msgstr "Osasto(t)"
#. module: hr_holidays
#: field:hr.holidays,name:0
msgid "Description"
msgstr ""
msgstr "Kuvaus"
#. module: hr_holidays
#: selection:hr.holidays,state:0
#: model:process.node,name:hr_holidays.process_node_refused0
msgid "Refused"
msgstr ""
msgstr "Hylätty"
#. module: hr_holidays
#: model:process.transition,note:hr_holidays.process_transition_approvedrequest0
@@ -687,7 +687,7 @@ msgstr "Valitse lomantyyppi"
#. module: hr_holidays
#: field:hr.holidays,case_id:0
msgid "Case"
msgstr ""
msgstr "Tapaus"
#. module: hr_holidays
#: field:hr.holidays,holiday_user_id:0
@@ -707,12 +707,12 @@ msgstr "Sosiaalinen sihteeristö"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Violet"
msgstr ""
msgstr "Violetti"
#. module: hr_holidays
#: selection:hr.holidays.status,color_name:0
msgid "Red"
msgstr ""
msgstr "Punainen"
#. module: hr_holidays
#: model:ir.module.module,shortdesc:hr_holidays.module_meta_information
+11
View File
@@ -2,5 +2,16 @@
<openerp>
<data>
<wizard name="wizard.invoice.membership.unpaid"
id="invoice_membership_unpaid"
model="res.partner"
keyword="client_action_multi"
string="List Unpaid Partners"
menu="False" />
<menuitem name="List Unpaid Partners" id="menu_unpaid_membership"
action="invoice_membership_unpaid" type="wizard"
parent="menu_member" />
</data>
</openerp>
+3 -2
View File
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@@ -15,10 +15,11 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import invoice_membership
import unpaid_partner_invoice
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -82,6 +82,9 @@ def _invoice_membership(self, cr, uid, data, context):
for tax in tax_value:
invoice_tax_obj.create(cr, uid, tax, context=context)
result = pool.get('ir.model.data')._get_id(cr, uid, 'account', 'view_account_invoice_filter')
res = pool.get('ir.model.data').read(cr, uid, result, ['res_id'])
value = {
'domain': [
('id', 'in', invoice_list),
@@ -91,6 +94,8 @@ def _invoice_membership(self, cr, uid, data, context):
'view_mode': 'tree,form',
'res_model': 'account.invoice',
'type': 'ir.actions.act_window',
'res_id' : invoice_list,
'search_view_id' : res['res_id']
}
return value
@@ -0,0 +1,86 @@
# -*- 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
import pooler
wizard_arch= """<?xml version="1.0"?>
<form string="Choose invoice details">
<field
name="product"
domain="[('membership','=','True')]"
context="product='membership_product'"
/>
</form>"""
def _invoice_membership(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
partners = []
cr.execute('''select p.id from res_partner as p \
left join account_invoice as i on p.id=i.partner_id \
left join account_invoice_line as il on i.id=il.invoice_id \
left join product_product as pr on pr.id=il.product_id \
where i.state = 'open' and pr.id=%s \
group by p.id''' % (data['form']['product']))
map(lambda x: partners.append(x[0]),cr.fetchall())
result = pool.get('ir.model.data')._get_id(cr, uid, 'base', 'view_res_partner_filter')
res = pool.get('ir.model.data').read(cr, uid, result, ['res_id'])
value = {
'domain': [('id', 'in', partners)],
'name': 'Unpaid Partners',
'view_type': 'form',
'view_mode': 'tree,form',
'res_model': 'res.partner',
'type': 'ir.actions.act_window',
'res_id' : partners,
'search_view_id' : res['res_id']
}
return value
class wizard_unpaid_inv(wizard.interface):
states = {
'init' : {
'actions' : [],
'result' : {
'type' : 'form',
'arch' : wizard_arch,
'fields' : {
'product': {
'string': 'Membership product',
'type': 'many2one',
'relation': 'product.product',
'help': 'Select Membership product',
'required': True
},
},
'state' : [('end', 'Cancel'),('ok', 'Unpaid Partners') ]}
},
'ok' : {
'actions' : [],
'result' : {'type' : 'action', 'action': _invoice_membership, 'state' : 'end'},
},
}
wizard_unpaid_inv("wizard.invoice.membership.unpaid")
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+1 -1
View File
@@ -21,9 +21,9 @@
import mrp
import installer
import mrp_wizard
import wizard
import report
import company
import schedulers
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+1 -1
View File
@@ -60,7 +60,7 @@
'security/ir.model.access.csv',
'mrp_workflow.xml',
'mrp_data.xml',
'wizard/wizard_mrp.xml',
'mrp_wizard_view.xml',
'mrp_view.xml',
'mrp_wizard.xml',
'mrp_report.xml',
File diff suppressed because it is too large Load Diff
+74 -165
View File
@@ -580,63 +580,79 @@ class mrp_production(osv.osv):
self.pool.get('stock.move').write(cr, uid, [production.move_prod_id.id],
{'location_id':production.location_dest_id.id})
return True
def action_start(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state':'in_production'})
return True
#TODO Review materials in function in_prod and prod_end.
def action_production_end(self, cr, uid, ids, qty=0.0, mode=None):
move_ids = []
finished = []
move_obj = self.pool.get('stock.move')
def action_production_end(self, cr, uid, ids):
for production in self.browse(cr, uid, ids):
done = 0.0
qty_rest = 0.0
for move in production.move_created_ids2:
done += move.product_qty
qty_operate = production.product_qty - done
if qty > production.product_qty:
# Is it required??
raise osv.except_osv(_('Error'), _("Couldn't produce more quantity"))
elif qty == qty_operate:
for res in production.move_lines:
for move in production.move_created_ids:
#XXX must use the orm
cr.execute('INSERT INTO stock_move_history_ids \
(parent_id, child_id) VALUES (%s,%s)',
(res.id, move.id))
move_ids.append(res.id)
finished += [x.id for x in production.move_created_ids]
elif qty < qty_operate:
qty_rest = qty_operate - qty
moves = map(lambda x: x.id, production.move_lines)
moves_created = map(lambda x: x.id, production.move_created_ids)
if mode == 'consume':
move_ids += move_obj.consume_moves(cr, uid, moves, qty)
finished += move_obj.consume_moves(cr, uid, moves_created, qty)
elif mode == 'consume_produce':
for move in move_obj.browse(cr, uid, moves):
move_obj.write(cr, uid, move.id, {'product_qty': qty})
new_move = move_obj.copy(cr, uid, move.id, {'product_qty': qty_rest, 'state': move.state})
self.write(cr, uid, production.id, {'move_lines': [(4, new_move)]})
move_ids += moves
self._costs_generate(cr, uid, production)
return self.write(cr, uid, ids, {'state': 'done', 'date_finnished': time.strftime('%Y-%m-%d %H:%M:%S')})
for move in move_obj.browse(cr, uid, moves_created):
move_obj.write(cr, uid, move.id, {'product_qty': qty})
new_finished = move_obj.copy(cr, uid, move.id, {'product_qty': qty_rest, 'state': move.state})
self.write(cr, uid, production.id, {'move_created_ids': [(4, new_finished)]})
finished += moves_created
move_obj.write(cr, uid, finished, vals={'state':'confirmed'})
if not production.date_finnished and mode != 'consume':
self.write(cr, uid, [production.id],
{'date_finnished': time.strftime('%Y-%m-%d %H:%M:%S')})
move_obj.action_done(cr, uid, finished)
move_obj.action_done(cr, uid, move_ids)
if mode == 'consume_produce' and not qty_rest:
move_obj.check_assign(cr, uid, finished)
self._costs_generate(cr, uid, production)
self.write(cr, uid, ids, {'state': 'done'})
def test_production_done(self, cr, uid, ids):
res = True
for production in self.browse(cr, uid, ids):
if production.move_lines:
res = False
if production.move_created_ids:
res = False
return res
def do_produce(self, cr, uid, production_id, production_qty, production_mode, context=None):
stock_mov_obj = self.pool.get('stock.move')
production = self.browse(cr, uid, production_id)
raw_product_todo = []
final_product_todo = []
if production_mode in ['consume','consume_produce']:
consumed_products = {}
produced_qty = 0
for consumed_product in production.move_lines2:
if not consumed_products.get(consumed_product.product_id.id, False):
consumed_products[consumed_product.product_id.id] = 0
consumed_products[consumed_product.product_id.id] += consumed_product.product_qty
for produced_product in production.move_created_ids2:
produced_qty += produced_product.product_qty
for raw_product in production.move_lines:
consumed_qty = consumed_products.get(raw_product.product_id.id, 0)
consumed_qty -= produced_qty
rest_qty = production_qty - consumed_qty
if rest_qty > production.product_qty:
rest_qty = production.product_qty
if rest_qty > 0:
stock_mov_obj.consume_moves(cr, uid, [raw_product.id], rest_qty, production.location_src_id.id, context=context)
if production_mode == 'consume_produce':
vals = {'state':'confirmed'}
final_product_todo = [x.id for x in production.move_created_ids]
stock_mov_obj.write(cr, uid, final_product_todo, vals)
produced_products = {}
for produced_product in production.move_created_ids2:
if not produced_products.get(produced_product.product_id.id, False):
produced_products[produced_product.product_id.id] = 0
produced_products[produced_product.product_id.id] += produced_product.product_qty
for produce_product in production.move_created_ids:
produced_qty = produced_products.get(produce_product.product_id.id, 0)
rest_qty = production.product_qty - produced_qty
if rest_qty <= production_qty:
production_qty = rest_qty
if rest_qty > 0 :
stock_mov_obj.consume_moves(cr, uid, [produce_product.id], production_qty, production.location_dest_id.id, context=context)
for raw_product in production.move_lines2:
new_parent_ids = []
parent_move_ids = [x.id for x in raw_product.move_history_ids]
for final_product in production.move_created_ids2:
if final_product.id not in parent_move_ids:
new_parent_ids.append(final_product.id)
for new_parent_id in new_parent_ids:
stock_mov_obj.write(cr, uid, [raw_product.id], {'move_history_ids':[(4,new_parent_id)]})
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production', production_id, 'button_produce_done', cr)
return True
def _costs_generate(self, cr, uid, production):
@@ -792,80 +808,6 @@ class mrp_production(osv.osv):
pick_obj = self.pool.get('stock.picking')
pick_obj.force_assign(cr, uid, [prod.picking_id.id for prod in self.browse(cr, uid, ids)])
return True
def _change_prod_qty(self, cr, uid, ids, new_qty, context={}):
move_obj = self.pool.get('stock.move')
if new_qty <= 0.0:
return {}
def change(product_id, product_qty, qty_vals, qty_vals_done, moves,
moves_done, field):
if not moves.get(product_id) and moves_done.get(product_id):
new_qty = (product_qty - qty_vals_done.get(product_id, 0.0))
new_move = move_obj.copy(cr, uid, moves_done.get(product_id), default={'product_qty': new_qty})
self.write(cr, uid, prod.id, {field: [(4, new_move)]})
return
to_add = (product_qty - qty_vals_done.get(product_id, 0.0)) - \
qty_vals.get(product_id, 0.0)
avail_qty = move_obj.browse(cr, uid, moves[product_id][0]).product_qty
new_qty = avail_qty + to_add
if new_qty == 0:
move_obj.write(cr, uid, moves[product_id][0], {'state': 'draft'})
move_obj.unlink(cr, uid, moves[product_id])
elif new_qty < 0:
avail_qty = move_obj.browse(cr, uid, moves_done[product_id][0]).product_qty
move_obj.unlink(cr, uid, moves[product_id])
move_obj.write(cr, uid, moves_done[product_id][0], {'product_qty': avail_qty + new_qty})
else:
move_obj.write(cr, uid, moves[product_id][0], {'product_qty': avail_qty + to_add})
return
for id in ids:
prod = self.browse(cr, uid, id)
self.write(cr, uid, prod.id, {'product_qty' : new_qty})
self.action_compute(cr, uid, [prod.id])
bom_point = prod.bom_id
bom_id = prod.bom_id.id
if not bom_point:
bom_id = self.pool.get('mrp.bom')._bom_find(cr, uid, prod.product_id.id, prod.product_uom.id)
if not bom_id:
raise osv.except_osv(_('Error'), _("Couldn't find bill of material for product"))
self.write(cr, uid, [prod.id], {'bom_id': bom_id})
bom_point = self.pool.get('mrp.bom').browse(cr, uid, [bom_id])[0]
factor = new_qty * prod.product_uom.factor / bom_point.product_uom.factor
res = self.pool.get('mrp.bom')._bom_explode(cr, uid, bom_point, factor / bom_point.product_qty, [])
qty_vals = {}
qty_vals_done = {}
moves = {}
moves_done = {}
for move in prod.move_lines:
moves[move.product_id.id] = []
qty_vals[move.product_id.id] = qty_vals.get(move.product_id.id, 0.0) + move.product_qty
moves[move.product_id.id].append(move.id)
for move in prod.move_lines2:
moves_done[move.product_id.id] = []
qty_vals_done[move.product_id.id] = qty_vals_done.get(move.product_id.id, 0.0) + move.product_qty
moves_done[move.product_id.id].append(move.id)
for r in res[0]:
change(r['product_id'], r['product_qty'], qty_vals, \
qty_vals_done, moves, moves_done, 'move_lines')
# For Finished Product lines
qty_vals = {}
qty_vals_done = {}
moves = {}
moves_done = {}
for move in prod.move_created_ids:
moves[move.product_id.id] = []
qty_vals[move.product_id.id] = qty_vals.get(move.product_id.id, 0.0) + move.product_qty
moves[move.product_id.id].append(move.id)
for move in prod.move_created_ids2:
moves_done[move.product_id.id] = []
qty_vals_done[move.product_id.id] = qty_vals_done.get(move.product_id.id, 0.0) + move.product_qty
moves_done[move.product_id.id].append(move.id)
change(prod.product_id.id, prod.product_qty, qty_vals, \
qty_vals_done, moves, moves_done, 'move_created_ids')
return {}
mrp_production()
@@ -1393,7 +1335,7 @@ class StockMove(osv.osv):
state = 'confirmed'
if move.state=='assigned':
state='assigned'
for line in res[0]:
for line in res[0]:
valdef = {
'picking_id': move.picking_id.id,
'product_id': line['product_id'],
@@ -1439,50 +1381,17 @@ class StockMove(osv.osv):
wf_service.trg_validate(uid, 'mrp.procurement', m, 'button_wait_done', cr)
return True
def _track_lines(self, cr, uid, ids, data, context=None):
production_ids = []
new_move = super(StockMove, self)._track_lines(cr, uid, ids, data, context=context)
if new_move:
production_obj = self.pool.get('mrp.production')
move_obj = self.pool.get('stock.move')
move = move_obj.browse(cr, uid, ids)
production_ids = production_obj.search(cr, uid, [('move_lines', 'in', [move.id])])
for new in new_move:
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new)]})
move_obj.action_done(cr, uid, [new])
return {}
def consume_moves(self, cr, uid, ids, product_qty, location_id=None, context=None):
def consume_moves(self, cr, uid, ids, product_qty, location_id=False, location_dest_id=False, consume=True, context=None):
res = []
production_obj = self.pool.get('mrp.production')
for move in self.browse(cr, uid, ids):
new_moves = super(StockMove, self).consume_moves(cr, uid, [move.id], product_qty, location_id, context=context)
new_moves = super(StockMove, self).consume_moves(cr, uid, [move.id], product_qty, location_id, location_dest_id, consume, context=context)
production_ids = production_obj.search(cr, uid, [('move_lines', 'in', [move.id])])
for new_move in new_moves:
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
res.append(new_move)
return res
def split_lines(self, cr, uid, ids, quantity, split_by_qty=1, prefix=False, context=None):
res = []
production_obj = self.pool.get('mrp.production')
for move in self.browse(cr, uid, ids):
new_moves = super(StockMove, self).split_lines(cr, uid, [move.id], quantity, split_by_qty, prefix, context=context)
production_ids = production_obj.search(cr, uid, [('move_lines', 'in', [move.id])])
for new_move in new_moves:
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
res.append(new_move)
return res
def scrap_moves(self, cr, uid, ids, quantity, location_dest_id, context=None):
res = []
production_obj = self.pool.get('mrp.production')
for move in self.browse(cr, uid, ids):
new_moves = super(StockMove, self).scrap_moves(cr, uid, [move.id], quantity, location_dest_id, context=context)
production_ids = production_obj.search(cr, uid, [('move_lines', 'in', [move.id])])
for new_move in new_moves:
production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
res.append(new_move)
return res
return res
StockMove()
+10 -8
View File
@@ -439,6 +439,14 @@
</field>
</record>
<wizard
string="Change Product Qty."
model="mrp.production"
name="change_production_qty"
id="mrp.wizard_change_production_qty"
keyword="client_action_multi"
multi="True"/>
<record id="mrp_production_form_view" model="ir.ui.view">
<field name="name">mrp.production.form</field>
<field name="model">mrp.production</field>
@@ -453,12 +461,6 @@
<field name="product_qty"/>
<group colspan="2" col="3">
<field name="product_uom"/>
<!-- TODO Fix change qty accroding to move_lines and move_lines2 -->
<button type="action"
name="%(mrp.wizard_change_production_qty)d"
string="Change Qty"
states="ready,confirmed,in_production"
icon="gtk-ok" />
</group>
<label string="" colspan="2"/>
<field name="product_uos_qty" groups="product.group_uos"/>
@@ -531,8 +533,8 @@
<field name="state" select="2"/>
<button name="action_compute" states="draft" string="Compute Data" type="object" icon="gtk-execute"/>
<button name="button_confirm" states="draft" string="Confirm Production" icon="gtk-apply"/>
<button name="button_produce" states="ready" string="Mark as Start" icon="gtk-execute"/>
<button name="%(move_produce)d" states="in_production" string="Produce" icon="gtk-ok" type="action"/>
<button name="button_produce" states="ready" string="Mark as Start" icon="gtk-execute"/>
<button name="%(act_mrp_product_produce)d" states="in_production" string="Produce" icon="gtk-ok" type="action"/>
<button name="force_production" states="confirmed,picking_except" string="Force Reservation" type="object" icon="gtk-jump-to"/>
<button name="button_cancel" states="draft,ready,confirmed,in_production,picking_except" string="Cancel" icon="gtk-cancel"/>
<button name="button_recreate" states="picking_except" string="Recreate Picking" icon="gtk-convert"/>
+59
View File
@@ -0,0 +1,59 @@
# -*- 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/>.
#
##############################################################################
from osv import fields, osv
from tools.translate import _
import netsvc
class mrp_product_produce(osv.osv_memory):
_name = "mrp.product.produce"
_description = "Product Produce"
_columns = {
'product_qty': fields.float('Quantity', required=True),
'mode': fields.selection([('consume_produce', 'Consume & Produce'),
('consume', 'Consume Only')], 'Mode', required=True)
}
def _get_product_qty(self, cr, uid, context):
prod = self.pool.get('mrp.production').browse(cr, uid,
context['active_id'], context=context)
done = 0.0
for move in prod.move_created_ids2:
done += move.product_qty
return (prod.product_qty - done) or prod.product_qty
_defaults = {
'product_qty': _get_product_qty,
'mode': lambda *x: 'consume_produce'
}
def do_produce(self, cr, uid, ids, context={}):
prod_obj = self.pool.get('mrp.production')
move_ids = context['active_ids']
for data in self.read(cr, uid, ids):
for move_id in move_ids:
prod_obj.do_produce(cr, uid, move_id,
data['product_qty'], data['mode'], context=context)
return {}
mrp_product_produce()
+41
View File
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Produce -->
<record id="view_mrp_product_produce_wizard" model="ir.ui.view">
<field name="name">MRP Product Produce</field>
<field name="model">mrp.product.produce</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Produce">
<separator string="Produce" colspan="4"/>
<field name="mode" colspan="4"/>
<field name="product_qty" colspan="2"/>
<newline/>
<separator string="" colspan="4" />
<label string="" colspan="2" />
<group col="2" colspan="1">
<button icon='gtk-cancel' special="cancel"
string="Cancel" />
<button name="do_produce" string="Confirm"
colspan="1" type="object" icon="gtk-ok" />
</group>
</form>
</field>
</record>
<record id="act_mrp_product_produce" model="ir.actions.act_window">
<field name="name">Produce</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.product.produce</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
</data>
</openerp>
+2 -1
View File
@@ -43,7 +43,7 @@
<field name="wkf_id" ref="wkf_prod"/>
<field name="flow_stop">True</field>
<field name="kind">function</field>
<field name="action">action_production_end()</field>
<field name="action">action_production_end()</field>
<field name="name">done</field>
</record>
<record id="prod_act_cancel" model="workflow.activity">
@@ -81,6 +81,7 @@
<field name="act_from" ref="prod_act_in_production"/>
<field name="act_to" ref="prod_act_done"/>
<field name="signal">button_produce_done</field>
<field name="condition">test_production_done()</field>
</record>
<record id="prod_trans_picking_picking_exception" model="workflow.transition">
<field name="act_from" ref="prod_act_picking"/>
-2
View File
@@ -28,7 +28,5 @@ import wizard_track_prod
import wizard_change_production_qty
import make_procurement
import wizard_mrp
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -43,8 +43,6 @@ def _get_qty(self,cr,uid, data, state):
prod = prod_obj.browse(cr, uid,data['ids'])[0]
form1_fields['product_qty']['default']=prod.product_qty
return {}
def _get_states(self, cr, uid, data, context):
prod_obj = pooler.get_pool(cr.dbname).get('mrp.production')
prod = prod_obj.browse(cr, uid,data['ids'])[0]
+1 -1
View File
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_operations
+39 -29
View File
@@ -8,41 +8,45 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-08 11:46+0000\n"
"PO-Revision-Date: 2010-01-26 11:01+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"PO-Revision-Date: 2010-02-24 03:34+0000\n"
"Last-Translator: Rodrigo Testa <rod-95@live.com>\n"
"Language-Team: Spanish <es@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: 2010-01-29 04:53+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: multi_company
#: help:multi_company.default,object_id:0
msgid "Object affect by this rules"
msgstr ""
msgstr "El objeto afectado por estas reglas."
#. module: multi_company
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
"especial!"
#. module: multi_company
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
"Error: La UdM por defecto y la UdM de compra deben estar en la misma "
"categoría."
#. module: multi_company
#: constraint:res.partner:0
msgid "The VAT doesn't seem to be correct."
msgstr ""
msgstr "El IVA no parece ser correcto"
#. module: multi_company
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nombre de modelo inválido en la definición de la acción"
#. module: multi_company
#: model:res.company,overdue_msg:multi_company.res_company_odoo
@@ -55,22 +59,25 @@ msgid ""
"consider the present one as void. Do not hesitate to contact our accounting "
"department"
msgstr ""
"Su pago se ha llevado a cabo después de este mensaje fue enviado, por favor "
"considere el actual como nulas. No dude en ponerse en contacto con nuestro "
"departamento de contabilidad"
#. module: multi_company
#: field:multi_company.default,company_dest_id:0
msgid "Default Company"
msgstr ""
msgstr "Compañía por defecto"
#. module: multi_company
#: field:multi_company.default,object_id:0
msgid "Object"
msgstr ""
msgstr "Objeto"
#. module: multi_company
#: model:ir.module.module,shortdesc:multi_company.module_meta_information
#: view:multi_company.default:0
msgid "Multi Company"
msgstr ""
msgstr "Multi compañía"
#. module: multi_company
#: model:ir.module.module,description:multi_company.module_meta_information
@@ -79,36 +86,39 @@ msgid ""
" the default value for each object\n"
" "
msgstr ""
"Este módulo añade la posibilidad de administrar fácilmente \n"
" el valor por defecto para cada objeto\n"
" "
#. module: multi_company
#: field:multi_company.default,company_id:0
msgid "Main Company"
msgstr ""
msgstr "Empresa Principal"
#. module: multi_company
#: view:multi_company.default:0
msgid "Condition"
msgstr ""
msgstr "Condición"
#. module: multi_company
#: help:multi_company.default,company_dest_id:0
msgid "Company to store the current record"
msgstr ""
msgstr "Compañía donde se guardará el registro actual."
#. module: multi_company
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
msgstr "¡XML inválido para la definición de la vista!"
#. module: multi_company
#: field:multi_company.default,name:0
msgid "Name"
msgstr ""
msgstr "Nombre"
#. module: multi_company
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
msgstr ""
msgstr "Error: La UdV debe estar en una categoría diferente que la UdM"
#. module: multi_company
#: model:product.category,name:multi_company.Odoo1
@@ -118,37 +128,37 @@ msgstr ""
#. module: multi_company
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr ""
msgstr "¡Error! No se pueden crear compañías recursivas."
#. module: multi_company
#: help:multi_company.default,name:0
msgid "Name it to easily find a record"
msgstr ""
msgstr "Dele un nombre para encontrar fácilmente un registro."
#. module: multi_company
#: model:ir.ui.menu,name:multi_company.menu_custom_multicompany
msgid "Multi company"
msgstr ""
msgstr "Multi compañía"
#. module: multi_company
#: model:ir.model,name:multi_company.model_multi_company_default
msgid "multi_company.default"
msgstr ""
msgstr "multi_compañía.defecto"
#. module: multi_company
#: help:multi_company.default,company_id:0
msgid "Company where the user is connected"
msgstr ""
msgstr "Compañía en la que pertenece el usuario."
#. module: multi_company
#: model:ir.actions.act_window,name:multi_company.action_inventory_form
msgid "Default Company per Object"
msgstr ""
msgstr "Compañía por defecto por objeto"
#. module: multi_company
#: field:multi_company.default,expression:0
msgid "Expression"
msgstr ""
msgstr "Expresión"
#. module: multi_company
#: model:product.template,name:multi_company.product_product_odoo1_product_template
@@ -158,35 +168,35 @@ msgstr ""
#. module: multi_company
#: field:multi_company.default,sequence:0
msgid "Sequence"
msgstr ""
msgstr "Secuencia"
#. module: multi_company
#: constraint:product.category:0
msgid "Error ! You can not create recursive categories."
msgstr ""
msgstr "¡Error! No puede crear categorías recursivas."
#. module: multi_company
#: constraint:product.product:0
msgid "Error: Invalid ean code"
msgstr ""
msgstr "Error: Código EAN erróneo"
#. module: multi_company
#: help:multi_company.default,expression:0
msgid "Expression, must be True to match"
msgstr ""
msgstr "Una expresión, debe ser cierta para concordar."
#. module: multi_company
#: model:ir.ui.menu,name:multi_company.menu_action_inventory_form
msgid "Default company per Object"
msgstr ""
msgstr "Compañía por defecto por objeto"
#. module: multi_company
#: code:addons/multi_company/multi_company.py:0
#, python-format
msgid " (copy)"
msgstr ""
msgstr " (copia)"
#. module: multi_company
#: view:multi_company.default:0
msgid "Matching"
msgstr ""
msgstr "Concordancia"
+34
View File
@@ -0,0 +1,34 @@
# Slovak translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-11-26 05:29+0000\n"
"PO-Revision-Date: 2010-02-23 08:14+0000\n"
"Last-Translator: Radoslav Sloboda <rado.sloboda@gmail.com>\n"
"Language-Team: Slovak <sk@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: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: olap_crm
#: model:ir.module.module,description:olap_crm.module_meta_information
msgid ""
"\n"
" Sale module will load the data in olap tables\n"
" "
msgstr ""
"\n"
" Modul predaja načíta dáta v OLAP tabuľkách\n"
" "
#. module: olap_crm
#: model:ir.module.module,shortdesc:olap_crm.module_meta_information
msgid "olap_crm"
msgstr "olap_crm"
+56
View File
@@ -0,0 +1,56 @@
# Russian translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-11-26 05:29+0000\n"
"PO-Revision-Date: 2010-02-24 03:47+0000\n"
"Last-Translator: DronAn[BY] <andyak77@mail.ru>\n"
"Language-Team: Russian <ru@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: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: olap_extract
#: model:ir.module.module,shortdesc:olap_extract.module_meta_information
msgid "olap_extract"
msgstr ""
#. module: olap_extract
#: wizard_button:olap.extract.schema,init,ok:0
msgid "OK"
msgstr "Ок"
#. module: olap_extract
#: model:ir.actions.wizard,name:olap_extract.bi_olap_extract_schema
msgid "Olap Extract"
msgstr ""
#. module: olap_extract
#: model:ir.module.module,description:olap_extract.module_meta_information
msgid ""
"\n"
" Extracts the schema structure.\n"
" "
msgstr ""
#. module: olap_extract
#: wizard_field:olap.extract.schema,init,module_name:0
msgid "Module Name"
msgstr "Имя Модуля"
#. module: olap_extract
#: wizard_button:olap.extract.schema,init,end:0
msgid "Cancel"
msgstr "Отменить"
#. module: olap_extract
#: wizard_view:olap.extract.schema,init:0
msgid "New Module Name"
msgstr "Новое Имя модуля"
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-23 05:05+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:50+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: process
+55 -46
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-02-03 19:45+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-02-24 10:54+0000\n"
"Last-Translator: Auduf <5097@mail.ru>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:15+0000\n"
"X-Launchpad-Export-Date: 2010-02-25 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product
@@ -80,6 +80,8 @@ msgid ""
"Quantities of products that are planned to arrive in selected locations or "
"all internal if none have been selected."
msgstr ""
"Объемы продукции, которые планируется достичь в выбранных местах или все "
"внутренние, если никакие не были выбраны."
#. module: product
#: help:product.product,virtual_available:0
@@ -111,7 +113,7 @@ msgstr "Метод закупки"
#. module: product
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Недопустимое имя модели в определении действия."
#. module: product
#: model:process.process,name:product.process_process_productprocess0
@@ -131,7 +133,7 @@ msgstr "Стандартная цена"
#. module: product
#: help:product.packaging,height:0
msgid "The height of the package"
msgstr ""
msgstr "Высота упаковки"
#. module: product
#: view:product.pricelist:0
@@ -204,7 +206,7 @@ msgstr "Количество"
#. module: product
#: model:product.template,name:product.product_product_cpu3_product_template
msgid "Processor AMD Athlon XP 2200+"
msgstr ""
msgstr "Процессор AMD Athlon XP 2200+"
#. module: product
#: help:product.price.type,name:0
@@ -219,7 +221,7 @@ msgstr ""
#. module: product
#: field:product.product,incoming_qty:0
msgid "Incoming"
msgstr ""
msgstr "Входящие"
#. module: product
#: selection:product.template,procure_method:0
@@ -235,7 +237,7 @@ msgstr "Вес"
#. module: product
#: model:product.template,name:product.product_product_fan2_product_template
msgid "Silent fan"
msgstr ""
msgstr "Тихий вентилятор"
#. module: product
#: help:product.template,supply_method:0
@@ -252,7 +254,7 @@ msgstr ""
#. module: product
#: help:product.packaging,rows:0
msgid "The number of layer on a palet or box"
msgstr ""
msgstr "Число слоёв на палете или в коробке"
#. module: product
#: model:product.pricelist.type,name:product.pricelist_type_sale
@@ -341,7 +343,7 @@ msgstr "Настройки"
#. module: product
#: field:product.packaging,rows:0
msgid "Number of Layer"
msgstr ""
msgstr "Число слоёв"
#. module: product
#: constraint:product.category:0
@@ -377,7 +379,7 @@ msgstr "На основе"
#. module: product
#: model:product.template,name:product.product_product_24_product_template
msgid "Keyboard"
msgstr ""
msgstr "Клавиатура"
#. module: product
#: field:product.supplierinfo,name:0
@@ -392,7 +394,7 @@ msgstr ""
#. module: product
#: model:product.template,name:product.product_product_25_product_template
msgid "Mouse"
msgstr ""
msgstr "Мышь"
#. module: product
#: help:product.template,cost_method:0
@@ -405,7 +407,7 @@ msgstr ""
#. module: product
#: field:product.pricelist,name:0
msgid "Pricelist Name"
msgstr ""
msgstr "Название прайс-листа"
#. module: product
#: field:product.template,seller_ids:0
@@ -440,7 +442,7 @@ msgstr "* ( 1 + "
#. module: product
#: model:product.template,name:product.product_product_cpu1_product_template
msgid "Processor AMD Athlon XP 1800+"
msgstr ""
msgstr "Процессор AMD Athlon XP 1800+"
#. module: product
#: selection:product.template,state:0
@@ -450,12 +452,12 @@ msgstr "В производстве"
#. module: product
#: field:product.category,child_id:0
msgid "Child Categories"
msgstr ""
msgstr "Подчиненные категории"
#. module: product
#: model:product.category,name:product.product_category_accessories
msgid "Accessories"
msgstr ""
msgstr "Дополнительные"
#. module: product
#: field:product.supplierinfo,sequence:0
@@ -481,7 +483,7 @@ msgstr "Распечатать"
#. module: product
#: model:process.node,name:product.process_node_supplier0
msgid "Supplier Info"
msgstr ""
msgstr "Информация о поставщике"
#. module: product
#: field:product.ul,type:0
@@ -491,7 +493,7 @@ msgstr "Тип"
#. module: product
#: wizard_field:product.price_list,init,price_list:0
msgid "PriceList"
msgstr ""
msgstr "Прайс-лист"
#. module: product
#: view:product.product:0
@@ -548,7 +550,7 @@ msgstr "Минимальное количество"
#. module: product
#: model:product.category,name:product.product_category_pc
msgid "PC"
msgstr ""
msgstr "ПК"
#. module: product
#: help:product.template,seller_delay:0
@@ -601,7 +603,7 @@ msgstr "Каталог"
#. module: product
#: selection:product.template,type:0
msgid "Consumable"
msgstr ""
msgstr "Расходные"
#. module: product
#: help:product.price.type,currency_id:0
@@ -611,7 +613,7 @@ msgstr ""
#. module: product
#: help:product.template,weight:0
msgid "The gross weight in Kg."
msgstr ""
msgstr "Вес брутто в килограммах."
#. module: product
#: selection:product.ul,type:0
@@ -629,11 +631,12 @@ msgid ""
"Determine if the product can be visible in the list of product within a "
"selection from a sale order line."
msgstr ""
"Указывается, если продукция должна быть видна в списке продукции на продажу."
#. module: product
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
msgstr ""
msgstr "Ошибка. UOS и UOM должны принадлежать к разным категориям."
#. module: product
#: field:product.category,parent_id:0
@@ -658,11 +661,13 @@ msgid ""
"Quantities of products that are planned to leave in selected locations or "
"all internal if none have been selected."
msgstr ""
"Количества продукции, которые планируется отправить в указанные места, или "
"вся внутренняя, если ничего не выбранно."
#. module: product
#: field:product.packaging,weight:0
msgid "Total Package Weight"
msgstr ""
msgstr "Итоговый вес пакета"
#. module: product
#: help:product.template,procure_method:0
@@ -687,7 +692,7 @@ msgstr "Продукция по категориям"
#. module: product
#: model:product.template,name:product.product_product_hdd1_product_template
msgid "HDD Seagate 7200.8 80GB"
msgstr ""
msgstr "Жёсткий диск Seagate 7200.8 80GB"
#. module: product
#: help:product.pricelist.version,active:0
@@ -700,7 +705,7 @@ msgstr ""
#. module: product
#: model:product.template,name:product.product_product_hdd3_product_template
msgid "HDD Seagate 7200.8 160GB"
msgstr ""
msgstr "Жёсткий диск Seagate 7200.8 160GB"
#. module: product
#: view:product.product:0
@@ -752,7 +757,7 @@ msgstr "Тип измерения"
#. module: product
#: model:product.uom.categ,name:product.product_uom_categ_kgm
msgid "Weight"
msgstr ""
msgstr "Вес"
#. module: product
#: model:product.template,name:product.product_product_22_product_template
@@ -845,7 +850,7 @@ msgstr ""
#. module: product
#: model:product.template,name:product.product_product_pc1_product_template
msgid "Basic PC"
msgstr ""
msgstr "Базовый ПК"
#. module: product
#: field:product.template,loc_row:0
@@ -862,6 +867,8 @@ msgstr "Категория"
msgid ""
"The rule only applies if the partner buys/sells more than this quantity."
msgstr ""
"Правило применяется только в случае, если партнёр покупает или продает более "
"этой величины."
#. module: product
#: model:product.template,name:product.product_product_ram_product_template
@@ -909,7 +916,7 @@ msgstr ""
#. module: product
#: model:product.template,name:product.product_product_mb2_product_template
msgid "Mainboard ASUStek A7V8X-X"
msgstr ""
msgstr "Материнская плата ASUStek A7V8X-X"
#. module: product
#: field:product.uom,factor:0
@@ -929,12 +936,12 @@ msgstr "Точность округления"
#. module: product
#: help:product.packaging,width:0
msgid "The width of the package"
msgstr ""
msgstr "Ширина пакета"
#. module: product
#: field:product.packaging,qty:0
msgid "Quantity by Package"
msgstr ""
msgstr "Количество по пакету"
#. module: product
#: help:product.template,uos_id:0
@@ -1007,7 +1014,7 @@ msgstr ""
#. module: product
#: help:product.packaging,code:0
msgid "The code of the transport unit."
msgstr ""
msgstr "Код транспортной единицы."
#. module: product
#: field:product.template,uom_po_id:0
@@ -1061,7 +1068,7 @@ msgstr "Прайс"
#. module: product
#: model:product.template,name:product.product_product_pc3_product_template
msgid "Medium PC"
msgstr ""
msgstr "Средний ПК"
#. module: product
#: model:ir.model,name:product.model_pricelist_partnerinfo
@@ -1072,7 +1079,7 @@ msgstr ""
#: model:product.price.type,name:product.standard_price
#: field:product.template,standard_price:0
msgid "Cost Price"
msgstr ""
msgstr "Себестоимость"
#. module: product
#: view:product.product:0
@@ -1101,7 +1108,7 @@ msgstr ""
#. module: product
#: help:product.packaging,length:0
msgid "The length of the package"
msgstr ""
msgstr "Длина пакета"
#. module: product
#: field:product.pricelist.item,price_min_margin:0
@@ -1179,7 +1186,7 @@ msgstr "Последовательность"
#. module: product
#: model:product.category,name:product.product_category_8
msgid "Phone Help"
msgstr ""
msgstr "Телефон помощи"
#. module: product
#: selection:product.template,mes_type:0
@@ -1210,6 +1217,8 @@ msgid ""
"The computed quantity will be a multiple of this value. Use 1.0 for products "
"that can not be split."
msgstr ""
"Расчетная величина будет кратна этому значению. Используйте 1.0 для "
"продуктов, которые не могут быть разделены."
#. module: product
#: field:product.packaging,height:0
@@ -1247,12 +1256,12 @@ msgstr "Вмешательство на месте"
#. module: product
#: model:product.category,name:product.cat0
msgid "All products"
msgstr ""
msgstr "Все продукты"
#. module: product
#: wizard_button:product.price_list,init,end:0
msgid "Cancel"
msgstr ""
msgstr "Отмена"
#. module: product
#: help:product.packaging,qty:0
@@ -1289,7 +1298,7 @@ msgstr "Ед."
#. module: product
#: model:product.template,name:product.product_product_hdd2_product_template
msgid "HDD Seagate 7200.8 120GB"
msgstr ""
msgstr "Жесткий диск Seagate 7200.8 120GB"
#. module: product
#: wizard_field:product.price_list,init,qty2:0
@@ -1305,7 +1314,7 @@ msgstr "Информация"
#. module: product
#: view:product.product:0
msgid "Codes"
msgstr ""
msgstr "Коды"
#. module: product
#: constraint:ir.model:0
@@ -1431,7 +1440,7 @@ msgstr "Описание продукции"
#. module: product
#: view:product.pricelist.item:0
msgid " ) + "
msgstr ""
msgstr " ) + "
#. module: product
#: help:product.template,sale_delay:0
@@ -1494,7 +1503,7 @@ msgstr "Расчет цены"
#. module: product
#: model:product.template,name:product.product_product_mb1_product_template
msgid "Mainboard ASUStek A7N8X"
msgstr ""
msgstr "Материнская плата ASUStek A7N8X"
#. module: product
#: field:product.template,loc_case:0
@@ -1571,7 +1580,7 @@ msgstr ""
#: view:product.product:0
#: view:product.template:0
msgid "Prices & Suppliers"
msgstr ""
msgstr "Цены и поставщики"
#. module: product
#: help:product.packaging,weight:0
@@ -1598,17 +1607,17 @@ msgstr ""
#. module: product
#: help:product.template,weight_net:0
msgid "The net weight in Kg."
msgstr ""
msgstr "Вес нетто в килограммах."
#. module: product
#: model:product.template,name:product.product_product_tow1_product_template
msgid "ATX Mid-size Tower"
msgstr ""
msgstr "Среднеразмерный ATX корпус"
#. module: product
#: field:product.supplierinfo,delay:0
msgid "Delivery Delay"
msgstr ""
msgstr "Задержка доставки"
#. module: product
#: model:ir.actions.act_window,name:product.product_pricelist_action
@@ -1620,7 +1629,7 @@ msgstr "Версии каталогов"
#. module: product
#: field:product.packaging,weight_ul:0
msgid "Empty Package Weight"
msgstr ""
msgstr "Вес пустого пакета"
#. module: product
#: field:product.template,list_price:0
-2
View File
@@ -18,11 +18,9 @@
<field name="name" select="1"/>
<field name="categ_id" select="1" widget="selection"/>
<newline/>
<!--
<group col='8' colspan='4' expand='1' string='Group by...'>
<filter string='Category' icon="terp-stock" domain="[]" context="{'group_by' : 'categ_id'}" />
</group>
-->
<group col='8' colspan='7' expand="1" string="Extended options...">
<field name="pricelist_id" select="1" widget="selection" context="{'pricelist': self}" />
</group>
-23
View File
@@ -1,23 +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/>.
#
##############################################################################
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-36
View File
@@ -1,36 +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/>.
#
##############################################################################
{
'name': 'Auction house profile',
'version': '1.0',
'category': 'Profile',
'description': """Profile for Auction house""",
'author': 'Tiny',
'depends': ['auction', 'board_auction', 'account', 'hr_timesheet_sheet'],
'update_xml': [],
'demo_xml': [],
'installable': True,
'active': False,
'certificate': '0065280135565',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-04-10 14:09+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:58+0000\n"
"Last-Translator: Boris <boris.ivanov@obseg.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Профил за Аукционна къща"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:58+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Profil Aukcione firme"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-30 08:22+0000\n"
"Last-Translator: Raimon Esteve <resteve@zikzakmedia.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Perfil per cases de subhastes"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:58+0000\n"
"Last-Translator: Kuvaly <kuvaly@seznam.cz>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Profil pro aukční dům"
-23
View File
@@ -1,23 +0,0 @@
# Kashubian translation for openobject-addons
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:58+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"Language-Team: Kashubian <csb@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: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Profil dlô akcjowégò dodomù"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:58+0000\n"
"Last-Translator: Ferdinand-chricar <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Profil für Auktionshaus"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-24 15:28+0000\n"
"Last-Translator: Borja López Soilán (Pexego) <borjals@pexego.es>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Perfil para casas de subastas"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-14 14:03+0000\n"
"Last-Translator: Silvana Herrera <sherrera@thymbra.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Perfil para casas de subastas"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-22 21:14+0000\n"
"Last-Translator: mra (Open ERP) <mra@tinyerp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Profiil oksjonimajadele"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-09 19:14+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Profile pour salle de vente aux enchères"
-24
View File
@@ -1,24 +0,0 @@
# translation of profile-auction-es.po to Galego
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
# Frco. Javier Rial Rodríguez <fjrial@cesga.es>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: profile-auction-es\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-08-17 08:29+0000\n"
"Last-Translator: Frco. Javier Rial <Unknown>\n"
"Language-Team: Galego <g11n@mancomun.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Perfil para casas de poxas"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-12-22 12:18+0000\n"
"Last-Translator: Jožek Prikratki <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-24 04:40+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Profil za aukcijsku kuću"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-04-10 14:09+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-09 13:53+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:58+0000\n"
"Last-Translator: LucaSub <subluca@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Profilo per Auction"
-23
View File
@@ -1,23 +0,0 @@
# Korean translation for openobject-addons
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 15:13+0000\n"
"Last-Translator: ekodaq <ceo@ekosdaq.com>\n"
"Language-Team: Korean <ko@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: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "옥션 하우스 프로파일"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-04-10 14:08+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 12:25+0000\n"
"Last-Translator: Freerk Kalsbeek (Mindswitch BV) <f.kalsbeek@mindswitch.nl>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-04-14 02:29+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:58+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Profil dla domu akcyjnego"
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01:51+0000\n"
"PO-Revision-Date: 2009-08-28 16:01:51+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: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 12:28+0000\n"
"Last-Translator: Madalena_prime <madalena.barreto@prime.cv>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-28 07:59+0000\n"
"Last-Translator: Joe Pimentel <joe.b.pimentel@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 15:49+0000\n"
"Last-Translator: filsys <office@filsystem.ro>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-04-10 14:09+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-23
View File
@@ -1,23 +0,0 @@
# Slovak translation for openobject-addons
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-18 15:08+0000\n"
"Last-Translator: Radoslav Sloboda <rado.sloboda@gmail.com>\n"
"Language-Team: Slovak <sk@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: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Informácie pre Aukčný dom"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 10:58+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "Profil avkcijske hiše"
-44
View File
@@ -1,44 +0,0 @@
# Translation of OpenERP Server.
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 15:23:46+0000\n"
"PO-Revision-Date: 2009-08-28 15:23: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: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 15:23:46+0000\n"
"PO-Revision-Date: 2009-08-28 15:23: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: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-04-10 14:08+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-02-14 21:37+0000\n"
"Last-Translator: Oktay Altunergil <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-17 04:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-04-10 14:09+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-44
View File
@@ -1,44 +0,0 @@
# Translation of OpenERP Server.
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:00:38+0000\n"
"PO-Revision-Date: 2009-08-28 16:00:38+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: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:00:38+0000\n"
"PO-Revision-Date: 2009-08-28 16:00:38+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: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-12-01 15:45+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr "拍卖行配置"
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-04-10 14:09+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_auction
#: model:ir.module.module,description:profile_auction.module_meta_information
msgid "Profile for Auction house"
msgstr ""
-23
View File
@@ -1,23 +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/>.
#
##############################################################################
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-36
View File
@@ -1,36 +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/>.
#
##############################################################################
{
'name': 'CRM profile',
'version': '1.0',
'category': 'Profile',
'description': """Profile for CRM""",
'author': 'Tiny',
'depends': ['crm_vertical', 'board_crm_configuration'],
'update_xml': [],
'demo_xml': [],
'installable': True,
'active': False,
'certificate': '0073301264221',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-22
View File
@@ -1,22 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * profile_crm
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-04-10 14:08+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:27+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_crm
#: model:ir.module.module,description:profile_crm.module_meta_information
msgid "Profile for CRM"
msgstr ""

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