mra (Open ERP)
2010-03-18 10:26:02 +05:30
33 changed files with 1066 additions and 668 deletions
+8 -8
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-01-13 11:48+0000\n"
"Last-Translator: Kuvaly [LCT] <kuvaly@seznam.cz>\n"
"PO-Revision-Date: 2010-03-17 20:55+0000\n"
"Last-Translator: mitev.dmitry <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-03-11 04:49+0000\n"
"X-Launchpad-Export-Date: 2010-03-18 04:34+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -154,7 +154,7 @@ msgstr "Položky"
#. module: account
#: selection:account.move.line,centralisation:0
msgid "Debit Centralisation"
msgstr ""
msgstr "Debetní Centralizace"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_invoice_state_confirm
@@ -257,7 +257,7 @@ msgstr "Celkový dluh"
#. module: account
#: rml:account.tax.code.entries:0
msgid "Accounting Entries-"
msgstr ""
msgstr "Účetní zápisy"
#. module: account
#: help:account.journal,view_id:0
@@ -299,7 +299,7 @@ msgstr "Zpožděné platby"
#: wizard_view:account.analytic.account.quantity_cost_ledger.report,init:0
#: wizard_view:account.vat.declaration,init:0
msgid "Select period"
msgstr ""
msgstr "Vyberte období"
#. module: account
#: field:account.invoice,origin:0
@@ -384,7 +384,7 @@ msgstr "Celkové částky"
#: field:account.fiscal.position.account,account_src_id:0
#: field:account.fiscal.position.account.template,account_src_id:0
msgid "Account Source"
msgstr ""
msgstr "Zdroj účtu"
#. module: account
#: field:account.journal,update_posted:0
@@ -420,7 +420,7 @@ msgstr ""
#. module: account
#: rml:account.partner.balance:0
msgid "(Account/Partner) Name"
msgstr ""
msgstr "(Účet / Partner) Název"
#. module: account
#: selection:account.move,type:0
+364 -386
View File
File diff suppressed because it is too large Load Diff
+64
View File
@@ -0,0 +1,64 @@
# Hindi 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-24 12:50+0000\n"
"PO-Revision-Date: 2010-03-16 23:00+0000\n"
"Last-Translator: Neetesh Biswas <Unknown>\n"
"Language-Team: Hindi <hi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-18 04:35+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_anglo_saxon
#: view:product.category:0
msgid " Accounting Property"
msgstr ""
#. module: account_anglo_saxon
#: model:ir.module.module,description:account_anglo_saxon.module_meta_information
msgid ""
"This module will support the Anglo-Saxons accounting methodology by \n"
" changing the accounting logic with stock transactions. The difference "
"between the Anglo-Saxon accounting countries \n"
" and the Rhine or also called Continental accounting countries is the "
"moment of taking the Cost of Goods Sold versus Cost of Sales. \n"
" Anglo-Saxons accounting does take the cost when sales invoice is "
"created, Continental accounting will take the cost at he moment the goods "
"are shipped.\n"
" This module will add this functionality by using a interim account, to "
"store the value of shipped goods and will contra book this interim account \n"
" when the invoice is created to transfer this amount to the debtor or "
"creditor account."
msgstr ""
#. module: account_anglo_saxon
#: model:ir.module.module,shortdesc:account_anglo_saxon.module_meta_information
msgid "Stock Account"
msgstr ""
#. module: account_anglo_saxon
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "संरचना देखने के लिए अमान्य XML!"
#. module: account_anglo_saxon
#: field:product.category,property_account_creditor_price_difference_categ:0
#: field:product.template,property_account_creditor_price_difference:0
msgid "Price Difference Account"
msgstr ""
#. module: account_anglo_saxon
#: help:product.category,property_account_creditor_price_difference_categ:0
#: help:product.template,property_account_creditor_price_difference:0
msgid ""
"This account will be used to value price difference between purchase price "
"and cost price."
msgstr ""
+29 -29
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0_rc3\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: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-03-18 02:19+0000\n"
"Last-Translator: Zergar <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-03-11 04:53+0000\n"
"X-Launchpad-Export-Date: 2010-03-18 04:34+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_balance
@@ -24,56 +24,56 @@ msgstr ""
#. module: account_balance
#: selection:account.balance.account.balance.report,init,account_choice:0
msgid "All accounts"
msgstr ""
msgstr "Todas as Contas"
#. module: account_balance
#: wizard_field:account.balance.account.balance.report,init,period_manner:0
msgid "Entries Selection Based on"
msgstr ""
msgstr "Seleção de entradas baseada em"
#. module: account_balance
#: wizard_view:account.balance.account.balance.report,backtoinit:0
#: wizard_view:account.balance.account.balance.report,zero_years:0
msgid "Notification"
msgstr ""
msgstr "Notificação"
#. module: account_balance
#: selection:account.balance.account.balance.report,init,period_manner:0
msgid "Financial Period"
msgstr ""
msgstr "Período Financeiro"
#. module: account_balance
#: model:ir.actions.report.xml,name:account_balance.account_account_balance
#: model:ir.actions.report.xml,name:account_balance.account_account_balance_landscape
msgid "Account balance"
msgstr ""
msgstr "Saldo da Conta"
#. module: account_balance
#: rml:account.account.balance.landscape:0
#: rml:account.balance.account.balance:0
msgid "Account Name"
msgstr ""
msgstr "Nome da Conta"
#. module: account_balance
#: rml:account.account.balance.landscape:0
#: rml:account.balance.account.balance:0
msgid "Debit"
msgstr ""
msgstr "Débito"
#. module: account_balance
#: wizard_button:account.balance.account.balance.report,init,checkyear:0
msgid "Print"
msgstr ""
msgstr "Impressão"
#. module: account_balance
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Period(s)"
msgstr ""
msgstr "Selecione o(s) Período(s)"
#. module: account_balance
#: selection:account.balance.account.balance.report,init,compare_pattern:0
msgid "Percentage"
msgstr ""
msgstr "Porcentagem"
#. module: account_balance
#: wizard_field:account.balance.account.balance.report,init,compare_pattern:0
@@ -83,17 +83,17 @@ msgstr ""
#. module: account_balance
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Fiscal Year(s)(Maximum Three Years)"
msgstr ""
msgstr "Selecione Ano(s) Fiscal(is) (máximo três anos)"
#. module: account_balance
#: wizard_field:account.balance.account.balance.report,init,select_account:0
msgid "Select Reference Account(for % comparision)"
msgstr ""
msgstr "Selecione conta de referência (para comparação %)"
#. module: account_balance
#: model:ir.actions.wizard,name:account_balance.wizard_account_balance_report
msgid "Account balance-Compare Years"
msgstr ""
msgstr "Conta Saldo Comparar Anos"
#. module: account_balance
#: model:ir.module.module,description:account_balance.module_meta_information
@@ -125,70 +125,70 @@ msgstr ""
#. module: account_balance
#: wizard_field:account.balance.account.balance.report,init,landscape:0
msgid "Show Report in Landscape Form"
msgstr ""
msgstr "Mostrar relatório em formato de paisagem"
#. module: account_balance
#: help:account.balance.account.balance.report,init,periods:0
msgid "All periods if empty"
msgstr ""
msgstr "Todos os períodos se vazio"
#. module: account_balance
#: selection:account.balance.account.balance.report,init,account_choice:0
msgid "With balance is not equal to 0"
msgstr ""
msgstr "Com saldo diferente de zero"
#. module: account_balance
#: rml:account.account.balance.landscape:0
#: rml:account.balance.account.balance:0
msgid "Total :"
msgstr ""
msgstr "Total :"
#. module: account_balance
#: rml:account.account.balance.landscape:0
#: rml:account.balance.account.balance:0
msgid "Account Balance -"
msgstr ""
msgstr "Saldo da conta -"
#. module: account_balance
#: wizard_field:account.balance.account.balance.report,init,format_perc:0
msgid "Show Comparision in %"
msgstr ""
msgstr "Mostrar comparação em %"
#. module: account_balance
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Select Period"
msgstr ""
msgstr "Selecione o Período"
#. module: account_balance
#: wizard_view:account.balance.account.balance.report,init:0
msgid "Report Options"
msgstr ""
msgstr "Opções de Relatório"
#. module: account_balance
#: selection:account.balance.account.balance.report,init,account_choice:0
msgid "With movements"
msgstr ""
msgstr "Com movimentos"
#. module: account_balance
#: wizard_button:account.balance.account.balance.report,backtoinit,end:0
#: wizard_button:account.balance.account.balance.report,zero_years,end:0
msgid "Ok"
msgstr ""
msgstr "Ok"
#. module: account_balance
#: selection:account.balance.account.balance.report,init,compare_pattern:0
msgid "Cash"
msgstr ""
msgstr "Dinheiro"
#. module: account_balance
#: selection:account.balance.account.balance.report,init,compare_pattern:0
msgid "Don't Compare"
msgstr ""
msgstr "Não Comparar"
#. module: account_balance
#: wizard_field:account.balance.account.balance.report,init,account_choice:0
msgid "Show Accounts"
msgstr ""
msgstr "Mostrar Contas"
#. module: account_balance
#: rml:account.account.balance.landscape:0
+53
View File
@@ -0,0 +1,53 @@
# Finnish 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-03-17 10:06+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2010-03-18 04:34+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_tax_include
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Virheellinen XML näkymä-arkkitehtuurille!"
#. module: account_tax_include
#: field:account.invoice,price_type:0
msgid "Price method"
msgstr "Hinnan tyyppi"
#. module: account_tax_include
#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information
msgid "Invoices and prices with taxes included"
msgstr "Laskut ja hinnat veroilla"
#. module: account_tax_include
#: selection:account.invoice,price_type:0
msgid "Tax included"
msgstr "Vero sisältyy"
#. module: account_tax_include
#: selection:account.invoice,price_type:0
msgid "Tax excluded"
msgstr "Ilman veroa"
#. module: account_tax_include
#: view:account.tax:0
msgid "Compute Code for Taxes included prices"
msgstr "Laske koodi hinnoille joissa on vero mukana"
#. module: account_tax_include
#: field:account.invoice.line,price_subtotal_incl:0
msgid "Subtotal"
msgstr "Välisumma"
+5 -17
View File
@@ -325,26 +325,17 @@ class calendar_attendee(osv.osv):
result[id][name] = ', '.join(fromdata)
if name == 'event_date':
if attdata.ref:
model, res_id = tuple(attdata.ref.split(','))
model_obj = self.pool.get(model)
obj = model_obj.read(cr, uid, res_id, ['date'])[0]
result[id][name] = obj.get('date')
result[id][name] = attdata.ref.date
else:
result[id][name] = False
if name == 'event_end_date':
if attdata.ref:
model, res_id = tuple(attdata.ref.split(','))
model_obj = self.pool.get(model)
obj = model_obj.read(cr, uid, res_id, ['date_deadline'])[0]
result[id][name] = obj.get('date_deadline')
result[id][name] = attdata.ref.date_deadline
else:
result[id][name] = False
if name == 'sent_by_uid':
if attdata.ref:
model, res_id = tuple(attdata.ref.split(','))
model_obj = self.pool.get(model)
obj = model_obj.read(cr, uid, res_id, ['user_id'])[0]
result[id][name] = obj.get('user_id')
result[id][name] = (attdata.ref.user_id.id,attdata.ref.user_id.name)
else:
result[id][name] = uid
if name == 'language':
@@ -441,8 +432,7 @@ request was delegated to"),
for att in self.browse(cr, uid, ids, context=context):
sign = att.sent_by_uid and att.sent_by_uid.signature or ''
sign = '<br>'.join(sign and sign.split('\n') or [])
model, res_id = tuple(att.ref.split(','))
res_obj = self.pool.get(model).browse(cr, uid, res_id)
res_obj = att.ref
if res_obj and len(res_obj):
res_obj = res_obj[0]
sub = '[%s Invitation][%d] %s' % (company, att.id, res_obj.name)
@@ -490,9 +480,7 @@ request was delegated to"),
if user:
ref = vals.get('ref', None)
if ref:
model, event = ref.split(',')
model_obj = self.pool.get(model)
event_ref = model_obj.browse(cr, uid, event, context=context)[0]
event_ref = ref
if event_ref.user_id.id != user[0]:
defaults = {'user_id': user[0]}
new_event = model_obj.copy(cr, uid, event, default=defaults, context=context)
+1 -1
View File
@@ -159,8 +159,8 @@
<field name="name" select="1"/>
<field name="trigger_interval" select="1"/>
<field name="trigger_duration" select="1"/>
<field name="trigger_related" select="1"/>
<field name="trigger_occurs" select="1"/>
<field name="trigger_related" select="1"/>
</tree>
</field>
</record>
+5 -5
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-12-01 15:33+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"PO-Revision-Date: 2010-03-17 14:08+0000\n"
"Last-Translator: 英华 <wantinghard@gmail.com>\n"
"Language-Team: Simplified Chinese <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-11 05:04+0000\n"
"X-Launchpad-Export-Date: 2010-03-18 04:35+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_module_quality
@@ -86,7 +86,7 @@ msgstr "已跳过"
msgid ""
"The test will be completed only if the module is installed or if the test "
"may be processed on uninstalled module."
msgstr ""
msgstr "只有模块已经安装或测试能在已卸载的模块上运行的情况下测试才能完成。"
#. module: base_module_quality
#: constraint:ir.ui.view:0
@@ -132,7 +132,7 @@ msgstr "概要"
#. module: base_module_quality
#: model:ir.actions.wizard,name:base_module_quality.quality_detail_save
msgid "Report Save"
msgstr ""
msgstr "保存报告"
#. module: base_module_quality
#: wizard_view:quality_detail_save,init:0
+8 -6
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-18 06:19+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-03-16 14:28+0000\n"
"Last-Translator: goranc <goranc@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: 2010-03-11 05:00+0000\n"
"X-Launchpad-Export-Date: 2010-03-18 04:35+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_report_creator
@@ -23,6 +23,8 @@ msgid ""
"records.\n"
" e.g. res_partner.id=3"
msgstr ""
"Unesite izraz za polje po kojem želite filtrirati zapise.\n"
"npr. res_partner.id=3"
#. module: base_report_creator
#: field:base_report_creator.report,view_graph_type:0
@@ -47,7 +49,7 @@ msgstr "Grafički"
#. module: base_report_creator
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Pogrešno ime modela u definiciji akcije."
#. module: base_report_creator
#: view:base_report_creator.report:0
@@ -158,7 +160,7 @@ msgstr "Kreiraj izbornik izvještaja"
#: selection:base_report_creator.report,view_type2:0
#: selection:base_report_creator.report,view_type3:0
msgid "Form"
msgstr ""
msgstr "Ekran"
#. module: base_report_creator
#: selection:base_report_creator.report,view_type3:0
@@ -335,7 +337,7 @@ msgstr "Potvrdi filter"
#. module: base_report_creator
#: field:base_report_creator.report.filter,name:0
msgid "Filter Name"
msgstr ""
msgstr "Filter"
#. module: base_report_creator
#: model:ir.actions.wizard,name:base_report_creator.wizard_report_open
+4 -4
View File
@@ -7,19 +7,19 @@ 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 06:25+0000\n"
"Last-Translator: <>\n"
"PO-Revision-Date: 2010-03-16 08:14+0000\n"
"Last-Translator: Anders Wallenquist <anders.wallenquist@vertel.se>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-11 05:01+0000\n"
"X-Launchpad-Export-Date: 2010-03-18 04:35+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_account
#: view:board.board:0
msgid "Analytic accounts to close"
msgstr ""
msgstr "Objektkonton att stänga"
#. module: board_account
#: view:board.board:0
+1 -1
View File
@@ -45,7 +45,7 @@
<field name="model">crm.claim</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Claims" colors="blue:state=='open';red:(date_deadline&lt;=current_date)">
<tree string="Claims" colors="blue:state=='pending';black:state=='open';grey:state in ('close', 'cancel')">
<field name="id"/>
<field name="name"/>
<field name="partner_id"/>
+13 -13
View File
@@ -202,24 +202,24 @@
<search string="Search Funds">
<group col='6' colspan='4'>
<filter icon="terp-partner" string="My Funds"
default="1" domain="[('user_id','=',uid)]"
separator="1"
help="Funds Related to Current User"
/>
<field name="state" select="1">
<filter icon="gtk-new" domain="[('state','in',('draft', 'open'))]" help="Current Funds" default="1"/>
<filter icon="gtk-yes" domain="[('state','=','open')]" help="Open Funds"/>
<filter icon="gtk-media-pause" domain="[('state','=','pending')]" help="Pending Funds"/>
</field>
default="1" domain="[('user_id','=',uid)]"
separator="1"
help="Funds Related to Current User"
/>
<filter icon="gtk-new" string="Current Funds" domain="[('state','in',('draft', 'open'))]" help="Current Funds" />
<filter icon="gtk-yes" string="Open Funds" domain="[('state','=','open')]" help="Open Funds"/>
<filter icon="gtk-media-pause" string="Pending Funds" domain="[('state','=','pending')]" help="Pending Funds"/>
<separator orientation="vertical"/>
<field name="state" select="1" />
<field name="name" select='1' string="Fund Description"/>
<field name="user_id" select="1" widget="selection">
<filter icon="terp-partner" domain="[('user_id','=', False)]" help="Unassigned" />
<filter icon="terp-partner" domain="[('user_id','=', False)]" help="Unassigned" />
</field>
<field name="section_id" select="1" widget="selection" string="Section" default="context.get('section_id', False)">
<filter icon="terp-crm"
<field name="section_id" select="1" widget="selection" string="Section" default="context.get('section_id', False)">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section"
/>
/>
</field>
</group>
</search>
+2 -1
View File
@@ -122,7 +122,8 @@
<field name="model">crm.helpdesk</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Helpdesk Support Tree" colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')">
<tree string="Helpdesk Support Tree"
colors="black:state=='open';blue:state=='pending';grey:state in ('cancel','close')">
<field name="id"/>
<field name="name" string="Query Description" />
<field name="partner_id" string="Partner"/>
+2 -5
View File
@@ -74,17 +74,14 @@ class calendar_attendee(osv.osv):
result[id] = {}
if name == 'categ_id':
if attdata.ref:
model, res_id = tuple(attdata.ref.split(','))
model_obj = self.pool.get(model)
obj = model_obj.read(cr, uid, res_id, ['categ_id'])[0]
result[id][name] = obj.get('categ_id')
result[id][name] = (attdata.ref.categ_id.id,attdata.ref.categ_id.name,)
else:
result[id][name] = False
return result
_columns = {
'categ_id': fields.function(_compute_data, method=True, \
string='Event Type', type="many2one", \
relation="crm.case.categ", multi='categ_id'),
relation="crm.case.categ", multi='categ_id'),
}
calendar_attendee()
+7 -7
View File
@@ -215,24 +215,24 @@
/>
<separator orientation="vertical"/>
<field name="name" string="Opportunity"/>
<field name="partner_id"/>
<field name="user_id" widget="selection">
<filter icon="terp-partner"
domain="[('user_id','=',uid)]"
help="My Opportunities" default="1"
/>
</field>
<field name="partner_id"/>
<field name="state">
<filter icon="gtk-media-rewind"
string="New and open opportunities"
default="1"
domain="[('state','in',('draft','open'))]"/>
</field>
<field name="section_id" default="context.get('section_id', False)" select="1" widget="selection">
<filter icon="terp-crm"
domain="[('section_id','=',context.get('section_id',False))]"
help="My section"/>
</field>
<field name="state">
<filter icon="gtk-media-rewind"
help="New and open opportunities"
default="1"
domain="[('state','in',('draft','open'))]" />
</field>
<newline/>
<group expand="1" string="Group By..." colspan="4">
<filter string="Stage" icon="terp-crm" domain="[]" context="{'group_by':'stage_id'}"/>
+1 -1
View File
@@ -634,7 +634,7 @@
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<field name="category_id" position="after">
<field name="section_id" completion="1" widget="selection"/>
<field name="section_id" completion="1" widget="selection"/>
</field>
</field>
</record>
+4 -4
View File
@@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-01-15 13:24+0000\n"
"Last-Translator: vir (Open ERP) <vir@tinyerp.com>\n"
"PO-Revision-Date: 2010-03-16 22:57+0000\n"
"Last-Translator: Neetesh Biswas <Unknown>\n"
"Language-Team: Hindi <hi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-11 05:03+0000\n"
"X-Launchpad-Export-Date: 2010-03-18 04:35+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: event_project
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
msgstr "संरचना देखने के लिए अमान्य XML"
#. module: event_project
#: model:ir.actions.wizard,name:event_project.wizard_event_task
+6 -7
View File
@@ -36,9 +36,9 @@
- An employee can make an ask for more off-days by making a new Allocation It will increase his total of that leave type available (if the request is accepted).
- There are two ways to print the employee's holidays:
* The first will allow to choose employees by department and is used by clicking the menu item located in
HR / Reporting / Holidays / Print Summary of Holidays
HR / Holidays Request / Print Summary of Holidays
* The second will allow you to choose the holidays report for specific employees. Go on the list
HR / Human Resources / Employees
HR / Employees / Employees
then select the ones you want to choose, click on the print icon and select the option
'Print Summary of Employee's Holidays'
- The wizard allows you to choose if you want to print either the Confirmed & Validated holidays or only the Validated ones. These states must be set up by a user from the group 'HR' and with the role 'holidays'. You can define these features in the security tab from the user data in
@@ -51,14 +51,13 @@
'init_xml': [],
'update_xml': [
'security/ir.model.access.csv',
'hr_holidays_workflow.xml',
'hr_holidays_view.xml',
'hr_holidays_report.xml',
'hr_workflow.xml',
'hr_view.xml',
'hr_holidays_wizard.xml',
'report/hr_holidays_report_view.xml',
'hr_holidays_report.xml',
#'process/hr_holidays_process.xml'
],
'demo_xml': ['hr_holidays_demo.xml'],
'demo_xml': [],
'installable': True,
'active': False,
'certificate': '0086579209325',
+66 -137
View File
@@ -23,34 +23,27 @@
from mx import DateTime
import time
import datetime
import pooler
import netsvc
import datetime
from osv import fields, osv
from tools.translate import _
class hr_holidays_status(osv.osv):
_name = "hr.holidays.status"
_description = "Leave Types"
def get_days(self, cr, uid, ids, employee_id, return_false, context={}):
res = {}
holiday_user = self.pool.get('hr.holidays.per.user')
for record in self.browse(cr, uid, ids, context=context):
for record in self.browse(cr, uid, ids, context):
res[record.id] = {}
max_leaves = leaves_taken = 0
obj_ids = holiday_user.search(cr, uid, [('user_id','=',uid),('employee_id','=',employee_id),('holiday_status','=',record.id)], context=context)
if obj_ids:
br_ob = holiday_user.browse(cr, uid, obj_ids, context=context)[0]
max_leaves=br_ob.max_leaves
if not return_false:
cr.execute("""SELECT type, sum(number_of_days) FROM hr_holidays WHERE employee_id = %s AND state='validate' AND holiday_status_id = %s GROUP BY type""", (str(employee_id), str(record.id)))
for line in cr.fetchall():
if line[0] =='remove':
leaves_taken = -line[1]
leaves_taken = -line[1]
if line[0] =='add':
max_leaves = line[1]
max_leaves = line[1]
res[record.id]['max_leaves'] = max_leaves
res[record.id]['leaves_taken'] = leaves_taken
res[record.id]['remaining_leaves'] = max_leaves - leaves_taken
@@ -64,23 +57,24 @@ class hr_holidays_status(osv.osv):
return_false = True
employee_id = context['employee_id']
else:
employee_ids = self.pool.get('hr.employee').search(cr, uid, [('user_id','=',uid)], context=context)
employee_ids = self.pool.get('hr.employee').search(cr, uid, [('user_id','=',uid)])
if employee_ids:
employee_id = employee_ids[0]
else:
return_false = True
res = self.get_days(cr, uid, ids, employee_id, return_false, context=context)
if employee_id:
res = self.get_days(cr, uid, ids, employee_id, return_false, context=context)
return res
_columns = {
'name' : fields.char('Name', size=64, required=True, translate=True),
'section_id': fields.many2one('crm.case.section', 'CRM Section', help='If you link this type of leave with a section in the CRM, it will synchronize each leave asked with a case in this section, to display it in the company shared calendar for example.'),
'categ_id': fields.many2one('crm.case.categ', 'Meeting Category', domain="[('object_id.model', '=', 'crm.meeting')]", help='If you link this type of leave with a category in the CRM, it will synchronize each leave asked with a case in this category, to display it in the company shared calendar for example.'),
'color_name' : fields.selection([('red', 'Red'), ('lightgreen', 'Light Green'), ('lightblue','Light Blue'), ('lightyellow', 'Light Yellow'), ('magenta', 'Magenta'),('lightcyan', 'Light Cyan'),('black', 'Black'),('lightpink', 'Light Pink'),('brown', 'Brown'),('violet', 'Violet'),('lightcoral', 'Light Coral'),('lightsalmon', 'Light Salmon'),('lavender', 'Lavender'),('wheat', 'Wheat'),('ivory', 'Ivory')],'Color of the status', required=True, help='This color will be used in the leaves summary located in Reporting\Print Summary of Leaves'),
'limit' : fields.boolean('Allow to override Limit', help='If you thick this checkbox, the system will allow, for this section, the employees to take more leaves than the available ones.'),
'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the leave type without removing it."),
'active' : fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the leave type without removing it."),
'max_leaves' : fields.function(_user_left_days, method=True, string='Maximum Leaves Allowed', help='This value is given by the sum of all holidays requests with a positive value.', multi='user_left_days'),
'leaves_taken' : fields.function(_user_left_days, method=True, string='Leaves Already Taken', help='This value is given by the sum of all holidays requests with a negative value.', multi='user_left_days'),
'remaining_leaves' : fields.function(_user_left_days, method=True, string='Remaining Leaves', multi='user_left_days'),
'remaining_leaves' : fields.function(_user_left_days, method=True, string='Remaining Leaves', help='Maximum Leaves Allowed - Leaves Already Taken', multi='user_left_days'),
}
_defaults = {
@@ -89,55 +83,13 @@ class hr_holidays_status(osv.osv):
}
hr_holidays_status()
class hr_holidays_per_user(osv.osv):
_name = "hr.holidays.per.user"
_description = "Holidays Per User"
_rec_name = "user_id"
def _get_remaining_leaves(self, cr, uid, ids, field_name, arg=None, context={}):
obj_holiday = self.pool.get('hr.holidays')
result = {}
for holiday_user in self.browse(cr, uid, ids):
days = 0.0
ids_request = obj_holiday.search(cr, uid, [('employee_id', '=', holiday_user.employee_id.id),('state', '=', 'validate'),('holiday_status_id', '=', holiday_user.holiday_status.id)], context=context)
if ids_request:
holidays = obj_holiday.browse(cr, uid, ids_request, context=context)
for holiday in holidays:
days -= holiday.number_of_days
days = holiday_user.max_leaves - days
result[holiday_user.id] = days
return result
_columns = {
'employee_id': fields.many2one('hr.employee', "Employee's Name",required=True),
'user_id' : fields.many2one('res.users','User'),
'holiday_status' : fields.many2one("hr.holidays.status", "Holiday's Status", required=True),
'max_leaves' : fields.float('Maximum Leaves Allowed',required=True),
'leaves_taken' : fields.float('Leaves Already Taken',readonly=True),
'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the holidays per user without removing it."),
'notes' : fields.text('Notes'),
'remaining_leaves': fields.function(_get_remaining_leaves, method=True, string='Remaining Leaves', type='float'),
'holiday_ids': fields.one2many('hr.holidays', 'holiday_user_id', 'Holidays')
}
_defaults = {
'active' : lambda *a: True,
}
def create(self, cr, uid, vals, *args, **kwargs):
if vals.get('employee_id', False):
obj_emp=self.pool.get('hr.employee').browse(cr,uid,vals['employee_id'])
vals.update({'user_id': obj_emp.user_id.id})
return super(osv.osv,self).create(cr, uid, vals, *args, **kwargs)
hr_holidays_per_user()
class hr_holidays(osv.osv):
_name = "hr.holidays"
_description = "Holidays"
_order = "type desc, date_from asc"
def _employee_get(obj,cr,uid,context={}):
ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)], context=context)
ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)])
if ids:
return ids[0]
return False
@@ -155,25 +107,32 @@ class hr_holidays(osv.osv):
'notes' : fields.text('Notes',readonly=True, states={'draft':[('readonly',False)]}),
'number_of_days': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)]}),
'number_of_days_temp': fields.float('Number of Days', readonly=True, states={'draft':[('readonly',False)]}),
'case_id': fields.many2one('crm.case', 'Case'),
'case_id': fields.many2one('crm.meeting', 'Case'),
'type': fields.selection([('remove','Leave Request'),('add','Allocation Request')], 'Request Type', required=True, readonly=True, states={'draft':[('readonly',False)]}, help="Choose 'Leave Request' if someone wants to take an off-day. \nChoose 'Allocation Request' if you want to increase the number of leaves available for someone"),
'allocation_type': fields.selection([('employee','Employee Request'),('company','Company Allocation')], 'Allocation Type', required=True, readonly=True, states={'draft':[('readonly',False)]}, help='This field is only for informative purposes, to depict if the leave request/allocation comes from an employee or from the company'),
'parent_id': fields.many2one('hr.holidays', 'Parent'),
'linked_request_ids': fields.one2many('hr.holidays', 'parent_id', 'Linked Requests',),
'holiday_user_id' : fields.many2one('hr.holidays.per.user', 'User'),
'department_id':fields.many2one('hr.department','Department'),
'department_id':fields.many2one('hr.department','Department', readonly=True, states={'draft':[('readonly',False)]} ),
}
_defaults = {
'employee_id': _employee_get ,
'state': lambda *a: 'draft',
'employee_id' : _employee_get ,
'state' : lambda *a: 'draft',
'type': lambda *a: 'remove',
'allocation_type': lambda *a: 'employee',
'user_id': lambda obj, cr, uid, context: uid,
}
_order = 'date_from desc'
def onchange_date_from(self, cr, uid, ids, date_to, date_from, context={}):
def create(self, cr, uid, vals, context={}):
if context:
if context.has_key('type'):
vals['type'] = context['type']
if context.has_key('allocation_type'):
vals['allocation_type'] = context['allocation_type']
return super(osv.osv,self).create(cr, uid, vals, context)
def onchange_date_from(self, cr, uid, ids, date_to, date_from):
result = {}
if date_to and date_from:
from_dt = time.mktime(time.strptime(date_from,'%Y-%m-%d %H:%M:%S'))
@@ -188,21 +147,19 @@ class hr_holidays(osv.osv):
}
return result
def _update_user_holidays(self, cr, uid, ids, context={}):
for record in self.browse(cr, uid, ids, context=context):
def _update_user_holidays(self, cr, uid, ids):
for record in self.browse(cr, uid, ids):
if record.state=='validate':
holiday_id=self.pool.get('hr.holidays.per.user').search(cr, uid, [('employee_id','=', record.employee_id.id),('holiday_status','=',record.holiday_status_id.id)], context=context)
if holiday_id:
obj_holidays_per_user=self.pool.get('hr.holidays.per.user').browse(cr, uid,holiday_id[0], context=context)
self.pool.get('hr.holidays.per.user').write(cr,uid,obj_holidays_per_user.id,{'leaves_taken':obj_holidays_per_user.leaves_taken + record.number_of_days}, context=context)
if record.case_id:
if record.case_id.state <> 'draft':
raise osv.except_osv(_('Warning !'),
_('You can not cancel this holiday request. first You have to make its case in draft state.'))
else:
self.pool.get('crm.case').unlink(cr,uid,[record.case_id.id], context=context)
self.pool.get('crm.meeting').unlink(cr,uid,[record.case_id.id])
if record.linked_request_ids:
list_ids = []
for id in record.linked_request_ids:
list_ids.append(id.id)
self.holidays_cancel(cr,uid,list_ids)
self.unlink(cr,uid,list_ids)
def _check_date(self, cr, uid, ids, context={}):
def _check_date(self, cr, uid, ids):
if ids:
cr.execute('select number_of_days_temp from hr_holidays where id in ('+','.join(map(str, ids))+')')
res = cr.fetchall()
@@ -212,29 +169,11 @@ class hr_holidays(osv.osv):
_constraints = [(_check_date, 'Start date should not be larger than end date! ', ['number_of_days'])]
def create(self, cr, uid, vals, *args, **kwargs):
id_holiday = super(hr_holidays, self).create(cr, uid, vals, *args, **kwargs)
self._create_holiday(cr, uid, [id_holiday])
return id_holiday
def unlink(self, cr, uid, ids, context={}):
self._update_user_holidays(cr, uid, ids, context=context)
for record in self.browse(cr, uid, ids, context=context):
calender_leave_id= self.pool.get('resource.calendar.leaves').search(cr, uid, [('date_from','=',record.date_from),('date_to','=',record.date_to),('resource_id','=',record.employee_id.resource_id.id)], context=context)
self.pool.get('resource.calendar.leaves').unlink(cr, uid, calender_leave_id[0])
self._update_user_holidays(cr, uid, ids)
return super(hr_holidays, self).unlink(cr, uid, ids, context)
def _create_holiday(self, cr, uid, ids, context={}):
holidays_user_obj = self.pool.get('hr.holidays.per.user')
holidays_data = self.browse(cr, uid, ids[0], context=context)
list_holiday = []
ids_user_hdays = holidays_user_obj.search(cr, uid, [('employee_id', '=', holidays_data.employee_id.id),('holiday_status', '=', holidays_data.holiday_status_id.id)], context=context)
for hdays in holidays_user_obj.browse(cr, uid, ids_user_hdays):
for req in hdays.holiday_ids:
list_holiday.append(req.id)
list_holiday.append(ids[0])
holidays_user_obj.write(cr, uid, ids_user_hdays, {'holiday_ids': [(6, 0, list_holiday)]}, context=context)
return True
def onchange_date_to(self, cr, uid, ids, date_from, date_to):
result = {}
@@ -254,14 +193,15 @@ class hr_holidays(osv.osv):
def onchange_sec_id(self, cr, uid, ids, status, context={}):
warning = {}
if status:
brows_obj = self.pool.get('hr.holidays.status').browse(cr, uid, [status], context=context)[0]
if brows_obj.section_id and not brows_obj.section_id.allow_unlink:
brows_obj = self.pool.get('hr.holidays.status').browse(cr, uid, [status])[0]
if brows_obj.categ_id and brows_obj.categ_id.section_id and not brows_obj.categ_id.section_id.allow_unlink:
warning = {
'title': "Warning for ",
'message': "You won\'t be able to cancel this leave request because the CRM Section of the leave type disallows."
}
return {'warning': warning}
def set_to_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {
'state':'draft',
@@ -288,11 +228,7 @@ class hr_holidays(osv.osv):
def holidays_confirm(self, cr, uid, ids, *args):
for record in self.browse(cr, uid, ids):
# if not record.employee_id.parent_id:
# raise osv.except_osv(_('Warning!'),_('You can not confirm leave for %s while %s has no manager.' %(record.employee_id.name,record.employee_id.name)))
# calender_id= self.pool.get('resource.calendar').search(cr, uid, [('company_id','=',record.employee_id.company_id.id),('manager','=',record.employee_id.parent_id.user_id.id)])
# if not calender_id:
# raise osv.except_osv(_('Warning!'),_('You have to define the calendar resource for %s company.' %(record.employee_id.company_id.name)))
user_id = False
leave_asked = record.number_of_days_temp
if record.type == 'remove':
if record.employee_id and not record.holiday_status_id.limit:
@@ -308,28 +244,27 @@ class hr_holidays(osv.osv):
self.write(cr, uid, [record.id], {
'state':'confirm',
'number_of_days': nb,
'user_id': user_id,
'manager_id': record.employee_id.parent_id and record.employee_id.parent_id.id or False
'user_id': user_id
})
vals= {
'name':record.name,
'date_from':record.date_from,
'date_to':record.date_to,
# 'calendar_id':calender_id[0],
'resource_id':record.employee_id.resource_id.id
}
self.pool.get('resource.calendar.leaves').create(cr,uid,vals)
#vals= {
# 'name':record.name,
# 'date_from':record.date_from,
# 'date_to':record.date_to,
# 'calendar_id':record.employee_id.calendar_id.id,
# 'company_id':record.employee_id.company_id.id,
# 'resource_id':record.employee_id.resource_id.id
# }
#self.pool.get('resource.calendar.leaves').create(cr,uid,vals)
return True
def holidays_refuse(self, cr, uid, ids, *args):
vals = {
'state':'refuse',
}
# ids2 = self.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)])
# if ids2:
# vals['manager_id'] = ids2[0]
for record in self.browse(cr, uid, ids):
vals['manager_id']=record.employee_id.parent_id.id
ids2 = self.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)])
if ids2:
vals['manager_id'] = ids2[0]
self.write(cr, uid, ids, vals)
return True
@@ -338,9 +273,6 @@ class hr_holidays(osv.osv):
self.write(cr, uid, ids, {
'state':'cancel'
})
for record in self.browse(cr, uid, ids):
calender_leave_id= self.pool.get('resource.calendar.leaves').search(cr, uid, [('date_from','=',record.date_from),('date_to','=',record.date_to),('resource_id','=',record.employee_id.resource_id.id)])
self.pool.get('resource.calendar.leaves').unlink(cr, uid, calender_leave_id[0])
return True
def holidays_draft(self, cr, uid, ids, *args):
@@ -349,23 +281,18 @@ class hr_holidays(osv.osv):
})
return True
def check_holidays(self,cr,uid,ids, context={}):
for record in self.browse(cr, uid, ids, context=context):
def check_holidays(self,cr,uid,ids):
for record in self.browse(cr, uid, ids):
if not record.number_of_days:
raise osv.except_osv(_('Warning!'),_('Wrong leave definition.'))
raise osv.except_osv(_('Warning!'),_('Wrong leave definition.'))
if record.employee_id:
leave_asked = record.number_of_days
res = self.pool.get('hr.holidays.status').get_days(cr, uid, [record.holiday_status_id.id], record.employee_id.id, False)
if leave_asked < 0.00:
if not record.holiday_status_id.limit:
leaves_rest = res[record.holiday_status_id.id]['remaining_leaves']
max_leaves = res[record.holiday_status_id.id]['max_leaves']
leaves_rest = self.pool.get('hr.holidays.status').get_days( cr, uid, [record.holiday_status_id.id], record.employee_id.id, False)[record.holiday_status_id.id]['remaining_leaves']
if leaves_rest < -(leave_asked):
raise osv.except_osv(_('Warning!'),_('You Cannot Validate leaves while available leaves are less than asked leaves.'))
else:
leaves_taken = max_leaves -leaves_rest + record.number_of_days_temp
holiday_id = self.pool.get('hr.holidays.per.user').search(cr, uid, [('employee_id','=', record.employee_id.id),('holiday_status','=',record.holiday_status_id.id)])
self.pool.get('hr.holidays.per.user').write(cr,uid,holiday_id[0],{'leaves_taken':leaves_taken})
else:
holiday_ids = []
vals = {
@@ -384,14 +311,17 @@ class hr_holidays(osv.osv):
employee_ids = self.pool.get('hr.employee').search(cr, uid, [])
for employee in employee_ids:
vals['employee_id'] = employee
user_id = self.pool.get('hr.employee').search(cr, uid, [('user_id','=',uid)])
if user_id:
vals['user_id'] = user_id[0]
holiday_ids.append(self.create(cr, uid, vals, context={}))
self.holidays_confirm(cr, uid, holiday_ids, context=context)
self.holidays_validate(cr, uid, holiday_ids, context=context)
self.holidays_confirm(cr, uid, holiday_ids)
self.holidays_validate(cr, uid, holiday_ids)
if record.holiday_status_id.section_id and record.date_from and record.date_to and record.employee_id:
if record.holiday_status_id.categ_id and record.date_from and record.date_to and record.employee_id:
vals={}
vals['name']=record.name
vals['section_id']=record.holiday_status_id.section_id.id
vals['categ_id']=record.holiday_status_id.categ_id.id
epoch_c = time.mktime(time.strptime(record.date_to,'%Y-%m-%d %H:%M:%S'))
epoch_d = time.mktime(time.strptime(record.date_from,'%Y-%m-%d %H:%M:%S'))
diff_day = (epoch_c - epoch_d)/(3600*24)
@@ -399,9 +329,8 @@ class hr_holidays(osv.osv):
vals['note'] = record.notes
vals['user_id'] = record.user_id.id
vals['date'] = record.date_from
case_id = self.pool.get('crm.case').create(cr,uid,vals)
case_id = self.pool.get('crm.meeting').create(cr,uid,vals)
self.write(cr, uid, ids, {'case_id':case_id})
return True
hr_holidays()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+71
View File
@@ -9,6 +9,77 @@
auto="False"
menu="False"/>
<!-- available holidays report -->
<record id="view_report_hr_holiday_tree" model="ir.ui.view">
<field name="name">hr.holidays.report.tree</field>
<field name="model">hr.holidays.report</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Available Holidays">
<field name="employee_id"/>
<field name="holiday_status_id"/>
<field name="remaining_leave"/>
</tree>
</field>
</record>
<record id="view_report_hr_holiday_form" model="ir.ui.view">
<field name="name">hr.holidays.report.form</field>
<field name="model">hr.holidays.report</field>
<field name="type">form</field>
<field name="arch" type="xml">
<tree string="Available Holidays">
<field name="employee_id" select="1"/>
<field name="holiday_status_id" select="1"/>
<field name="remaining_leave"/>
</tree>
</field>
</record>
<record id="view_report_hr_holiday_graph" model="ir.ui.view">
<field name="name">hr.holiday.report.graph</field>
<field name="model">hr.holidays.report</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph orientation="horizontal" string="Available Holidays" type="bar">
<field name="holiday_status_id"/>
<field name="remaining_leave" operator="+"/>
<field group="True" name="employee_id"/>
</graph>
</field>
</record>
<record id="action_report_hr_holiday" model="ir.actions.act_window">
<field name="name">Available Holidays</field>
<field name="res_model">hr.holidays.report</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="view_id" ref="view_report_hr_holiday_tree"/>
</record>
<record model="ir.actions.act_window.view" id="action_report_hr_holiday_tree">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_report_hr_holiday_tree"/>
<field name="act_window_id" ref="action_report_hr_holiday"/>
</record>
<record model="ir.actions.act_window.view" id="action_report_hr_holiday_graph">
<field name="sequence" eval="2"/>
<field name="view_mode">graph</field>
<field name="view_id" ref="view_report_hr_holiday_graph"/>
<field name="act_window_id" ref="action_report_hr_holiday"/>
</record>
<menuitem name="Available Holidays" id="menu_report_hr_holiday_tree" action="action_report_hr_holiday" parent="menu_hr_reporting_holidays"/>
</data>
</openerp>
+4 -3
View File
@@ -11,10 +11,11 @@
name="Holidays"
parent="hr.menu_hr_reporting"
sequence="3" />
<wizard string="Print Summary of Holidays"
<wizard string="Holidays by Departement"
name="hr.holidays.summary"
id="holidays_summary"/>
<menuitem name="Print Summary of Holidays" parent="menu_hr_reporting_holidays"
<menuitem name="Holidays by Departement" parent="menu_hr_reporting_holidays"
icon="STOCK_PRINT"
action="holidays_summary"
type="wizard"
id="menu_holidays_summary" sequence="20"/>
@@ -24,7 +25,7 @@
<field eval="[(6,0,[ref('hr.group_hr_manager')])]" name="groups_id"/>
</record>
<wizard string="Print Summary of Employee's Holidays"
<wizard string="Employee's Holidays"
model="hr.employee" name="hr.holidays.summary.employee"
keyword="client_print_multi" id="wizard_holidays_summary" />
</data>
+3 -3
View File
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@@ -15,11 +15,11 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import holidays_summary_report
import hr_holidays_report
import available_holidays
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -0,0 +1,33 @@
from osv import fields,osv
import tools
class hr_holidays_report(osv.osv):
_name = "hr.holidays.report"
_auto = False
_columns = {
'employee_id': fields.many2one ('hr.employee', 'Employee', readonly=True),
'holiday_status_id': fields.many2one('hr.holidays.status', 'Leave Type', readonly=True),
# 'max_leave': fields.float('Allocated Leaves', readonly=True),
# 'taken_leaves': fields.float('Taken Leaves', readonly=True),
'remaining_leave': fields.float('Remaining Leaves',readonly=True),
}
def init(self, cr):
tools.drop_view_if_exists(cr, 'hr_holidays_report')
cr.execute("""
create or replace view hr_holidays_report as (
select
min(h.id) as id,
h.employee_id as employee_id,
h.holiday_status_id as holiday_status_id,
sum(number_of_days) as remaining_leave
from
hr_holidays h
left join hr_holidays_status s on (s.id = h.holiday_status_id)
where h.state = 'validate'
and h.employee_id is not null
and s.active <> 'f'
group by h.holiday_status_id, h.employee_id
)""")
hr_holidays_report()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -44,7 +44,6 @@ def strToDate(dt):
def emp_create_xml(self,cr,uid,dept,holiday_type,row_id,empid,name,som,eom):
display={}
if dept==0:
count=0
p_id=pooler.get_pool(cr.dbname).get('hr.holidays').search(cr,uid,[('employee_id','in',[empid,False]), ('type', '=', 'remove')])
@@ -1,5 +1,5 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_hr_holydays_status_user","hr.holidays.status user","model_hr_holidays_status","hr.group_hr_user",1,1,1,1
"access_hr_holidays_user","hr holidays user","model_hr_holidays","hr.group_hr_user",1,1,1,1
"access_hr_holidays_per_user","hr.holidays.per.user","model_hr_holidays_per_user","hr.group_hr_user",1,1,1,1
"access_hr_holidays_report","hr.holidays.report","model_hr_holidays_report","hr.group_hr_user",1,1,1,1
"access_hr_holydays_status_user","hr.holidays.status user","model_hr_holidays_status","hr.group_hr_user",1,0,0,0
"access_hr_holidays_user","hr holidays user","model_hr_holidays","hr.group_hr_user",1,1,1,0
"access_hr_holydays_status_manager","hr.holidays.status manager","model_hr_holidays_status","hr.group_hr_manager",1,1,1,1
"access_hr_holidays_manager","hr holidays manager","model_hr_holidays","hr.group_hr_manager",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_hr_holydays_status_user hr.holidays.status user model_hr_holidays_status hr.group_hr_user 1 1 0 1 0 1 0
3 access_hr_holidays_user hr holidays user model_hr_holidays hr.group_hr_user 1 1 1 1 0
4 access_hr_holidays_per_user access_hr_holydays_status_manager hr.holidays.per.user hr.holidays.status manager model_hr_holidays_per_user model_hr_holidays_status hr.group_hr_user hr.group_hr_manager 1 1 1 1
5 access_hr_holidays_report access_hr_holidays_manager hr.holidays.report hr holidays manager model_hr_holidays_report model_hr_holidays hr.group_hr_user hr.group_hr_manager 1 1 1 1
+4 -4
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-17 06:57+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-03-16 13:31+0000\n"
"Last-Translator: George Dumitrescu <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-03-11 04:54+0000\n"
"X-Launchpad-Export-Date: 2010-03-18 04:34+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: idea
@@ -380,7 +380,7 @@ msgstr "Punctaj mediu"
#. module: idea
#: view:idea.idea:0
msgid "Open"
msgstr "Deschidere"
msgstr "Deschide"
#. module: idea
#: help:idea.idea,description:0
+89
View File
@@ -0,0 +1,89 @@
# Finnish 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-03-16 10:41+0000\n"
"Last-Translator: smii <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: 2010-03-18 04:35+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_subproduct
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Virheellinen XML näkymä-arkkitehtuurille!"
#. module: mrp_subproduct
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr "Objektin nimen tulee alkaa x_ ja se ei saa sisältää erikoismerkkejä!"
#. module: mrp_subproduct
#: view:mrp.bom:0
msgid "sub products"
msgstr ""
#. module: mrp_subproduct
#: field:mrp.subproduct,product_id:0
msgid "Product"
msgstr "Tuote"
#. module: mrp_subproduct
#: model:ir.model,name:mrp_subproduct.model_mrp_subproduct
msgid "Mrp Sub Product"
msgstr ""
#. module: mrp_subproduct
#: field:mrp.subproduct,subproduct_type:0
msgid "Quantity Type"
msgstr ""
#. module: mrp_subproduct
#: field:mrp.subproduct,product_qty:0
msgid "Product Qty"
msgstr "Tuotteen määrä"
#. module: mrp_subproduct
#: field:mrp.subproduct,product_uom:0
msgid "Product UOM"
msgstr ""
#. module: mrp_subproduct
#: field:mrp.subproduct,bom_id:0
msgid "BoM"
msgstr ""
#. module: mrp_subproduct
#: view:mrp.bom:0
msgid "Sub Products"
msgstr ""
#. module: mrp_subproduct
#: selection:mrp.subproduct,subproduct_type:0
msgid "Variable"
msgstr ""
#. module: mrp_subproduct
#: field:mrp.bom,sub_products:0
msgid "sub_products"
msgstr ""
#. module: mrp_subproduct
#: selection:mrp.subproduct,subproduct_type:0
msgid "Fixed"
msgstr "Ennalta määrätty"
#. module: mrp_subproduct
#: model:ir.module.module,shortdesc:mrp_subproduct.module_meta_information
msgid "MRP Sub Product"
msgstr ""
+192
View File
@@ -0,0 +1,192 @@
# Finnish 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-12-08 11:46+0000\n"
"PO-Revision-Date: 2010-03-16 10:12+0000\n"
"Last-Translator: smii <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: 2010-03-18 04:35+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 ""
#. module: multi_company
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr "Objektin nimen tulee alkaa x_ ja se ei saa sisältää erikoismerkkejä!"
#. module: multi_company
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
#. module: multi_company
#: constraint:res.partner:0
msgid "The VAT doesn't seem to be correct."
msgstr "ALV ei vaikuta olevan oikea."
#. module: multi_company
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Virheellinen mallin nimi toiminnon määrittelyssä."
#. module: multi_company
#: model:res.company,overdue_msg:multi_company.res_company_odoo
#: model:res.company,overdue_msg:multi_company.res_company_oerp_be
#: model:res.company,overdue_msg:multi_company.res_company_oerp_editor
#: model:res.company,overdue_msg:multi_company.res_company_oerp_in
#: model:res.company,overdue_msg:multi_company.res_company_oerp_us
msgid ""
"Would your payment have been carried out after this mail was sent, please "
"consider the present one as void. Do not hesitate to contact our accounting "
"department"
msgstr ""
#. module: multi_company
#: field:multi_company.default,company_dest_id:0
msgid "Default Company"
msgstr ""
#. module: multi_company
#: field:multi_company.default,object_id:0
msgid "Object"
msgstr "Objekti"
#. module: multi_company
#: model:ir.module.module,shortdesc:multi_company.module_meta_information
#: view:multi_company.default:0
msgid "Multi Company"
msgstr ""
#. module: multi_company
#: model:ir.module.module,description:multi_company.module_meta_information
msgid ""
"This module add the possibility to easily manage \n"
" the default value for each object\n"
" "
msgstr ""
#. module: multi_company
#: field:multi_company.default,company_id:0
msgid "Main Company"
msgstr "Pääyritys"
#. module: multi_company
#: view:multi_company.default:0
msgid "Condition"
msgstr "Ehto"
#. module: multi_company
#: help:multi_company.default,company_dest_id:0
msgid "Company to store the current record"
msgstr ""
#. module: multi_company
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
#. module: multi_company
#: field:multi_company.default,name:0
msgid "Name"
msgstr "Nimi"
#. module: multi_company
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
msgstr ""
#. module: multi_company
#: model:product.category,name:multi_company.Odoo1
msgid "Odoo Offers"
msgstr ""
#. module: multi_company
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr ""
#. module: multi_company
#: help:multi_company.default,name:0
msgid "Name it to easily find a record"
msgstr ""
#. module: multi_company
#: model:ir.ui.menu,name:multi_company.menu_custom_multicompany
msgid "Multi company"
msgstr ""
#. module: multi_company
#: model:ir.model,name:multi_company.model_multi_company_default
msgid "multi_company.default"
msgstr ""
#. module: multi_company
#: help:multi_company.default,company_id:0
msgid "Company where the user is connected"
msgstr ""
#. module: multi_company
#: model:ir.actions.act_window,name:multi_company.action_inventory_form
msgid "Default Company per Object"
msgstr ""
#. module: multi_company
#: field:multi_company.default,expression:0
msgid "Expression"
msgstr "Ilmaus"
#. module: multi_company
#: model:product.template,name:multi_company.product_product_odoo1_product_template
msgid "Odoo Offer"
msgstr ""
#. module: multi_company
#: field:multi_company.default,sequence:0
msgid "Sequence"
msgstr "Jakso"
#. module: multi_company
#: constraint:product.category:0
msgid "Error ! You can not create recursive categories."
msgstr "Virhe! Et voi luoda rekursiivisia kategorioita."
#. module: multi_company
#: constraint:product.product:0
msgid "Error: Invalid ean code"
msgstr "Virhe: Virheellinen EAN-koodi"
#. module: multi_company
#: help:multi_company.default,expression:0
msgid "Expression, must be True to match"
msgstr ""
#. module: multi_company
#: model:ir.ui.menu,name:multi_company.menu_action_inventory_form
msgid "Default company per Object"
msgstr ""
#. module: multi_company
#: code:addons/multi_company/multi_company.py:0
#, python-format
msgid " (copy)"
msgstr " (kopio)"
#. module: multi_company
#: view:multi_company.default:0
msgid "Matching"
msgstr "Vastaavuus"
+1
View File
@@ -104,6 +104,7 @@
<field name="name"/>
<field name="type"/>
<field name="currency_id"/>
<field name="active" />
</tree>
</field>
</record>
+2 -2
View File
@@ -344,8 +344,8 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Packaging">
<field name="name"/>
<field name="type"/>
<field name="name" select="1" />
<field name="type" select="1" />
</form>
</field>
</record>
+8 -8
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 13:50+0000\n"
"Last-Translator: LucaSub <subluca@gmail.com>\n"
"PO-Revision-Date: 2010-03-16 16:02+0000\n"
"Last-Translator: yoruk <yoruk87@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: 2010-03-11 05:01+0000\n"
"X-Launchpad-Export-Date: 2010-03-18 04:35+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: report_document
@@ -40,7 +40,7 @@ msgstr ""
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_shame
#: view:report.document.wall:0
msgid "Wall of Shame"
msgstr ""
msgstr "Muro della vergogna"
#. module: report_document
#: model:ir.model,name:report_document.model_report_files_partner
@@ -52,7 +52,7 @@ msgstr ""
#: field:report.document.user,file_size:0
#: field:report.files.partner,file_size:0
msgid "File Size"
msgstr ""
msgstr "Dimensione file"
#. module: report_document
#: constraint:ir.actions.act_window:0
@@ -68,7 +68,7 @@ msgstr "Tutti i Mesi"
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_all_myfile
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_this_myfile
msgid "My files"
msgstr ""
msgstr "I Miei File"
#. module: report_document
#: view:report.document.user:0
@@ -78,7 +78,7 @@ msgstr ""
#. module: report_document
#: view:report.document.user:0
msgid "Files"
msgstr ""
msgstr "Files"
#. module: report_document
#: view:report.files.partner:0
@@ -157,7 +157,7 @@ msgstr ""
#: field:report.document.user,user_id:0
#: field:report.document.wall,user_id:0
msgid "Owner"
msgstr ""
msgstr "Propietario"
#. module: report_document
#: field:report.document.file,nbr:0
+2 -2
View File
@@ -62,13 +62,13 @@
default="1"
domain="[('state','&lt;&gt;','draft'),('state','&lt;&gt;','cancel')]"/>
<separator orientation="vertical"/>
<field name="product_id"/>
<field name="user_id" widget="selection">
<filter icon="terp-sale"
string="My Sales"
help="My Sales"
domain="[('user_id','=',uid)]"/>
</field>
<field name="partner_id"/>
<field name="product_id"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
<newline/>
+10 -9
View File
@@ -30,9 +30,9 @@
<field name="arch" type="xml">
<tree string="Sale Shop">
<field name="name"/>
<field name="warehouse_id"/>
<field name="pricelist_id"/>
<field name="project_id"/>
<field name="warehouse_id"/>
</tree>
</field>
</record>
@@ -80,6 +80,7 @@
<field name="name" string="Reference"/>
<field name="partner_id"/>
<field name="partner_shipping_id"/>
<field name="user_id" />
<field name="picked_rate" widget="progressbar"/>
<field name="invoiced_rate" widget="progressbar"/>
<field name="amount_untaxed" sum="Total Untaxed amount"/>
@@ -428,15 +429,15 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Uninvoiced Lines">
<filter icon="terp-purchase" string="Shipped"
domain="[('state','=','done')]"
separator="1" />
<filter icon="terp-purchase" string="Uninvoiced"
domain="[('invoiced','&lt;&gt;', 1),('state','&lt;&gt;','draft'),('state','&lt;&gt;','cancel')]" default="1"
separator="1" />
<separator orientation="vertical"/>
<field name="order_id" select="1"/>
<filter icon="terp-purchase" string="Shipped"
domain="[('state','=','done')]"
separator="1" />
<filter icon="terp-purchase" string="Uninvoiced"
domain="[('invoiced','&lt;&gt;', 1),('state','&lt;&gt;','draft'),('state','&lt;&gt;','cancel')]" default="1"
separator="1" />
<separator orientation="vertical"/>
<field name="product_id" select="1"/>
<field name="order_id" select="1"/>
<field name="order_partner_id" select="1"/>
<field name="state" select="1"/>
<newline />