@@ -0,0 +1 @@
|
||||
.*
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
@@ -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"
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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 ""
|
||||
@@ -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'),
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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'}"/>
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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'}"/>
|
||||
|
||||
@@ -76,6 +76,8 @@
|
||||
<field name="object_id" invisible="1" />
|
||||
<field name="sequence"/>
|
||||
<field name="probability"/>
|
||||
<field name="on_change"/>
|
||||
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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()
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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:
|
||||
@@ -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:
|
||||
|
||||
@@ -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
@@ -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
@@ -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"/>
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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>
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
@@ -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 "Новое Имя модуля"
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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 ""
|
||||
@@ -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 "Профил за Аукционна къща"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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ù"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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 ""
|
||||
@@ -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 ""
|
||||
@@ -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"
|
||||
@@ -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 "옥션 하우스 프로파일"
|
||||
@@ -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 ""
|
||||
@@ -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 ""
|
||||
@@ -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 ""
|
||||
@@ -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 ""
|
||||
|
||||
@@ -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 ""
|
||||
@@ -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 ""
|
||||
@@ -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 ""
|
||||
@@ -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 ""
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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 ""
|
||||
|
||||
@@ -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 ""
|
||||
@@ -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 ""
|
||||
@@ -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 ""
|
||||
@@ -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 ""
|
||||
|
||||
@@ -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 "拍卖行配置"
|
||||
@@ -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 ""
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
@@ -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
Reference in New Issue
Block a user