[MERGE] trunk-dev-addons3
bzr revid: psi@tinyerp.co.in-20100506125554-zbf9s1zyvlxp8qut
This commit is contained in:
commit
48c53d3d0c
|
@ -515,6 +515,7 @@ class account_journal(osv.osv):
|
|||
'company_id': fields.many2one('res.company', 'Company', required=True,select=1),
|
||||
'invoice_sequence_id': fields.many2one('ir.sequence', 'Invoice Sequence', \
|
||||
help="The sequence used for invoice numbers in this journal."),
|
||||
'allow_date':fields.boolean('Check Date not in the Period', help= 'If set to True then do not accept the entry if the entry date is not into the period dates'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
|
|
@ -785,12 +785,35 @@ class account_move_line(osv.osv):
|
|||
self.pool.get('account.move').validate(cr, uid, [line.move_id.id], context=context)
|
||||
return result
|
||||
|
||||
def check_date(self, cr, uid, vals, context=None, check=True):
|
||||
if context is None:
|
||||
context = {}
|
||||
if 'date' in vals.keys():
|
||||
if 'journal_id' in vals and 'journal_id' not in context:
|
||||
journal_id = vals['journal_id']
|
||||
if 'period_id' in vals and 'period_id' not in context:
|
||||
period_id = vals['period_id']
|
||||
elif 'journal_id' not in context and 'move_id' in vals:
|
||||
m = self.pool.get('account.move').browse(cr, uid, vals['move_id'])
|
||||
journal_id = m.journal_id.id
|
||||
period_id = m.period_id.id
|
||||
else:
|
||||
journal_id = context['journal_id']
|
||||
period_id = context['period_id']
|
||||
journal=self.pool.get('account.journal').browse(cr,uid,[journal_id])[0]
|
||||
if journal.allow_date:
|
||||
period=self.pool.get('account.period').browse(cr,uid,[period_id])[0]
|
||||
if not time.strptime(vals['date'],'%Y-%m-%d')>=time.strptime(period.date_start,'%Y-%m-%d') and time.strptime(vals['date'],'%Y-%m-%d')<=time.strptime(period.date_stop,'%Y-%m-%d'):
|
||||
raise osv.except_osv(_('Error'),_('The date of your Ledger Posting is not in the defined period !'))
|
||||
else:
|
||||
return True
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True):
|
||||
if not context:
|
||||
context={}
|
||||
if vals.get('account_tax_id', False):
|
||||
raise osv.except_osv(_('Unable to change tax !'), _('You can not change the tax, you should remove and recreate lines !'))
|
||||
|
||||
self.check_date(cr, uid, vals, context, check)
|
||||
account_obj = self.pool.get('account.account')
|
||||
if ('account_id' in vals) and not account_obj.read(cr, uid, vals['account_id'], ['active'])['active']:
|
||||
raise osv.except_osv(_('Bad account!'), _('You can not use an inactive account!'))
|
||||
|
@ -844,10 +867,11 @@ class account_move_line(osv.osv):
|
|||
return True
|
||||
|
||||
def create(self, cr, uid, vals, context=None, check=True):
|
||||
if not context:
|
||||
context={}
|
||||
account_obj = self.pool.get('account.account')
|
||||
tax_obj=self.pool.get('account.tax')
|
||||
if context is None:
|
||||
context = {}
|
||||
self.check_date(cr, uid, vals, context, check)
|
||||
if ('account_id' in vals) and not account_obj.read(cr, uid, vals['account_id'], ['active'])['active']:
|
||||
raise osv.except_osv(_('Bad account!'), _('You can not use an inactive account!'))
|
||||
if 'journal_id' in vals and 'journal_id' not in context:
|
||||
|
|
|
@ -284,11 +284,11 @@
|
|||
<field name="default_debit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<field name="default_credit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<field name="user_id" groups="base.group_extended"/>
|
||||
<field name="allow_date" />
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="centralisation"/>
|
||||
<field name="group_invoice_lines"/>
|
||||
|
||||
<field name="update_posted"/>
|
||||
<field name="entry_posted"/>
|
||||
</page>
|
||||
|
|
|
@ -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-05-02 10:11+0000\n"
|
||||
"PO-Revision-Date: 2010-05-05 14:54+0000\n"
|
||||
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <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-05-05 03:48+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-05-06 04:04+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
@ -1596,7 +1596,7 @@ msgstr ""
|
|||
#: selection:account.tax,tax_group:0
|
||||
#: selection:account.tax.template,tax_group:0
|
||||
msgid "VAT"
|
||||
msgstr "NIP"
|
||||
msgstr "VAT"
|
||||
|
||||
#. module: account
|
||||
#: rml:account.analytic.account.journal:0
|
||||
|
|
|
@ -7,13 +7,13 @@ msgstr ""
|
|||
"Project-Id-Version: OpenERP Server 5.0.6\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-05-03 05:57+0000\n"
|
||||
"Last-Translator: KenSai <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-05-06 01:44+0000\n"
|
||||
"Last-Translator: digitalsatori <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-05-05 03:48+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-05-06 04:04+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account
|
||||
|
@ -40,7 +40,7 @@ msgstr "凭证录入"
|
|||
#. module: account
|
||||
#: model:ir.actions.todo,note:account.config_wizard_account_base_setup_form
|
||||
msgid "Specify The Message for the Overdue Payment Report."
|
||||
msgstr "设定这逾期应付款表单的消息"
|
||||
msgstr "设置过期支付的催款信息"
|
||||
|
||||
#. module: account
|
||||
#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0
|
||||
|
@ -115,7 +115,7 @@ msgstr "上级科目"
|
|||
#. module: account
|
||||
#: selection:account.move,type:0
|
||||
msgid "Journal Voucher"
|
||||
msgstr "原始凭证分类帐"
|
||||
msgstr "日记账凭证"
|
||||
|
||||
#. module: account
|
||||
#: field:account.invoice,residual:0
|
||||
|
|
|
@ -1,28 +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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Init Sales
|
||||
#----------------------------------------------------------
|
||||
|
||||
import account_date_check
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
@ -1,46 +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': 'Account Date check',
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/Accounting',
|
||||
'description': """
|
||||
* Adds a field on journals: "Allows date not in the period"
|
||||
* By default, this field is checked.
|
||||
|
||||
If this field is not checked, the system control that the date is in the
|
||||
period when you create an account entry. Otherwise, it generates an
|
||||
error message: "The date of your account move is not in the defined
|
||||
period !"
|
||||
""",
|
||||
'author': 'Tiny',
|
||||
'website': 'http://www.openerp.com',
|
||||
'depends': ['account'],
|
||||
'init_xml': [],
|
||||
'update_xml': ['account_date_check_view.xml'],
|
||||
'demo_xml': [],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
'certificate': '0066174843389',
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -1,82 +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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields
|
||||
from osv import osv
|
||||
import time
|
||||
import netsvc
|
||||
|
||||
import ir
|
||||
from mx import DateTime
|
||||
import pooler
|
||||
from tools import config
|
||||
from tools.translate import _
|
||||
|
||||
class account_journal(osv.osv):
|
||||
_inherit='account.journal'
|
||||
_name='account.journal'
|
||||
_columns = {
|
||||
'allow_date':fields.boolean('Allows date not in the period'),
|
||||
}
|
||||
_defaults = {
|
||||
'allow_date': lambda *a: 1,
|
||||
}
|
||||
account_journal()
|
||||
|
||||
class account_move_line(osv.osv):
|
||||
_inherit='account.move.line'
|
||||
_name='account.move.line'
|
||||
|
||||
def check_date(self, cr, uid, vals, context=None, check=True):
|
||||
if not context:
|
||||
context = {}
|
||||
if 'date' in vals.keys():
|
||||
if 'journal_id' in vals and 'journal_id' not in context:
|
||||
journal_id = vals['journal_id']
|
||||
if 'period_id' in vals and 'period_id' not in context:
|
||||
period_id = vals['period_id']
|
||||
elif 'journal_id' not in context and 'move_id' in vals:
|
||||
m = self.pool.get('account.move').browse(cr, uid, vals['move_id'])
|
||||
journal_id = m.journal_id.id
|
||||
period_id = m.period_id.id
|
||||
else:
|
||||
journal_id = context['journal_id']
|
||||
period_id = context['period_id']
|
||||
journal=self.pool.get('account.journal').browse(cr,uid,[journal_id])[0]
|
||||
if not journal.allow_date:
|
||||
period=self.pool.get('account.period').browse(cr,uid,[period_id])[0]
|
||||
if not time.strptime(vals['date'],'%Y-%m-%d')>=time.strptime(period.date_start,'%Y-%m-%d') and time.strptime(vals['date'],'%Y-%m-%d')<=time.strptime(period.date_stop,'%Y-%m-%d'):
|
||||
raise osv.except_osv(_('Error'),_('The date of your Ledger Posting is not in the defined period !'))
|
||||
else:
|
||||
return True
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None, check=True, update_check=True):
|
||||
flag=self.check_date(cr, uid, vals, context, check)
|
||||
result = super(account_move_line, self).write(cr, uid, ids, vals, context, check, update_check)
|
||||
return result
|
||||
def create(self, cr, uid, vals, context=None, check=True):
|
||||
flag=self.check_date(cr, uid, vals, context, check)
|
||||
result = super(account_move_line, self).create(cr, uid, vals, context, check)
|
||||
return result
|
||||
account_move_line()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record model="ir.ui.view" id="view_account_journal_form_inherit2">
|
||||
<field name="name">account.journal.form.inherit2</field>
|
||||
<field name="model">account.journal</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="account.view_account_journal_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="user_id" position="after">
|
||||
<field name="allow_date" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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-02-03 06:24+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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 17:36+0000\n"
|
||||
"Last-Translator: lem0na <nickyk@gmx.net>\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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Невалиден XML за преглед на архитектурата"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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-21 03:57+0000\n"
|
||||
"Last-Translator: Miro Glavić <glavicmiro@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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Neodgovarajući XML za arhitekturu prikaza!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Dozvoli datum koji nije u periodu"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Provjera Datuma Računa"
|
|
@ -1,33 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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-29 06:30+0000\n"
|
||||
"Last-Translator: Jordi Esteve - http://www.zikzakmedia.com "
|
||||
"<jesteve@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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML invàlid per a la definició de la vista!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Permetre dates fora del període"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Comprovació dates en comptabilitat"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 09:32+0000\n"
|
||||
"Last-Translator: Kuvaly [LCT] <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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Invalidní XML pro zobrazení architektury!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Povolit data která nejsou v periodě"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Kontrola data účtu"
|
|
@ -1,33 +0,0 @@
|
|||
# Danish 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 09:32+0000\n"
|
||||
"Last-Translator: SmartWi <kurt@smartwi.net>\n"
|
||||
"Language-Team: Danish <da@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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Ugyldig XML for View Architecture!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Datoen er uden doe preioden"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Konto data check"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 09:32+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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Fehlerhafter xml Code für diese Ansicht!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Erlaubt Datum außerhalb der Periode"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Konto Datums Check"
|
|
@ -1,41 +0,0 @@
|
|||
# Greek 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 12:02+0000\n"
|
||||
"Last-Translator: Makis Nicolaou <mark.nicolaou@gmail.com>\n"
|
||||
"Language-Team: Greek <el@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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Άκυρο XML για την αρχιτεκτονική όψης!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Allows date not in the period"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Account Date check"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "The date of your account move is not in the defined period !"
|
||||
#~ msgstr "Η ημερομηνία κίνησης λογαριασμού δεν είναι στην καθορισμένη περίοδο!"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Error"
|
||||
#~ msgstr "Σφάλμα"
|
|
@ -1,33 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 17:37+0000\n"
|
||||
"Last-Translator: Jordi Esteve - http://www.zikzakmedia.com "
|
||||
"<jesteve@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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "¡XML inválido para la definición de la vista!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Permitir fechas fuera del periodo"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Comprobación fechas en contabilidad"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 13:58+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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML inválido para la definición de la vista!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Permitir fechas fuera del periodo"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Control de fecha contable"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 16:21+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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Vigane XML vaate arhitektuurile!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Lubab perioodivälist kuupäeva"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Konto kuupäeva kontroll"
|
|
@ -1,41 +0,0 @@
|
|||
# Finnish 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 14:54+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Virheellinen XML näkymäarkkitehtuurille!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Sallii päiväyksen joka ei ole jaksossa"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Tilin päiväys tarkistus"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "The date of your account move is not in the defined period !"
|
||||
#~ msgstr "Päiväystä tilinsiirrolle ei ole määritellyssä ajanjaksossa"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Error"
|
||||
#~ msgstr "Virhe"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 16:21+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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML non valide pour l'architecture de la vue"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Permet une date hors période"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Vérification de la Date de Compte"
|
|
@ -1,42 +0,0 @@
|
|||
# translation of account-date-check-es.po to Galego
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
# Frco. Javier Rial Rodríguez <fjrial@cesga.es>, 2009.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: account-date-check-es\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 16:28+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "¡XML non válido para a definición da vista!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Permitir datas fóra do periodo"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Comprobación datas en contabilidade"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Error"
|
||||
#~ msgstr "Erro"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "The date of your account move is not in the defined period !"
|
||||
#~ msgstr "¡A data do asento contábel non está no periodo indicado!"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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-12-22 12:13+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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Neispravan XML za arhitekturu prikaza!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Dozvoljeno je da datum nije u periodu"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Provjera datuma računa"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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-02-03 06:24+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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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: 2008-10-16 03:54+0000\n"
|
||||
"Last-Translator: opix <inur.opix@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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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: 2008-11-13 15:42+0000\n"
|
||||
"Last-Translator: Marius Marolla <mariusmarolla@areablu.net>\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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML non valido per Visualizzazione Architettura!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,41 +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 16:49+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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "유효하지 않은 뷰 아키텍처를 위한 XML !"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "기간을 벗어난 날짜를 허용"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "계정 날짜 체크"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "The date of your account move is not in the defined period !"
|
||||
#~ msgstr "귀하의 계정 이동 날자가 정의된 기간을 벗어 납니다 !"
|
||||
|
||||
#, python-format
|
||||
#~ msgid "Error"
|
||||
#~ msgstr "에러"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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-01-20 14:02+0000\n"
|
||||
"Last-Translator: Paulius Sladkevičius <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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Netinkamas XML peržiūros struktūrai!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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-12-10 10:28+0000\n"
|
||||
"Last-Translator: Jan Verlaan (Veritos) <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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Ongeldige XML, kan overzicht niet weergeven!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Datum niet in de periode"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Datum controle op boeking"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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-24 15:40+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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,33 +0,0 @@
|
|||
# Occitan (post 1500) 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-12 13:29+0000\n"
|
||||
"Last-Translator: Cédric VALMARY (Per Tot en òc) <cvalmary@yahoo.fr>\n"
|
||||
"Language-Team: Occitan (post 1500) <oc@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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML invalid per l'arquitectura de la vista"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 09:32+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Pozwala na datę spoza okresu"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Kontrola daty konta"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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-29 00:16+0000\n"
|
||||
"Last-Translator: Paulino <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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML inválido para a arquitectura de vista"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Permitir data fora do período"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Verificar data da conta"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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: 2010-03-24 01:05+0000\n"
|
||||
"Last-Translator: Pedro_Maschio <pedro.bicudo@tgtconsult.com.br>\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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML inválido para Arquitetura da View"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Permite datas fora do período"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Verificação de Data de Conta"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 09:32+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "XML invalid pentru arhitectura machetei de afișare !"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Permite date ce nu sunt în perioadă"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Verificare dată cont"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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: 2008-11-03 16:11+0000\n"
|
||||
"Last-Translator: Sergei Kostigoff <sergei.kostigoff@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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Неправильный XML для просмотра архитектуры!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,33 +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:03+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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Neplatná XML pre zobrazenie architektúry!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 09:32+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Neveljaven XML za arhitekturo pogleda."
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Dovoli datum, ki ni v obdobju"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "Kontrola datuma konta"
|
|
@ -1,64 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
||||
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 09:32+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Felaktig XML för Vyarkitektur!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Tillåtet datum ej inom period."
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "konto datum kontroll"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
msgid ""
|
||||
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-02-03 06:24+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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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 09:32+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Görüntüleme mimarisi için Geçersiz XML"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "Girilen tarih periyod içinde değil"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "hesap tarihi kontrolü"
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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: 2008-11-17 21:09+0000\n"
|
||||
"Last-Translator: Yuriy Tkachenko <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-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Неправильний XML для Архітектури Вигляду!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -1,64 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
||||
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.6\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-03-20 07:01+0000\n"
|
||||
"Last-Translator: Black Jack <onetimespeed@hotmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "无效的视图结构XML文件!"
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr "允许日期不在这会计期间"
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr "科目日期检查"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ " * Adds a field on journals: \"Allows date not in the period\"\n"
|
||||
#~ " * By default, this field is checked.\n"
|
||||
#~ "\n"
|
||||
#~ "If this field is not checked, the system control that the date is in the\n"
|
||||
#~ "period when you create an account entry. Otherwise, it generates an\n"
|
||||
#~ "error message: \"The date of your account move is not in the defined\n"
|
||||
#~ "period !\"\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ " * 在分类帐增加一个字段:允许日期不在会计期间\n"
|
||||
#~ " * 默认下这字段是已检查\n"
|
||||
#~ "\n"
|
||||
#~ " 如果这字段是不检查,系统日期是在这会计期间\n"
|
||||
#~ "你能创建凭证.\n"
|
||||
#~ "否则,它会产生一个错误信息:\n"
|
||||
#~ "你不能在这会计期间凭证\n"
|
||||
#~ " "
|
|
@ -1,32 +0,0 @@
|
|||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_date_check
|
||||
#
|
||||
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-01-30 12:43+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: 2010-04-17 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_date_check
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: field:account.journal,allow_date:0
|
||||
msgid "Allows date not in the period"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_date_check
|
||||
#: model:ir.module.module,shortdesc:account_date_check.module_meta_information
|
||||
msgid "Account Date check"
|
||||
msgstr ""
|
|
@ -39,6 +39,7 @@
|
|||
'security/account_payment_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'wizard/account_payment_pay_view.xml',
|
||||
'wizard/account_payment_populate_statement_view.xml',
|
||||
'wizard/account_payment_create_order_view.xml',
|
||||
'payment_view.xml',
|
||||
'payment_workflow.xml',
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
<wizard id="wizard_populate_statement" menu="False" model="account.bank.statement" name="populate_statement" string="Populate Statement with Payment lines"/>
|
||||
<!-- View used in the wizard -->
|
||||
<record id="view_move_line_form" model="ir.ui.view">
|
||||
<field name="name">account.move.line.form.inherit</field>
|
||||
|
@ -300,7 +299,7 @@
|
|||
<field name="inherit_id" ref="account.view_bank_statement_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<group colspan="2" col="3" position="inside">
|
||||
<button name="%(wizard_populate_statement)d" string="Import payment lines" type="action" icon="gtk-open"/>
|
||||
<button name="%(action_account_populate_statement_confirm)d" string="Import payment lines" type="action" icon="gtk-open"/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -18,10 +18,8 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import account_payment_order
|
||||
import account_payment_populate_statement
|
||||
import account_payment_pay
|
||||
import wizard_populate_statement
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,110 @@
|
|||
# -*- 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 lxml import etree
|
||||
|
||||
from osv import osv, fields
|
||||
|
||||
class account_payment_populate_statement(osv.osv_memory):
|
||||
_name = "account.payment.populate.statement"
|
||||
_description = "Account Payment Populate Statement"
|
||||
_columns = {
|
||||
'lines': fields.many2many('payment.line', 'payment_line_rel_', 'payment_id', 'line_id', 'Payment Lines')
|
||||
}
|
||||
|
||||
def search_entries(self, cr, uid, ids, context=None):
|
||||
line_obj = self.pool.get('payment.line')
|
||||
statement_obj = self.pool.get('account.bank.statement')
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
|
||||
data = self.read(cr, uid, ids, [], context=context)[0]
|
||||
statement = statement_obj.browse(cr, uid, context['active_id'], context=context)
|
||||
line_ids = line_obj.search(cr, uid, [
|
||||
('move_line_id.reconcile_id', '=', False),
|
||||
('order_id.mode.journal.id', '=', statement.journal_id.id)])
|
||||
line_ids.extend(line_obj.search(cr, uid, [
|
||||
('move_line_id.reconcile_id', '=', False),
|
||||
('order_id.mode', '=', False)]))
|
||||
|
||||
context.update({'line_ids': line_ids})
|
||||
model_data_ids = mod_obj.search(cr, uid,[('model','=','ir.ui.view'),('name','=','account_payment_populate_statement_view')], context=context)
|
||||
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
return {
|
||||
'name': ('Entrie Lines'),
|
||||
'context': context,
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'account.payment.populate.statement',
|
||||
'views': [(resource_id,'form')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
}
|
||||
|
||||
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
||||
res = super(account_payment_populate_statement, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=False)
|
||||
if context and 'line_ids' in context:
|
||||
view_obj = etree.XML(res['arch'])
|
||||
child = view_obj.getchildren()[0]
|
||||
domain = '[("id", "in", '+ str(context['line_ids'])+')]'
|
||||
field = etree.Element('field', attrib={'domain': domain, 'name':'lines', 'colspan':'4', 'height':'300', 'width':'800', 'nolabel':"1"})
|
||||
child.addprevious(field)
|
||||
res['arch'] = etree.tostring(view_obj)
|
||||
return res
|
||||
|
||||
def populate_statement(self, cr, uid, ids, context=None):
|
||||
line_obj = self.pool.get('payment.line')
|
||||
statement_obj = self.pool.get('account.bank.statement')
|
||||
statement_line_obj = self.pool.get('account.bank.statement.line')
|
||||
currency_obj = self.pool.get('res.currency')
|
||||
statement_reconcile_obj = self.pool.get('account.bank.statement.reconcile')
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.read(cr, uid, ids, [])[0]
|
||||
line_ids = data['lines']
|
||||
if not line_ids:
|
||||
return {}
|
||||
|
||||
statement = statement_obj.browse(cr, uid, context['active_id'], context=context)
|
||||
|
||||
for line in line_obj.browse(cr, uid, line_ids, context=context):
|
||||
ctx = context.copy()
|
||||
ctx['date'] = line.ml_maturity_date # was value_date earlier,but this field exists no more now
|
||||
amount = currency_obj.compute(cr, uid, line.currency.id,
|
||||
statement.currency.id, line.amount_currency, context=ctx)
|
||||
|
||||
if line.move_line_id:
|
||||
reconcile_id = statement_reconcile_obj.create(cr, uid, {
|
||||
'line_ids': [(6, 0, [line.move_line_id.id])]
|
||||
}, context=context)
|
||||
statement_line_obj.create(cr, uid, {
|
||||
'name': line.order_id.reference or '?',
|
||||
'amount': - amount,
|
||||
'type': 'supplier',
|
||||
'partner_id': line.partner_id.id,
|
||||
'account_id': line.move_line_id.account_id.id,
|
||||
'statement_id': statement.id,
|
||||
'ref': line.communication,
|
||||
'reconcile_id': reconcile_id,
|
||||
}, context=context)
|
||||
return {'type' : 'ir.actions.act_window_close'}
|
||||
|
||||
account_payment_populate_statement()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,59 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="account_populate_statement_confirm_view" model="ir.ui.view">
|
||||
<field name="name">Payment Populate statement</field>
|
||||
<field name="model">account.payment.populate.statement</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Populate Statement:">
|
||||
<label string="Are your sure to import Payment Lines!"/>
|
||||
<group colspan="4" col="6">
|
||||
<separator colspan="6"/>
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="search_entries" string="Yes" type="object" icon="gtk-ok"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_account_populate_statement_confirm" model="ir.actions.act_window">
|
||||
<field name="name">Payment Populate statement</field>
|
||||
<field name="res_model">account.payment.populate.statement</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="account_populate_statement_confirm_view"/>
|
||||
<field name="context">{'record_id':active_id}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<record id="account_payment_populate_statement_view" model="ir.ui.view">
|
||||
<field name="name">Payment Populate statement</field>
|
||||
<field name="model">account.payment.populate.statement</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Populate Statement:">
|
||||
<group colspan="4" col="6">
|
||||
<separator colspan="6"/>
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="populate_statement" string="ADD" type="object" icon="gtk-ok"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_account_payment_populate_statement" model="ir.actions.act_window">
|
||||
<field name="name">Payment Populate statement</field>
|
||||
<field name="res_model">account.payment.populate.statement</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="account_payment_populate_statement_view"/>
|
||||
<field name="context">{'record_id':active_id}</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -1,121 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import pooler
|
||||
from tools.misc import UpdateableStr
|
||||
|
||||
FORM = UpdateableStr()
|
||||
|
||||
FIELDS = {
|
||||
'lines': {'string': 'Payment Lines', 'type': 'many2many',
|
||||
'relation': 'payment.line'},
|
||||
}
|
||||
|
||||
def _search_entries(obj, cursor, user, data, context):
|
||||
pool = pooler.get_pool(cursor.dbname)
|
||||
line_obj = pool.get('payment.line')
|
||||
statement_obj = pool.get('account.bank.statement')
|
||||
|
||||
statement = statement_obj.browse(cursor, user, data['id'], context=context)
|
||||
|
||||
line_ids = line_obj.search(cursor, user, [
|
||||
('move_line_id.reconcile_id', '=', False),
|
||||
('order_id.mode.journal.id', '=', statement.journal_id.id)])
|
||||
line_ids.extend(line_obj.search(cursor, user, [
|
||||
('move_line_id.reconcile_id', '=', False),
|
||||
('order_id.mode', '=', False)]))
|
||||
|
||||
FORM.string = '''<?xml version="1.0"?>
|
||||
<form string="Populate Statement:">
|
||||
<field name="lines" colspan="4" height="300" width="800" nolabel="1"
|
||||
domain="[('id', 'in', [%s])]"/>
|
||||
</form>''' % (','.join([str(x) for x in line_ids]))
|
||||
return {}
|
||||
|
||||
def _populate_statement(obj, cursor, user, data, context):
|
||||
line_ids = data['form']['lines'][0][2]
|
||||
if not line_ids:
|
||||
return {}
|
||||
|
||||
pool = pooler.get_pool(cursor.dbname)
|
||||
line_obj = pool.get('payment.line')
|
||||
statement_obj = pool.get('account.bank.statement')
|
||||
statement_line_obj = pool.get('account.bank.statement.line')
|
||||
currency_obj = pool.get('res.currency')
|
||||
statement_reconcile_obj = pool.get('account.bank.statement.reconcile')
|
||||
|
||||
statement = statement_obj.browse(cursor, user, data['id'], context=context)
|
||||
|
||||
for line in line_obj.browse(cursor, user, line_ids, context=context):
|
||||
ctx = context.copy()
|
||||
ctx['date'] = line.ml_maturity_date # was value_date earlier,but this field exists no more now
|
||||
amount = currency_obj.compute(cursor, user, line.currency.id,
|
||||
statement.currency.id, line.amount_currency, context=ctx)
|
||||
|
||||
if line.move_line_id:
|
||||
reconcile_id = statement_reconcile_obj.create(cursor, user, {
|
||||
'line_ids': [(6, 0, [line.move_line_id.id])]
|
||||
}, context=context)
|
||||
statement_line_obj.create(cursor, user, {
|
||||
'name': line.order_id.reference or '?',
|
||||
'amount': - amount,
|
||||
'type': 'supplier',
|
||||
'partner_id': line.partner_id.id,
|
||||
'account_id': line.move_line_id.account_id.id,
|
||||
'statement_id': statement.id,
|
||||
'ref': line.communication,
|
||||
'reconcile_id': reconcile_id,
|
||||
}, context=context)
|
||||
return {}
|
||||
|
||||
|
||||
class PopulateStatement(wizard.interface):
|
||||
"""
|
||||
Populate the current statement with selected payement lines
|
||||
"""
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [_search_entries],
|
||||
'result': {
|
||||
'type': 'form',
|
||||
'arch': FORM,
|
||||
'fields': FIELDS,
|
||||
'state': [
|
||||
('end', '_Cancel'),
|
||||
('add', '_Add', '', True)
|
||||
]
|
||||
},
|
||||
},
|
||||
'add': {
|
||||
'actions': [],
|
||||
'result': {
|
||||
'type': 'action',
|
||||
'action': _populate_statement,
|
||||
'state': 'end'
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
PopulateStatement('populate_statement')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
@ -38,6 +38,7 @@
|
|||
'account_report.xml',
|
||||
'account_wizard.xml',
|
||||
'wizard/account_report_print_indicators_view.xml',
|
||||
'wizard/account_report_print_indicators_with_pdf_view.xml',
|
||||
],
|
||||
'demo_xml': [],
|
||||
'installable': True,
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<!-- <wizard id="wizard_print_indicators" name="print.indicators" string="Print Indicators"/>-->
|
||||
<!-- <menuitem action="wizard_print_indicators" type="wizard" parent="account_report.menu_action_account_report_tree_view" id="menu_wizard_print_indicators"/>-->
|
||||
|
||||
<wizard id="wizard_indicators_with_pdf" model="account.report.report" name="print.indicators.pdf" string="Indicators in PDF" keyword="client_action_multi" />
|
||||
<!-- <wizard id="wizard_indicators_with_pdf" model="account.report.report" name="print.indicators.pdf" string="Indicators in PDF" keyword="client_action_multi" />-->
|
||||
<!--<menuitem action="wizard_indicators_with_pdf" type="wizard" parent="account_report.menu_action_account_report_tree_view" id="menu_wizard_print_indicators_with_pdf"/>-->
|
||||
</data>
|
||||
</openerp>
|
|
@ -20,6 +20,6 @@
|
|||
##############################################################################
|
||||
|
||||
import account_report_print_indicators
|
||||
import wizard_print_indicators_with_pdf
|
||||
import account_report_print_indicators_with_pdf
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import time
|
||||
from mx.DateTime import *
|
||||
import os
|
||||
import base64
|
||||
import StringIO
|
||||
|
||||
from osv import fields, osv
|
||||
import tools
|
||||
import pooler
|
||||
from report.render import render
|
||||
from report.interface import report_int
|
||||
|
||||
class account_report_print_indicators_with_pdf(osv.osv_memory):
|
||||
_name = "account.report.print.indicators.with.pdf"
|
||||
_description = "Print Indicators"
|
||||
_columns = {
|
||||
'file': fields.binary('Select a PDF File', filters='*.pdf', required=True),
|
||||
}
|
||||
|
||||
def check_report(self, cr, uid, ids, context=None):
|
||||
datas = {}
|
||||
if context is None:
|
||||
context = {}
|
||||
data = self.read(cr, uid, ids)[0]
|
||||
datas = {
|
||||
'ids': context.get('active_ids',[]),
|
||||
'model': 'account.report.report',
|
||||
'form': data
|
||||
}
|
||||
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'print.indicator.pdf',
|
||||
'datas': datas,
|
||||
}
|
||||
|
||||
|
||||
account_report_print_indicators_with_pdf()
|
||||
|
||||
class external_pdf(render):
|
||||
def __init__(self, pdf):
|
||||
render.__init__(self)
|
||||
self.pdf = pdf
|
||||
self.output_type='pdf'
|
||||
def _render(self):
|
||||
return self.pdf
|
||||
|
||||
class report_custom(report_int):
|
||||
def create(self, cr, uid, ids, data, context={}):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
obj_indicator = pool.get('account.report.report')
|
||||
code_ids = obj_indicator.browse(cr,uid,context['active_id'])
|
||||
|
||||
self.list={}
|
||||
|
||||
def find_child(obj):
|
||||
self.list[str(obj.code)]=str(obj.amount)
|
||||
if obj.child_ids:
|
||||
for child in obj.child_ids:
|
||||
find_child(child)
|
||||
return True
|
||||
|
||||
find_child(code_ids)
|
||||
|
||||
file_contents=base64.decodestring(data['form']['file'])
|
||||
fp = StringIO.StringIO(file_contents)
|
||||
|
||||
infile = open(tools.config['addons_path']+"/test.pdf", 'wb')
|
||||
infile.write(fp.read())
|
||||
infile.close()
|
||||
|
||||
obj_user=pool.get('res.users').browse(cr,uid,uid)
|
||||
self.list['printing_user']=str(obj_user.name)
|
||||
self.list['company_name']=(obj_user.company_id.name)
|
||||
self.list['company_country']=obj_user.company_id.partner_id.country
|
||||
self.list['company_vat']=obj_user.company_id.partner_id.vat
|
||||
self.list['printing_time']=time.strftime('%H:%M:%S')
|
||||
self.list['printing_date']=time.strftime('%D')
|
||||
|
||||
tools.pdf_utils.fill_pdf(tools.config['addons_path']+"/test.pdf",'/tmp/output.pdf',self.list)
|
||||
self.obj = external_pdf(file('/tmp/output.pdf').read())
|
||||
self.obj.render()
|
||||
return (self.obj.pdf, 'pdf')
|
||||
|
||||
report_custom('report.print.indicator.pdf')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,45 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="account_report_print_indicators_with_pdf_view" model="ir.ui.view">
|
||||
<field name="name">account.report.print.indicators.with.pdf.form</field>
|
||||
<field name="model">account.report.print.indicators.with.pdf</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Print Indicators with PDF">
|
||||
<label string="Select the PDF file on which Indicators will be printed."/>
|
||||
<newline/>
|
||||
<field name="file" colspan="4"/>
|
||||
<separator colspan="4" string=""/>
|
||||
<group colspan="4" col="6">
|
||||
<label string ="" colspan="2"/>
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="check_report" string="Print" type="object" icon="gtk-print" default_focus="1"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_account_report_print_indicators_with_pdf" model="ir.actions.act_window">
|
||||
<field name="name">Indicators in PDF</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">account.report.print.indicators.with.pdf</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="account_report_print_indicators_with_pdf_view"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.values" id="account_report_print_indicators_with_pdf_values">
|
||||
<field name="model_id" ref="account_report.model_account_report_report" />
|
||||
<field name="object" eval="1" />
|
||||
<field name="name">Indicators in PDF</field>
|
||||
<field name="key2">client_print_multi</field>
|
||||
<field name="value" eval="'ir.actions.act_window,' + str(ref('action_account_report_print_indicators_with_pdf'))" />
|
||||
<field name="key">action</field>
|
||||
<field name="model">account.report.report</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -1,109 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import pooler
|
||||
import time
|
||||
import datetime
|
||||
import sys
|
||||
from mx.DateTime import *
|
||||
import tools
|
||||
from report.render import render
|
||||
from report.interface import report_int
|
||||
import os
|
||||
import base64
|
||||
import StringIO
|
||||
|
||||
form = '''<?xml version="1.0"?>
|
||||
<form string="Print Indicators with PDF">
|
||||
<label string="Select the PDF file on which Indicators will be printed."/>
|
||||
<newline/>
|
||||
<field name="file" colspan="4"/>
|
||||
</form>'''
|
||||
|
||||
fields = {
|
||||
'file': {'string':'Select a PDF File', 'type':'binary','required':True,'filters':'*.pdf'},
|
||||
}
|
||||
|
||||
|
||||
class external_pdf(render):
|
||||
def __init__(self, pdf):
|
||||
render.__init__(self)
|
||||
self.pdf = pdf
|
||||
self.output_type='pdf'
|
||||
def _render(self):
|
||||
return self.pdf
|
||||
|
||||
|
||||
class report_custom(report_int):
|
||||
def create(self, cr, uid, ids, data, context={}):
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
obj_indicator = pool.get('account.report.report')
|
||||
code_ids = obj_indicator.browse(cr,uid,data['id'])
|
||||
|
||||
self.list={}
|
||||
|
||||
def find_child(obj):
|
||||
self.list[obj.code]=str(obj.amount)
|
||||
if obj.child_ids:
|
||||
for child in obj.child_ids:
|
||||
find_child(child)
|
||||
return True
|
||||
|
||||
find_child(code_ids)
|
||||
|
||||
file_contents=base64.decodestring(data['form']['file'])
|
||||
fp = StringIO.StringIO(file_contents)
|
||||
|
||||
infile = open(tools.config['addons_path']+"/test.pdf", 'wb')
|
||||
infile.write(fp.read())
|
||||
infile.close()
|
||||
|
||||
obj_user=pool.get('res.users').browse(cr,uid,uid)
|
||||
self.list['printing_user']=obj_user.name
|
||||
self.list['company_name']=obj_user.company_id.name
|
||||
self.list['company_country']=obj_user.company_id.partner_id.country
|
||||
self.list['company_vat']=obj_user.company_id.partner_id.vat
|
||||
self.list['printing_time']=time.strftime('%H:%M:%S')
|
||||
self.list['printing_date']=time.strftime('%D')
|
||||
|
||||
tools.pdf_utils.fill_pdf(tools.config['addons_path']+"/test.pdf",'/tmp/output.pdf',self.list)
|
||||
self.obj = external_pdf(file('/tmp/output.pdf').read())
|
||||
self.obj.render()
|
||||
return (self.obj.pdf, 'pdf')
|
||||
|
||||
report_custom('report.print.indicator.pdf')
|
||||
|
||||
class wizard_print_indicators_with_pdf(wizard.interface):
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [],
|
||||
'result': {'type': 'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel'),('print','Print')]}
|
||||
},
|
||||
'print': {
|
||||
'actions':[],
|
||||
'result' :{'type':'print','report':'print.indicator.pdf', 'state':'end'}
|
||||
}
|
||||
}
|
||||
wizard_print_indicators_with_pdf('print.indicators.pdf')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,31 @@
|
|||
# Estonian 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-05-30 15:14+0000\n"
|
||||
"PO-Revision-Date: 2010-05-05 21:44+0000\n"
|
||||
"Last-Translator: lyyser <logard.1961@gmail.com>\n"
|
||||
"Language-Team: Estonian <et@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-05-06 04:04+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: document_webdav_old
|
||||
#: model:ir.module.module,description:document_webdav_old.module_meta_information
|
||||
msgid ""
|
||||
"This is a complete document management system:\n"
|
||||
"\t* WebDav Interface\n"
|
||||
"\t* User Authentification\n"
|
||||
"\t* Document Indexation\n"
|
||||
msgstr ""
|
||||
"See on terviklik juhtimissüsteemi dokument:\n"
|
||||
"\t* WebDav liides\n"
|
||||
"\t* Kasutaja audentimise\n"
|
||||
"\t* Dokumendi indekseerimine\n"
|
|
@ -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-01-28 20:11+0000\n"
|
||||
"Last-Translator: Ahti Hinnov <sipelgas@gmail.com>\n"
|
||||
"PO-Revision-Date: 2010-05-05 21:41+0000\n"
|
||||
"Last-Translator: lyyser <logard.1961@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-04-17 03:55+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-05-06 04:03+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: google_map
|
||||
|
@ -39,6 +39,9 @@ msgid ""
|
|||
"so that we can directly open google map from the\n"
|
||||
"url widget."
|
||||
msgstr ""
|
||||
"See moodul lisab google kaardi välja partneri\n"
|
||||
"aadressile nii, et me saame otse avada google\n"
|
||||
"kaardi url vidinast."
|
||||
|
||||
#. module: google_map
|
||||
#: view:res.partner:0
|
||||
|
|
|
@ -0,0 +1,278 @@
|
|||
# Estonian 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-25 12:18+0000\n"
|
||||
"PO-Revision-Date: 2010-05-05 21:37+0000\n"
|
||||
"Last-Translator: lyyser <logard.1961@gmail.com>\n"
|
||||
"Language-Team: Estonian <et@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-05-06 04:04+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.type:0
|
||||
#: field:hr_evaluation.type,info:0
|
||||
msgid "Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
msgid "Schedule next evaluation"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
#: field:hr_evaluation.evaluation,info_bad:0
|
||||
msgid "Bad Points"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.actions.act_window,name:hr_evaluation.open_view_employee_evaluation_next_my_list
|
||||
msgid "My Next Evaluation"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.type,value_ids:0
|
||||
msgid "Values"
|
||||
msgstr "Väärtused"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
#: field:hr_evaluation.evaluation,info_good:0
|
||||
msgid "Good Points"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.evaluation,state:0
|
||||
msgid "State"
|
||||
msgstr "Olek"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.evaluation,score:0
|
||||
#: field:hr_evaluation.quote,score:0
|
||||
#: field:hr_evaluation.type,score:0
|
||||
#: field:hr_evaluation.type.value,score:0
|
||||
msgid "Score"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: selection:hr_evaluation.evaluation,state:0
|
||||
msgid "Draft"
|
||||
msgstr "Mustand"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
msgid "Informal Data"
|
||||
msgstr "Mitteametlikud andmed"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Vigane mudeli nimi toimingu definitsioonis."
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.evaluation,employee_id:0
|
||||
msgid "Employee"
|
||||
msgstr "Töötaja"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
#: field:hr_evaluation.evaluation,info_improve:0
|
||||
msgid "To Improve"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.quote,evaluation_id:0
|
||||
msgid "Evaluation"
|
||||
msgstr "Hinnang"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.type.value,type_id:0
|
||||
msgid "Evaluation Type"
|
||||
msgstr "Hinnangu tüüp"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
msgid "Status"
|
||||
msgstr "Olek"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.type:0
|
||||
msgid "Apply to categories"
|
||||
msgstr "Rakenda ktegooriatele"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.module.module,description:hr_evaluation.module_meta_information
|
||||
msgid "Ability to create employees evaluation."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.quote,name:0
|
||||
msgid "Quote"
|
||||
msgstr "Tsitaat"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.type,category_ids:0
|
||||
msgid "Appliable Role"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.evaluation,user_id:0
|
||||
msgid "Evaluation User"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.type:0
|
||||
msgid "Choices Results"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.evaluation,date:0
|
||||
msgid "Date"
|
||||
msgstr "Kuupäev"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr
|
||||
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_evaluation_form
|
||||
msgid "Evaluations"
|
||||
msgstr "Hinnangud"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.ui.menu,name:hr_evaluation.menu_eval_config
|
||||
msgid "Configuration"
|
||||
msgstr "Seadistamine"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_evaluation_next_list
|
||||
msgid "Next Evaluations"
|
||||
msgstr "Järgmine hindamine"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Vigane XML vaate arhitektuurile!"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_evaluation_type_form
|
||||
msgid "Evaluation Criterions"
|
||||
msgstr "Hindamise kriteeriumid"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_my_old_evaluation_list
|
||||
msgid "My Preceeding Evaluations"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.ui.menu,name:hr_evaluation.menu_resp_hr
|
||||
msgid "HR Responsible"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.quote,value_id:0
|
||||
#: field:hr_evaluation.type.value,name:0
|
||||
msgid "Value"
|
||||
msgstr "Väärtus"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.evaluation,name:0
|
||||
msgid "Summary"
|
||||
msgstr "Summaarne"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.type,active:0
|
||||
msgid "Active"
|
||||
msgstr "Aktiivne"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.type:0
|
||||
msgid "Notes"
|
||||
msgstr "Märkused"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_evaluation
|
||||
msgid "Employee Evaluation"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_type
|
||||
msgid "Employee Evaluation Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
msgid "Quotations"
|
||||
msgstr "Tsitaadid"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.actions.act_window,name:hr_evaluation.open_view_employee_evaluation_next_list
|
||||
msgid "Next Employee Evaluation"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.quote,type_id:0
|
||||
msgid "Type"
|
||||
msgstr "Tüüp"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.type:0
|
||||
#: field:hr_evaluation.type,name:0
|
||||
msgid "Evaluation Criterion"
|
||||
msgstr "Hindamiskriteerium"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_evaluation_next_my_list
|
||||
msgid "My Next Evaluations"
|
||||
msgstr "Minu järgmine hindamine"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.quote:0
|
||||
msgid "Evalution Quote"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.module.module,shortdesc:hr_evaluation.module_meta_information
|
||||
msgid "Human Resources Evaluation"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: field:hr_evaluation.evaluation,quote_ids:0
|
||||
msgid "Quotes"
|
||||
msgstr "Tsitaadid"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
#: selection:hr_evaluation.evaluation,state:0
|
||||
msgid "Done"
|
||||
msgstr "Valmis"
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_quote
|
||||
msgid "Employee Evaluation Quote"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: view:hr_evaluation.evaluation:0
|
||||
#: field:hr_evaluation.evaluation,info_employee:0
|
||||
msgid "Employee Response"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_evaluation
|
||||
#: model:ir.model,name:hr_evaluation.model_hr_evaluation_type_value
|
||||
msgid "Evaluation Type Value"
|
||||
msgstr ""
|
|
@ -51,7 +51,9 @@
|
|||
'process/hr_expense_process.xml',
|
||||
'report/hr_expense_report_view.xml'
|
||||
],
|
||||
'demo_xml': ['hr.expense.expense.csv'],
|
||||
'demo_xml': ['hr_expense_demo.xml',
|
||||
# 'hr.expense.expense.csv'
|
||||
],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
'certificate': '0062479841789',
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record id="hr_expense_expense_septemberexpenses0" model="hr.expense.expense">
|
||||
<field name="currency_id" ref="base.EUR"/>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="name">September Expenses</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="date">2010-05-03</field>
|
||||
<field name="state">draft</field>
|
||||
</record>
|
||||
<record id="hr_expense_line_travelbycarcustomerseagatedouble0" model="hr.expense.line">
|
||||
<field name="name">Travel by Car - Customer Seagate 2 - Double</field>
|
||||
<field name="date_value">2010-05-03</field>
|
||||
<field name="analytic_account" ref="account.analytic_thymbra"/>
|
||||
<field model="hr.expense.expense" name="expense_id" search="[('name', '=', u'September Expenses')]"/>
|
||||
<field eval="200.0" name="unit_amount"/>
|
||||
<field eval="130.0" name="unit_quantity"/>
|
||||
</record>
|
||||
<record id="hr_expense_line_basicpcserverforseagate0" model="hr.expense.line">
|
||||
<field name="name">Basic PC - Server for Seagate</field>
|
||||
<field name="date_value">2010-05-03</field>
|
||||
<field name="analytic_account" ref="account.analytic_seagate_p2"/>
|
||||
<field model="hr.expense.expense" name="expense_id" search="[('name', '=', u'September Expenses')]"/>
|
||||
<field eval="500.0" name="unit_amount"/>
|
||||
<field eval="1.0" name="unit_quantity"/>
|
||||
</record>
|
||||
</data>
|
||||
<data noupdate="1">
|
||||
<record id="hr_expense_expense_septemberexpenses1" model="hr.expense.expense">
|
||||
<field name="currency_id" ref="base.EUR"/>
|
||||
<field name="employee_id" ref="hr.employee1"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="name">Hotel Expenses</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="date">2010-04-20</field>
|
||||
<field name="state">draft</field>
|
||||
</record>
|
||||
<record id="hr_expense_line_hotelexpensesthymbra0" model="hr.expense.line">
|
||||
<field name="name">Hotel Expenses - Thymbra</field>
|
||||
<field name="date_value">2010-05-03</field>
|
||||
<field name="analytic_account" ref="account.analytic_thymbra"/>
|
||||
<field model="hr.expense.expense" name="expense_id" search="[('name', '=', u'Hotel Expenses')]"/>
|
||||
<field eval="2000.0" name="unit_amount"/>
|
||||
<field eval="5.0" name="unit_quantity"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -66,7 +66,6 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Expenses Sheet">
|
||||
<group colspan="4" col="6">
|
||||
<field name="employee_id" select="1"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="employee_id" select="1"/>
|
||||
<field name="ref"/>
|
||||
|
@ -99,7 +98,7 @@
|
|||
<button name="confirm" states="draft" string="Confirm" type="workflow" icon="gtk-apply"/>
|
||||
<button name="cancel" states="cancel" string="Cancel" type="workflow" icon="gtk-cancel"/>
|
||||
<button name="validate" states="confirm" string="Accept" type="workflow" icon="gtk-ok"/>
|
||||
<button name="invoice" states="accepted" string="Invoice" type="workflow" icon="gtk-print"/>
|
||||
<button name="invoice" states="accepted" string="Invoice" type="workflow" icon="gtk-execute"/>
|
||||
<button name="draft" states="confirm,cancelled" string="Set to Draft" type="workflow" icon="gtk-convert"/>
|
||||
<button name="refuse" states="confirm,draft,accepted" string="Refuse" type="workflow" icon="gtk-no"/>
|
||||
</group>
|
||||
|
|
|
@ -20,18 +20,35 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from mx import DateTime
|
||||
import time
|
||||
|
||||
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_cat(self, cr, uid, ids, category_id, return_false, context={}):
|
||||
res = {}
|
||||
for record in self.browse(cr, uid, ids, context):
|
||||
res[record.id] = {}
|
||||
max_leaves = leaves_taken = 0
|
||||
if not return_false:
|
||||
cr.execute("""SELECT type, sum(number_of_days) FROM hr_holidays WHERE category_id = %s AND state='validate' AND holiday_status_id = %s GROUP BY type""", (str(category_id), str(record.id)))
|
||||
for line in cr.fetchall():
|
||||
if line[0] =='remove':
|
||||
leaves_taken = -line[1]
|
||||
if line[0] =='add':
|
||||
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
|
||||
return res
|
||||
|
||||
def get_days(self, cr, uid, ids, employee_id, return_false, context={}):
|
||||
res = {}
|
||||
for record in self.browse(cr, uid, ids, context):
|
||||
|
@ -70,20 +87,20 @@ class hr_holidays_status(osv.osv):
|
|||
return res
|
||||
|
||||
_columns = {
|
||||
'name' : fields.char('Name', size=64, required=True, translate=True),
|
||||
'name': fields.char('Name', size=64, required=True, translate=True),
|
||||
'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 in Report', required=True, help='This color will be used in the leaves summary located in Reporting\Leaves by Departement'),
|
||||
'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 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', help='Maximum Leaves Allowed - Leaves Already Taken', multi='user_left_days'),
|
||||
|
||||
'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 in Report', required=True, help='This color will be used in the leaves summary located in Reporting\Leaves by Departement'),
|
||||
'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 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', help='Maximum Leaves Allowed - Leaves Already Taken', multi='user_left_days'),
|
||||
}
|
||||
_defaults = {
|
||||
'color_name': lambda *args: 'red',
|
||||
'active' : lambda *a: True,
|
||||
'color_name': 'red',
|
||||
'active': True,
|
||||
}
|
||||
|
||||
hr_holidays_status()
|
||||
|
||||
class hr_holidays(osv.osv):
|
||||
|
@ -91,11 +108,11 @@ class hr_holidays(osv.osv):
|
|||
_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)])
|
||||
if ids:
|
||||
return ids[0]
|
||||
return False
|
||||
# def _employee_get(obj, cr, uid, context=None):
|
||||
# ids = obj.pool.get('hr.employee').search(cr, uid, [('user_id','=', uid)])
|
||||
# if ids:
|
||||
# return ids[0]
|
||||
# return False
|
||||
|
||||
_columns = {
|
||||
'name' : fields.char('Description', required=True, readonly=True, size=64, states={'draft':[('readonly',False)]}),
|
||||
|
@ -116,24 +133,38 @@ class hr_holidays(osv.osv):
|
|||
'parent_id': fields.many2one('hr.holidays', 'Parent'),
|
||||
'linked_request_ids': fields.one2many('hr.holidays', 'parent_id', 'Linked Requests',),
|
||||
'department_id':fields.related('employee_id', 'department_id', string='Department', type='many2one', relation='hr.department', readonly=True, store=True),
|
||||
}
|
||||
'category_id': fields.many2one('hr.employee.category', "Employee Category", help='Category Of employee'),
|
||||
'holiday_type': fields.selection([('employee','Employee Request'),('category','Employee Category Request')], 'Holiday Type'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'employee_id' : _employee_get ,
|
||||
'state' : lambda *a: 'draft',
|
||||
'type': lambda *a: 'remove',
|
||||
'allocation_type': lambda *a: 'employee',
|
||||
# 'employee_id' : _employee_get ,
|
||||
'state' : 'draft',
|
||||
'type': 'remove',
|
||||
'allocation_type': 'employee',
|
||||
'user_id': lambda obj, cr, uid, context: uid,
|
||||
'holiday_type': 'employee'
|
||||
}
|
||||
_order = 'date_from desc'
|
||||
|
||||
def create(self, cr, uid, vals, context={}):
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
if context is None:
|
||||
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)
|
||||
return super(hr_holidays, self).create(cr, uid, vals, context=context)
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
if 'holiday_type' in vals:
|
||||
if vals['holiday_type'] == 'employee':
|
||||
vals.update({'category_id': False})
|
||||
else:
|
||||
vals.update({'employee_id': False})
|
||||
return super(hr_holidays, self).write(cr, uid, ids, vals, context=context)
|
||||
|
||||
def onchange_date_from(self, cr, uid, ids, date_to, date_from):
|
||||
result = {}
|
||||
|
@ -157,10 +188,9 @@ class hr_holidays(osv.osv):
|
|||
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)
|
||||
[list_ids.append(i) for id in record.linked_request_ids]
|
||||
self.holidays_cancel(cr, uid, list_ids)
|
||||
self.unlink(cr, uid, list_ids)
|
||||
|
||||
def _check_date(self, cr, uid, ids):
|
||||
if ids:
|
||||
|
@ -172,12 +202,10 @@ class hr_holidays(osv.osv):
|
|||
|
||||
_constraints = [(_check_date, 'Start date should not be larger than end date! ', ['number_of_days'])]
|
||||
|
||||
|
||||
def unlink(self, cr, uid, ids, context={}):
|
||||
self._update_user_holidays(cr, uid, ids)
|
||||
return super(hr_holidays, self).unlink(cr, uid, ids, context)
|
||||
|
||||
|
||||
def onchange_date_to(self, cr, uid, ids, date_from, date_to):
|
||||
result = {}
|
||||
if date_from and date_to:
|
||||
|
@ -217,7 +245,7 @@ class hr_holidays(osv.osv):
|
|||
return True
|
||||
|
||||
def holidays_validate(self, cr, uid, ids, *args):
|
||||
self.check_holidays(cr,uid,ids)
|
||||
self.check_holidays(cr, uid, ids)
|
||||
vals = {
|
||||
'state':'validate',
|
||||
}
|
||||
|
@ -228,31 +256,38 @@ class hr_holidays(osv.osv):
|
|||
raise osv.except_osv(_('Warning !'),_('No user related to the selected employee.'))
|
||||
self.write(cr, uid, ids, vals)
|
||||
for record in self.browse(cr, uid, ids):
|
||||
if record.type=='remove':
|
||||
if record.holiday_type=='employee' and record.type=='remove':
|
||||
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
|
||||
'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)
|
||||
self.pool.get('resource.calendar.leaves').create(cr, uid, vals)
|
||||
return True
|
||||
|
||||
def holidays_confirm(self, cr, uid, ids, *args):
|
||||
for record in self.browse(cr, uid, ids):
|
||||
user_id = False
|
||||
leave_asked = record.number_of_days_temp
|
||||
if record.type == 'remove':
|
||||
if record.holiday_type=='employee' and record.type == 'remove':
|
||||
if record.employee_id and not record.holiday_status_id.limit:
|
||||
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 for %s while available leaves are less than asked leaves.' %(record.employee_id.name)))
|
||||
nb = -(record.number_of_days_temp)
|
||||
elif record.holiday_type=='category' and record.type == 'remove':
|
||||
if record.category_id and not record.holiday_status_id.limit:
|
||||
leaves_rest = self.pool.get('hr.holidays.status').get_days_cat( cr, uid, [record.holiday_status_id.id], record.category_id.id, False)[record.holiday_status_id.id]['remaining_leaves']
|
||||
if leaves_rest < leave_asked:
|
||||
raise osv.except_osv(_('Warning!'),_('You cannot validate leaves for %s while available leaves are less than asked leaves.' %(record.category_id.name)))
|
||||
nb = -(record.number_of_days_temp)
|
||||
else:
|
||||
nb = record.number_of_days_temp
|
||||
if record.employee_id:
|
||||
|
||||
if record.holiday_type=='employee' and record.employee_id:
|
||||
user_id = record.employee_id.user_id and record.employee_id.user_id.id or uid
|
||||
|
||||
self.write(cr, uid, [record.id], {
|
||||
|
@ -285,19 +320,25 @@ class hr_holidays(osv.osv):
|
|||
})
|
||||
return True
|
||||
|
||||
def check_holidays(self,cr,uid,ids):
|
||||
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.'))
|
||||
if record.employee_id:
|
||||
raise osv.except_osv(_('Warning!'),_('Wrong leave definition.'))
|
||||
if record.holiday_type=='employee' and record.employee_id:
|
||||
leave_asked = record.number_of_days
|
||||
if leave_asked < 0.00:
|
||||
if not record.holiday_status_id.limit:
|
||||
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']
|
||||
|
||||
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:
|
||||
elif record.holiday_type=='category' and record.category_id:
|
||||
leave_asked = record.number_of_days
|
||||
if leave_asked < 0.00:
|
||||
if not record.holiday_status_id.limit:
|
||||
leaves_rest = self.pool.get('hr.holidays.status').get_days_cat(cr, uid, [record.holiday_status_id.id], record.category_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:# This condition will never meet!!
|
||||
holiday_ids = []
|
||||
vals = {
|
||||
'name' : record.name,
|
||||
|
@ -322,7 +363,8 @@ class hr_holidays(osv.osv):
|
|||
self.holidays_confirm(cr, uid, holiday_ids)
|
||||
self.holidays_validate(cr, uid, holiday_ids)
|
||||
|
||||
if record.holiday_status_id.categ_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:
|
||||
if record.holiday_status_id.categ_id and record.date_from and record.date_to:
|
||||
vals={}
|
||||
vals['name']=record.name
|
||||
vals['categ_id']=record.holiday_status_id.categ_id.id
|
||||
|
@ -331,10 +373,13 @@ class hr_holidays(osv.osv):
|
|||
diff_day = (epoch_c - epoch_d)/(3600*24)
|
||||
vals['duration'] = (diff_day) * 8
|
||||
vals['note'] = record.notes
|
||||
vals['user_id'] = record.user_id.id
|
||||
# vals['user_id'] = record.user_id.id
|
||||
vals['date'] = record.date_from
|
||||
if record.holiday_type=='employee':
|
||||
vals['user_id'] = record.user_id.id
|
||||
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:
|
|
@ -45,14 +45,21 @@
|
|||
<form string="Leave Request">
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" select="1"/>
|
||||
<field name="employee_id" select="1" required="1"/>
|
||||
<field name="holiday_status_id" select="1" on_change="onchange_sec_id(holiday_status_id)" context="{'employee_id':employee_id}" />
|
||||
<field name="date_from" select="1" on_change="onchange_date_from(date_to, date_from)" required="1"/>
|
||||
<field name="date_to" select="1" on_change="onchange_date_to(date_from, date_to)" required="1"/>
|
||||
<field name="number_of_days_temp"/>
|
||||
<field name="holiday_type"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="General">
|
||||
<group colspan="4" attrs="{'invisible':[('holiday_type','=','employee')]}">
|
||||
<field name="category_id" select="1" attrs="{'required':[('holiday_type','=','category')]}"/>
|
||||
</group>
|
||||
<group colspan="4" attrs="{'invisible':[('holiday_type','=','category')]}">
|
||||
<field name="employee_id" select="1" attrs="{'required':[('holiday_type','=','employee')]}"/>
|
||||
</group>
|
||||
<field name="holiday_status_id" select="1" on_change="onchange_sec_id(holiday_status_id)" context="{'employee_id':employee_id}" />
|
||||
<newline/>
|
||||
<field name="date_from" select="1" on_change="onchange_date_from(date_to, date_from)" required="1"/>
|
||||
<field name="date_to" select="1" on_change="onchange_date_to(date_from, date_to)" required="1"/>
|
||||
<field name="number_of_days_temp"/>
|
||||
<field name="manager_id"/>
|
||||
<field name="department_id"/>
|
||||
<field name="notes" colspan="4"/>
|
||||
|
@ -80,11 +87,17 @@
|
|||
<form string="Allocation Request">
|
||||
<field name="name" select="1"/>
|
||||
<field name="holiday_status_id" select="1" />
|
||||
<field name="employee_id" select="1" required="1"/>
|
||||
<field name="department_id"/>
|
||||
<field name="number_of_days_temp"/>
|
||||
<field name="holiday_type"/>
|
||||
<notebook colspan="4">
|
||||
<page string="General">
|
||||
<group colspan="4" attrs="{'invisible':[('holiday_type','=','employee')]}">
|
||||
<field name="category_id" select="1" attrs="{'required':[('holiday_type','=','category')]}"/>
|
||||
</group>
|
||||
<group colspan="4" attrs="{'invisible':[('holiday_type','=','category')]}">
|
||||
<field name="employee_id" select="1" attrs="{'required':[('holiday_type','=','employee')]}"/>
|
||||
</group>
|
||||
<field name="department_id"/>
|
||||
<field name="number_of_days_temp"/>
|
||||
<field name="manager_id"/>
|
||||
<field name="notes" colspan="4"/>
|
||||
<newline/>
|
||||
|
@ -111,7 +124,9 @@
|
|||
<form string="Leaves Management">
|
||||
<field name="name" select="1"/>
|
||||
<field name="holiday_status_id" select="1"/>
|
||||
<field name="employee_id" select="1" />
|
||||
<!-- <field name="holiday_type"/>
|
||||
<field name="category_id" select="1" required="1"/>
|
||||
--> <field name="employee_id" select="1" />
|
||||
<!--<field name="department_id"/>-->
|
||||
<field name="type"/>
|
||||
<field name="date_from" select="1" on_change="onchange_date_from(date_to, date_from)" attrs="{'readonly':[('type','=','add')], 'required':[('type','=','remove')]}"/>
|
||||
|
|
|
@ -63,7 +63,8 @@ class hr_holidays_report(osv.osv):
|
|||
s.state
|
||||
from
|
||||
hr_holidays s
|
||||
where type='remove'
|
||||
where type='remove' and
|
||||
s.employee_id is not null
|
||||
group by
|
||||
s.create_date,s.state,s.date_from,s.date_to,
|
||||
s.number_of_days_temp,s.employee_id,s.user_id
|
||||
|
@ -98,7 +99,7 @@ class hr_holidays_remaining_leaves_user(osv.osv):
|
|||
where
|
||||
hrs.employee_id = hre.id and
|
||||
hre.resource_id = rr.id and
|
||||
hhs.id = hrs.holiday_status_id
|
||||
hhs.id = hrs.holiday_status_id
|
||||
group by
|
||||
rr.name,rr.user_id,hhs.name
|
||||
)
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
</record>
|
||||
|
||||
<record id="action_hr_holidays_report_all" model="ir.actions.act_window">
|
||||
<field name="name">Leaves</field>
|
||||
<field name="name">Leaves By Employee</field>
|
||||
<field name="res_model">hr.holidays.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
|
|
|
@ -42,7 +42,9 @@
|
|||
'security/idea_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
],
|
||||
'demo_xml': [],
|
||||
'demo_xml': [
|
||||
"idea_data.xml"
|
||||
],
|
||||
'installable': True,
|
||||
'certificate': '0071515601309',
|
||||
}
|
||||
|
|
|
@ -19,7 +19,9 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv, fields
|
||||
from osv import osv
|
||||
from osv import fields
|
||||
from tools.translate import _
|
||||
|
||||
VoteValues = [('-1', 'Not Voted'), ('0', 'Very Bad'), ('25', 'Bad'), \
|
||||
('50', 'Normal'), ('75', 'Good'), ('100', 'Very Good') ]
|
||||
|
@ -35,7 +37,8 @@ class idea_category(osv.osv):
|
|||
'name': fields.char('Category', size=64, required=True),
|
||||
'summary': fields.text('Summary'),
|
||||
'parent_id': fields.many2one('idea.category', 'Parent Categories', ondelete='set null'),
|
||||
'child_ids': fields.one2many('idea.category', 'parent_id', 'Child Categories')
|
||||
'child_ids': fields.one2many('idea.category', 'parent_id', 'Child Categories'),
|
||||
'visibility':fields.boolean('Open Idea?', required=False),
|
||||
}
|
||||
_sql_constraints = [
|
||||
('name', 'unique(parent_id,name)', 'The name of the category must be unique' )
|
||||
|
@ -44,7 +47,6 @@ class idea_category(osv.osv):
|
|||
|
||||
idea_category()
|
||||
|
||||
|
||||
class idea_idea(osv.osv):
|
||||
""" Idea """
|
||||
_name = 'idea.idea'
|
||||
|
@ -62,10 +64,10 @@ class idea_idea(osv.osv):
|
|||
return {}
|
||||
|
||||
sql = """SELECT i.id, avg(v.score::integer)
|
||||
FROM idea_idea i LEFT OUTER JOIN idea_vote v ON i.id = v.idea_id
|
||||
WHERE i.id = ANY(%s)
|
||||
GROUP BY i.id
|
||||
"""
|
||||
FROM idea_idea i LEFT OUTER JOIN idea_vote v ON i.id = v.idea_id
|
||||
WHERE i.id = ANY(%s)
|
||||
GROUP BY i.id
|
||||
"""
|
||||
|
||||
cr.execute(sql, (ids,))
|
||||
return dict(cr.fetchall())
|
||||
|
@ -82,10 +84,10 @@ class idea_idea(osv.osv):
|
|||
return {}
|
||||
|
||||
sql = """SELECT i.id, COUNT(1)
|
||||
FROM idea_idea i LEFT OUTER JOIN idea_vote v ON i.id = v.idea_id
|
||||
WHERE i.id = ANY(%s)
|
||||
GROUP BY i.id
|
||||
"""
|
||||
FROM idea_idea i LEFT OUTER JOIN idea_vote v ON i.id = v.idea_id
|
||||
WHERE i.id = ANY(%s)
|
||||
GROUP BY i.id
|
||||
"""
|
||||
|
||||
cr.execute(sql, (ids,))
|
||||
return dict(cr.fetchall())
|
||||
|
@ -102,10 +104,10 @@ class idea_idea(osv.osv):
|
|||
return {}
|
||||
|
||||
sql = """SELECT i.id, COUNT(1)
|
||||
FROM idea_idea i LEFT OUTER JOIN idea_comment c ON i.id = c.idea_id
|
||||
WHERE i.id = ANY(%s)
|
||||
GROUP BY i.id
|
||||
"""
|
||||
FROM idea_idea i LEFT OUTER JOIN idea_comment c ON i.id = c.idea_id
|
||||
WHERE i.id = ANY(%s)
|
||||
GROUP BY i.id
|
||||
"""
|
||||
|
||||
cr.execute(sql, (ids,))
|
||||
return dict(cr.fetchall())
|
||||
|
@ -156,29 +158,77 @@ class idea_idea(osv.osv):
|
|||
'comment_ids': fields.one2many('idea.comment', 'idea_id', 'Comments'),
|
||||
'create_date': fields.datetime('Creation date', readonly=True),
|
||||
'vote_ids': fields.one2many('idea.vote', 'idea_id', 'Vote'),
|
||||
'my_vote': fields.function(_vote_read, fnct_inv = _vote_save, \
|
||||
string="My Vote", method=True, type="selection", selection=VoteValues),
|
||||
'my_vote': fields.function(_vote_read, fnct_inv = _vote_save, string="My Vote", method=True, type="selection", selection=VoteValues),
|
||||
'vote_avg': fields.function(_vote_avg_compute, method=True, string="Average Score", type="float"),
|
||||
'count_votes': fields.function(_vote_count, method=True, string="Count of votes", type="integer"),
|
||||
'count_comments': fields.function(_comment_count, method=True, \
|
||||
string="Count of comments", type="integer"),
|
||||
'count_comments': fields.function(_comment_count, method=True, string="Count of comments", type="integer"),
|
||||
'category_id': fields.many2one('idea.category', 'Category', required=True),
|
||||
'state': fields.selection([('draft', 'Draft'), ('open', 'Opened'), \
|
||||
('close', 'Accepted'), ('cancel', 'Cancelled')], \
|
||||
'State', readonly=True,
|
||||
help='When the Idea is created the state is \'Draft\'.\n It is \
|
||||
opened by the user, the state is \'Opened\'.\
|
||||
\nIf the idea is accepted, the state is \'Accepted\'.'),
|
||||
'state': fields.selection([('draft', 'Draft'),
|
||||
('open', 'Opened'),
|
||||
('close', 'Accepted'),
|
||||
('cancel', 'Cancelled')],
|
||||
'State', readonly=True,
|
||||
help='When the Idea is created the state is \'Draft\'.\n It is \
|
||||
opened by the user, the state is \'Opened\'.\
|
||||
\nIf the idea is accepted, the state is \'Accepted\'.'
|
||||
),
|
||||
'visibility':fields.boolean('Open Idea?', required=False),
|
||||
'stat_vote_ids': fields.one2many('idea.vote.stat', 'idea_id', 'Statistics', readonly=True),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'user_id': lambda self,cr,uid,context: uid,
|
||||
'my_vote': lambda *a: '-1',
|
||||
'state': lambda *a: 'draft'
|
||||
'state': lambda *a: 'draft',
|
||||
'visibility': lambda *a: True,
|
||||
}
|
||||
_order = 'id desc'
|
||||
|
||||
def create(self, cr, user, vals, context={}):
|
||||
"""
|
||||
Create a new record for a model idea_idea
|
||||
@param cr: A database cursor
|
||||
@param user: ID of the user currently logged in
|
||||
@param vals: provides data for new record
|
||||
@param context: context arguments, like lang, time zone
|
||||
|
||||
@return: Returns an id of the new record
|
||||
"""
|
||||
visibility = False
|
||||
|
||||
if vals.get('category_id', False):
|
||||
category_pool = self.pool.get('idea.category')
|
||||
category = category_pool.browse(cr, user, vals.get('category_id'), context)
|
||||
visibility = category.visibility
|
||||
|
||||
vals.update({
|
||||
'visibility':visibility
|
||||
})
|
||||
res_id = super(idea_idea, self).create(cr, user, vals, context)
|
||||
return res_id
|
||||
|
||||
def write(self, cr, user, ids, vals, context=None):
|
||||
"""
|
||||
Update redord(s) exist in {ids}, with new value provided in {vals}
|
||||
|
||||
@param cr: A database cursor
|
||||
@param user: ID of the user currently logged in
|
||||
@param ids: list of record ids to update
|
||||
@param vals: dict of new values to be set
|
||||
@param context: context arguments, like lang, time zone
|
||||
|
||||
@return: Returns True on success, False otherwise
|
||||
"""
|
||||
|
||||
state = self.browse(cr, user, ids[0]).state
|
||||
|
||||
if vals.get('my_vote', False):
|
||||
if vals.get('state', state) != 'open':
|
||||
raise osv.except_osv(_("Warning !"), _("Draft/Accepted/Cancelled ideas Could not be voted"))
|
||||
|
||||
res = super(idea_idea, self).write(cr, user, ids, vals, context)
|
||||
return res
|
||||
|
||||
def idea_cancel(self, cr, uid, ids):
|
||||
self.write(cr, uid, ids, { 'state': 'cancel' })
|
||||
return True
|
||||
|
@ -190,7 +240,7 @@ class idea_idea(osv.osv):
|
|||
def idea_close(self, cr, uid, ids):
|
||||
self.write(cr, uid, ids, { 'state': 'close' })
|
||||
return True
|
||||
|
||||
|
||||
def idea_draft(self, cr, uid, ids):
|
||||
self.write(cr, uid, ids, { 'state': 'draft' })
|
||||
return True
|
||||
|
@ -238,7 +288,6 @@ class idea_vote(osv.osv):
|
|||
|
||||
idea_vote()
|
||||
|
||||
|
||||
class idea_vote_stat(osv.osv):
|
||||
""" Idea votes Statistics """
|
||||
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record model="idea.category" id="idea_category_general">
|
||||
<field name="name">General</field>
|
||||
<field name="summary">General Ideas</field>
|
||||
<field name="visibility">True</field>
|
||||
</record>
|
||||
|
||||
<record model="idea.idea" id="idea_idea_one">
|
||||
<field name="title">TODO: Need to put a good idea on OpenERP</field>
|
||||
<field name="description">TODO: Need to put a good idea on OpenERP</field>
|
||||
<field name="category_id" ref="idea_category_general"/>
|
||||
<field name="visibility">True</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
@ -2,8 +2,7 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- Idea Category Form View -->
|
||||
|
||||
<!-- Idea Category Form View -->
|
||||
<menuitem name="Tools" id="base.menu_tools" icon="STOCK_PREFERENCES" sequence="15"/>
|
||||
<record model="ir.ui.view" id="view_idea_category_form">
|
||||
<field name="name">idea.category.form</field>
|
||||
|
@ -11,16 +10,18 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Category of ideas">
|
||||
<field name="name" select="1"/>
|
||||
<field name="parent_id" select="1"/>
|
||||
<newline/>
|
||||
<field name="summary" colspan="4"/>
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" select="1"/>
|
||||
<field name="parent_id" select="1"/>
|
||||
<field name="visibility"/>
|
||||
</group>
|
||||
<separator string="Description" colspan="4"/>
|
||||
<field name="summary" colspan="4" nolabel="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Idea Category Tree View -->
|
||||
|
||||
<!-- Idea Category Tree View -->
|
||||
<record model="ir.ui.view" id="view_idea_category_tree">
|
||||
<field name="name">idea.category.tree</field>
|
||||
<field name="model">idea.category</field>
|
||||
|
@ -33,7 +34,7 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Idea Category Action -->
|
||||
<!-- Idea Category Action -->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_idea_category">
|
||||
<field name="name">Categories</field>
|
||||
|
@ -47,8 +48,7 @@
|
|||
|
||||
<menuitem name="Ideas" parent="base.menu_lunch_survey_root" id="menu_ideas"/>
|
||||
|
||||
<menuitem name="Categories" parent="menu_ideas"
|
||||
id="menu_idea_category" action="action_idea_category" />
|
||||
<menuitem name="Categories" parent="menu_ideas" id="menu_idea_category" action="action_idea_category" />
|
||||
|
||||
<!-- Idea Category Action -->
|
||||
|
||||
|
@ -61,11 +61,6 @@
|
|||
|
||||
<menuitem name="Ideas" parent="base.menu_tools" id="menu_ideas1" sequence="4"/>
|
||||
|
||||
<menuitem
|
||||
name="Ideas by Categories" parent="menu_ideas1"
|
||||
id="menu_idea_category_tree"
|
||||
action="action_idea_category_tree"/>
|
||||
|
||||
<!-- Oepn Ideas Action -->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_idea_idea_categ_open">
|
||||
|
@ -137,21 +132,18 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="New Idea">
|
||||
<notebook>
|
||||
<page string="Idea">
|
||||
<field name="title" select="1" />
|
||||
<field name="category_id" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="vote_avg" />
|
||||
<field name="description" colspan="4" widget="text_wiki"/>
|
||||
<field name="state"/>
|
||||
<group colspan="2" col="3">
|
||||
<button name="idea_open" string="Open" states="draft" icon="gtk-go-forward"/>
|
||||
<button name="idea_close" string="Close" states="open" icon="gtk-close"/>
|
||||
<button name="idea_cancel" string="Cancel" states="open" icon="gtk-cancel"/>
|
||||
</group>
|
||||
<group col="6" colspan="4">
|
||||
<field name="title" colspan="4" select="1" />
|
||||
<field name="category_id" select="1"/>
|
||||
<field name="my_vote"/>
|
||||
<field name="user_id" attrs="{'invisible':[('visibility','=',False)]}"/>
|
||||
<field name="vote_avg" widget="progressbar"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Idea Detail">
|
||||
<field name="description" nolabel="1" colspan="4" widget="text_wiki"/>
|
||||
</page>
|
||||
<page string="Comments">
|
||||
<page string="Comments" groups="base.group_extended">
|
||||
<field name="comment_ids" nolabel="1" colspan="4">
|
||||
<form string="Comment">
|
||||
<separator string="Your comment" colspan="4"/>
|
||||
|
@ -159,27 +151,39 @@
|
|||
</form>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Vote">
|
||||
<field name="vote_ids" nolabel="1" colspan="4" />
|
||||
<page string="Vote" groups="base.group_extended">
|
||||
<field name="vote_ids" nolabel="1" colspan="4" readonly="True"/>
|
||||
</page>
|
||||
<page string="Statistics">
|
||||
<group col="6" colspan="4">
|
||||
<field name="count_comments" />
|
||||
<field name="count_votes" />
|
||||
</group>
|
||||
<field name="stat_vote_ids" colspan="4" mode="graph,tree" nolabel="1">
|
||||
<graph string="vote_stat of ideas" type="bar">
|
||||
<graph string="Vots Statistics" type="bar">
|
||||
<field name="score"/>
|
||||
<field name="nbr"/>
|
||||
</graph>
|
||||
<tree string="vote_stat of ideas">
|
||||
<tree string="Vots Statistics">
|
||||
<field name="score"/>
|
||||
<field name="nbr"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
<group colspan="4" col="6">
|
||||
<field name="state"/>
|
||||
<button name="idea_open" string="Open" states="draft" icon="gtk-go-forward"/>
|
||||
<button name="%(idea.action_idea_post_vote)d" icon="gtk-execute" states="open" type="action" string="Submit Vote"/>
|
||||
<button name="idea_close" string="Accept" states="open" icon="gtk-jump-to"/>
|
||||
<button name="idea_cancel" string="Refuse" states="open" icon="gtk-cancel"/>
|
||||
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- New Idea Tree View -->
|
||||
|
||||
<!-- New Idea Tree View -->
|
||||
|
||||
<record model="ir.ui.view" id="view_idea_idea_tree">
|
||||
<field name="name">idea.idea.tree</field>
|
||||
|
@ -187,40 +191,47 @@
|
|||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="All Ideas">
|
||||
<field name="title"/>
|
||||
<field name="category_id" />
|
||||
<field name="create_date"/>
|
||||
<field name="user_id" />
|
||||
<field name="title"/>
|
||||
<field name="vote_avg" />
|
||||
<field name="vote_avg" widget="progressbar"/>
|
||||
<field name="count_comments" />
|
||||
<field name="count_votes" />
|
||||
<button name="%(action_idea_post_vote)d" icon="gtk-execute"
|
||||
type="action" states="draft,open" string="Vote" />
|
||||
<field name="state"/>
|
||||
<button name="%(action_idea_post_vote)d" icon="gtk-execute" type="action" states="draft,open" string="Vote"/>
|
||||
<button name="idea_close" string="Accept" states="open" icon="gtk-jump-to"/>
|
||||
<button name="idea_cancel" string="Refuse" states="open" icon="gtk-cancel"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Search Idea -->
|
||||
<!-- Search Idea -->
|
||||
|
||||
<record model="ir.ui.view" id="view_idea_idea_search">
|
||||
<field name="name">idea.idea.search</field>
|
||||
<field name="model">idea.idea</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Ideas">
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="gtk-execute" string="My" domain="[('user_id','=',uid)]" help="My Ideas"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="gtk-execute" string="Draft"
|
||||
domain="[('state','=','draft')]" help="Draft Ideas" />
|
||||
<filter icon="gtk-execute" string="Open"
|
||||
domain="[('state','=','open')]" help="Open Ideas" />
|
||||
<separator orientation="vertical"/>
|
||||
<field name="title" select="1"/>
|
||||
<field name="category_id" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
</group>
|
||||
</search>
|
||||
<search string="Ideas">
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="gtk-execute" string="My Ideas" domain="[('user_id','=',uid)]" help="My Ideas"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="gtk-execute" string="Draft"
|
||||
domain="[('state','=','draft')]" help="Draft Ideas" />
|
||||
<filter icon="gtk-execute" string="Open"
|
||||
domain="[('state','=','open')]" help="Open Ideas" />
|
||||
<separator orientation="vertical"/>
|
||||
<field name="title" select="1"/>
|
||||
<field name="category_id" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="12" col="10">
|
||||
<filter icon="gtk-execute" string="Creator" help="By Creators" context="{'group_by':'user_id'}"/>
|
||||
<filter icon="gtk-execute" string="State" help="By States" context="{'group_by':'state'}"/>
|
||||
<filter icon="gtk-execute" string="Category" help="By Idea Category" context="{'group_by':'category_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
@ -314,15 +325,15 @@
|
|||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
</record>
|
||||
<menuitem name="Reporting" parent="base.menu_tools" id="base.menu_lunch_reporting" sequence="5"/>
|
||||
<menuitem name="Reporting" parent="base.menu_tools" id="base.menu_lunch_reporting" sequence="5"/>
|
||||
|
||||
<menuitem name="Idea" parent="base.menu_lunch_reporting" id="menu_idea_reporting"/>
|
||||
<menuitem name="Idea" parent="base.menu_lunch_reporting" id="menu_idea_reporting"/>
|
||||
|
||||
<menuitem name="Vote Statistics" parent="menu_idea_reporting"
|
||||
id="menu_idea_vote_stat" action="action_idea_vote_stat" />
|
||||
<menuitem name="Vote Statistics" parent="menu_idea_reporting"
|
||||
id="menu_idea_vote_stat" action="action_idea_vote_stat" />
|
||||
|
||||
<!-- Vote For Idea Action -->
|
||||
<record model="ir.actions.act_window" id="action_idea_vote">
|
||||
<!-- Vote For Idea Action -->
|
||||
<record model="ir.actions.act_window" id="action_idea_vote">
|
||||
<field name="name">Idea's vote</field>
|
||||
<field name="res_model">idea.vote</field>
|
||||
<field name="view_type">form</field>
|
||||
|
|
|
@ -29,13 +29,36 @@ class idea_post_vote(osv.osv_memory):
|
|||
_description = "Post vote"
|
||||
|
||||
_columns = {
|
||||
'vote': fields.selection([('-1', 'Not Voted'),
|
||||
('0', 'Very Bad'),
|
||||
('25', 'Bad'),
|
||||
('50', 'Normal'),
|
||||
('75', 'Good'),
|
||||
('100', 'Very Good') ], 'Post Vote', required=True)
|
||||
}
|
||||
'vote': fields.selection([('-1', 'Not Voted'),
|
||||
('0', 'Very Bad'),
|
||||
('25', 'Bad'),
|
||||
('50', 'Normal'),
|
||||
('75', 'Good'),
|
||||
('100', 'Very Good') ],
|
||||
'Post Vote', required=True),
|
||||
'note': fields.text('Description'),
|
||||
}
|
||||
|
||||
def get_default(self, cr, uid, context={}):
|
||||
"""
|
||||
This function checks for precondition before wizard executes
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param fields: List of fields for default value
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
idea_obj = self.pool.get('idea.idea')
|
||||
|
||||
if context.get('active_id'):
|
||||
idea = idea_obj.browse(cr, uid, context.get('active_id'))
|
||||
return idea.my_vote
|
||||
else:
|
||||
return 75
|
||||
|
||||
_defaults = {
|
||||
'vote': get_default,
|
||||
}
|
||||
|
||||
def view_init(self, cr, uid, fields, context=None):
|
||||
"""
|
||||
|
@ -50,16 +73,12 @@ class idea_post_vote(osv.osv_memory):
|
|||
|
||||
for idea in idea_obj.browse(cr, uid, context.get('active_ids', [])):
|
||||
if idea.state in ['draft', 'close', 'cancel']:
|
||||
raise osv.except_osv(_("Warning !"), _("Draft/Accepted/Cancelled \
|
||||
ideas Could not be voted"))
|
||||
raise osv.except_osv(_("Warning !"), _("Draft/Accepted/Cancelled ideas Could not be voted"))
|
||||
if idea.state != 'open':
|
||||
raise osv.except_osv(_('Warning !'), _('idea should be in \
|
||||
\'Open\' state before vote for that idea.'))
|
||||
raise osv.except_osv(_('Warning !'), _('idea should be in \'Open\' state before vote for that idea.'))
|
||||
return False
|
||||
|
||||
|
||||
def do_vote(self, cr, uid, ids, context):
|
||||
|
||||
"""
|
||||
Create idea vote.
|
||||
@param cr: the current row, from the database cursor,
|
||||
|
@ -67,15 +86,26 @@ ideas Could not be voted"))
|
|||
@param ids: List of Idea Post vote’s IDs.
|
||||
@return: Dictionary {}
|
||||
"""
|
||||
|
||||
data = context and context.get('active_id', False) or False
|
||||
vote_obj = self.pool.get('idea.vote')
|
||||
|
||||
vote_id = context and context.get('active_id', False) or False
|
||||
vote_pool = self.pool.get('idea.vote')
|
||||
comment_pool = self.pool.get('idea.comment')
|
||||
|
||||
for do_vote_obj in self.read(cr, uid, ids):
|
||||
score = str(do_vote_obj['vote'])
|
||||
dic = {'idea_id': data, 'user_id': uid, 'score': score }
|
||||
|
||||
vote = vote_obj.create(cr, uid, dic)
|
||||
comment = do_vote_obj['note']
|
||||
vote = {
|
||||
'idea_id': vote_id,
|
||||
'user_id': uid,
|
||||
'score': score
|
||||
}
|
||||
comment = {
|
||||
'user_id':uid,
|
||||
'idea_id':vote_id,
|
||||
'content': comment,
|
||||
}
|
||||
vote = vote_pool.create(cr, uid, vote)
|
||||
comment = comment_pool.create(cr, uid, comment)
|
||||
return {}
|
||||
|
||||
idea_post_vote()
|
||||
|
|
|
@ -2,43 +2,38 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- Post Idea for vote Form View -->
|
||||
<!-- Post Idea for vote Form View -->
|
||||
|
||||
<record id="view_idea_post_vote" model="ir.ui.view">
|
||||
<field name="name">idea.post.vote.form</field>
|
||||
<field name="model">idea.post.vote</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create Tasks">
|
||||
<group colspan="4" >
|
||||
<field name="vote"/>
|
||||
</group>
|
||||
<separator string="" colspan="4" />
|
||||
<group colspan="4" col="6">
|
||||
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
|
||||
<button icon="gtk-ok" name="do_vote" string="Post Vote" type="object"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_idea_post_vote" model="ir.ui.view">
|
||||
<field name="name">idea.post.vote.form</field>
|
||||
<field name="model">idea.post.vote</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Create Tasks">
|
||||
<group colspan="4" >
|
||||
<field name="vote" colspan="4"/>
|
||||
<separator string="Comment" colspan="4"/>
|
||||
<field name="note" colspan="4" nolabel="1"/>
|
||||
</group>
|
||||
<separator string="" colspan="4" />
|
||||
<group colspan="4" col="6">
|
||||
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
|
||||
<button icon="gtk-ok" name="do_vote" string="Post Vote" type="object"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Post Idea for vote Action -->
|
||||
|
||||
<record id="action_idea_post_vote" model="ir.actions.act_window">
|
||||
<field name="name">Vote</field>
|
||||
<field name="res_model">idea.post.vote</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_idea_post_vote"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<!-- Post Idea for vote Action Window -->
|
||||
|
||||
<act_window id="action_idea_post_vote_values"
|
||||
key2="client_action_multi" name="vote"
|
||||
res_model="idea.post.vote" src_model="idea.idea"
|
||||
view_mode="form" target="new" view_type="form" />
|
||||
<!-- Post Idea for vote Action -->
|
||||
|
||||
<record id="action_idea_post_vote" model="ir.actions.act_window">
|
||||
<field name="name">Vote</field>
|
||||
<field name="res_model">idea.post.vote</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_idea_post_vote"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -56,9 +56,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
|
|||
user_cmpny = obj_company.name
|
||||
vat_no=obj_company.partner_id.vat
|
||||
if not vat_no:
|
||||
# raise wizard.except_wizard(_('Data Insufficient'),_('No VAT Number Associated with Main Company!'))
|
||||
osv.except_osv(_('Data Insufficient'), _('No VAT Number Associated with Main Company!'))
|
||||
|
||||
|
||||
tax_code_ids = obj_tax_code.search(cr, uid, [], context=context)
|
||||
ctx = context.copy()
|
||||
|
@ -68,8 +66,6 @@ class l10n_be_vat_declaration(osv.osv_memory):
|
|||
|
||||
address = post_code = city = country_code = ''
|
||||
city, post_code, address, country_code =self.pool.get('res.company')._get_default_ad(obj_company.partner_id.address)
|
||||
|
||||
|
||||
year_id = obj_fyear.find(cr, uid)
|
||||
|
||||
account_period = obj_acc_period.browse(cr, uid, data['period_id'], context=context)
|
||||
|
@ -80,7 +76,7 @@ class l10n_be_vat_declaration(osv.osv_memory):
|
|||
data_of_file +='\n\t<DECLARER>\n\t\t<VATNUMBER>'+str(vat_no)+'</VATNUMBER>\n\t\t<NAME>'+str(obj_company.name)+'</NAME>\n\t\t<ADDRESS>'+address+'</ADDRESS>'
|
||||
data_of_file +='\n\t\t<POSTCODE>'+post_code+'</POSTCODE>\n\t\t<CITY>'+city+'</CITY>\n\t\t<COUNTRY>'+country_code+'</COUNTRY>\n\t\t<SENDINGREFERENCE>'+send_ref+'</SENDINGREFERENCE>\n\t</DECLARER>'
|
||||
data_of_file +='\n\t<VATRECORD>\n\t\t<RECNUM>1</RECNUM>\n\t\t<VATNUMBER>'+((vat_no and str(vat_no[2:])) or '')+'</VATNUMBER>\n\t\t<DPERIODE>\n\t\t\t'
|
||||
|
||||
|
||||
starting_month = account_period.date_start[5:7]
|
||||
ending_month = account_period.date_stop[5:7]
|
||||
if starting_month != ending_month:
|
||||
|
@ -105,7 +101,6 @@ class l10n_be_vat_declaration(osv.osv_memory):
|
|||
data['file_save'] = base64.encodestring(data_of_file)
|
||||
self.write(cr, uid, ids, {'file_save':data['file_save']}, context=context)
|
||||
|
||||
|
||||
l10n_be_vat_declaration()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -18,7 +18,7 @@
|
|||
<field name="ask_resitution"/>
|
||||
<field name="ask_payment"/>
|
||||
<field name="client_nihil"/>
|
||||
<button colspan="1" name="create_xml" string="Create XML" type="object" default_focus="1"/>
|
||||
<button colspan="1" name="create_xml" string="Create XML" type="object"/>
|
||||
</group>
|
||||
<separator string="XML Flie has been Created." colspan="4"/>
|
||||
<group colspan="4" >
|
||||
|
|
|
@ -20,21 +20,22 @@
|
|||
##############################################################################
|
||||
import time
|
||||
import base64
|
||||
from tools.translate import _
|
||||
|
||||
from osv import osv, fields
|
||||
from tools.translate import _
|
||||
|
||||
class partner_vat_intra(osv.osv_memory):
|
||||
|
||||
""" Partner Vat Intra"""
|
||||
"""
|
||||
Partner Vat Intra
|
||||
"""
|
||||
_name = "partner.vat.intra"
|
||||
_description = 'Partner VAT Intra'
|
||||
|
||||
def _get_europe_country(self, cursor, user, context={}):
|
||||
obj_country = self.pool.get('res.country')
|
||||
return obj_country.search(cursor, user, [('code', 'in', ['AT', 'BG', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'GB'])])
|
||||
def _get_europe_country(self, cursor, user, context=None):
|
||||
return self.pool.get('res.country').search(cursor, user, [('code', 'in', ['AT', 'BG', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'GB'])])
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('File Name', size=32),
|
||||
'period_code': fields.char('Period Code',size = 6,required = True, help = '''This is where you have to set the period code for the intracom declaration using the format: ppyyyy
|
||||
PP can stand for a month: from '01' to '12'.
|
||||
PP can stand for a trimester: '31','32','33','34'
|
||||
|
@ -47,7 +48,8 @@ class partner_vat_intra(osv.osv_memory):
|
|||
'period_ids': fields.many2many('account.period', 'account_period_rel', 'acc_id', 'period_id', 'Period (s)', help = 'Select here the period(s) you want to include in your intracom declaration'),
|
||||
'test_xml': fields.boolean('Test XML file', help="Sets the XML output as test file"),
|
||||
'mand_id' : fields.char('MandataireId', size=14, required=True, help="This identifies the representative of the sending company. This is a string of 14 characters"),
|
||||
'msg': fields.text('File created', size=64, readonly=True),
|
||||
'msg': fields.text('File created', size=14, readonly=True),
|
||||
'no_vat': fields.text('Partner With No VAT', size=14, readonly=True, help="The Partner whose VAT number is not defined they doesn't include in XML File."),
|
||||
'file_save' : fields.binary('Save File', readonly=True),
|
||||
'country_ids': fields.many2many('res.country', 'vat_country_rel', 'vat_id', 'country_id', 'European Countries'),
|
||||
}
|
||||
|
@ -56,13 +58,19 @@ class partner_vat_intra(osv.osv_memory):
|
|||
'country_ids': _get_europe_country,
|
||||
}
|
||||
|
||||
def create_xml(self, cursor, user, ids, context={}):
|
||||
def create_xml(self, cursor, user, ids, context=None):
|
||||
obj_user = self.pool.get('res.users')
|
||||
obj_fyear = self.pool.get('account.fiscalyear')
|
||||
obj_sequence = self.pool.get('ir.sequence')
|
||||
obj_partner = self.pool.get('res.partner')
|
||||
obj_partner_add = self.pool.get('res.partner.address')
|
||||
obj_country = self.pool.get('res.country')
|
||||
street = zip_city = country = p_list = data_clientinfo = ''
|
||||
error_message = list_partner = []
|
||||
seq = amount_sum = 0
|
||||
|
||||
if context is None:
|
||||
context = {}
|
||||
data_cmpny = obj_user.browse(cursor, user, user).company_id
|
||||
data = self.read(cursor, user, ids)[0]
|
||||
company_vat = data_cmpny.partner_id.vat
|
||||
|
@ -73,10 +81,9 @@ class partner_vat_intra(osv.osv_memory):
|
|||
seq_declarantnum = obj_sequence.get(cursor, user, 'declarantnum')
|
||||
cref = company_vat[2:] + seq_controlref[-4:]
|
||||
dnum = cref + seq_declarantnum[-5:]
|
||||
if len(data['form']['period_code']) != 6:
|
||||
raise wizard.except_wizard(_('Wrong Period Code'), _('The period code you entered is not valid.'))
|
||||
if len(data['period_code']) != 6:
|
||||
raise osv.except_osv(_('Wrong Period Code'), _('The period code you entered is not valid.'))
|
||||
|
||||
street = zip_city = country = ''
|
||||
addr = obj_partner.address_get(cursor, user, [data_cmpny.partner_id.id], ['invoice'])
|
||||
if addr.get('invoice',False):
|
||||
ads = obj_partner_add.browse(cursor, user, [addr['invoice']])[0]
|
||||
|
@ -99,26 +106,23 @@ class partner_vat_intra(osv.osv_memory):
|
|||
data_file +='\n\t\t\t<Country>' + str(country) +'</Country>\n\t\t</CompanyInfo>\n\t</AgentRepr>'
|
||||
data_comp ='\n\t\t<CompanyInfo>\n\t\t\t<VATNum>'+str(company_vat[2:])+'</VATNum>\n\t\t\t<Name>'+str(data_cmpny.name)+'</Name>\n\t\t\t<Street>'+ str(street) +'</Street>\n\t\t\t<CityAndZipCode>'+ str(zip_city) +'</CityAndZipCode>\n\t\t\t<Country>'+ str(country) +'</Country>\n\t\t</CompanyInfo>'
|
||||
data_period = '\n\t\t<Period>'+ data['period_code'] +'</Period>' #trimester
|
||||
error_message = []
|
||||
seq = 0
|
||||
amount_sum = 0
|
||||
p_id_list = obj_partner.search(cursor, user, [('vat','!=',False)])
|
||||
if not p_id_list:
|
||||
raise osv.except_osv(_('Data Insufficient!'),_('No partner has a VAT Number asociated with him.'))
|
||||
|
||||
nb_period = len(data_fiscal.period_ids)
|
||||
fiscal_periods = data_fiscal.period_ids
|
||||
list_partner = []
|
||||
data_clientinfo = ''
|
||||
cr.execute('''SELECT l.partner_id AS partner_id, p.vat AS vat, t.code AS intra_code, SUM(l.tax_amount) AS amount
|
||||
FROM account_move_line l
|
||||
LEFT JOIN account_tax_code t ON (l.tax_code_id = t.id)
|
||||
LEFT JOIN res_partner p ON (l.partner_id = p.id)
|
||||
WHERE t.code IN ('44a','44b','88')
|
||||
AND l.period_id IN %s
|
||||
GROUP BY l.partner_id, p.vat, t.code''', (tuple(data['form']['period_ids'][0][2]), ))
|
||||
for row in cr.dictfetchall():
|
||||
|
||||
if not data['period_ids']:
|
||||
raise osv.except_osv(_('Data Insufficient!'),_('Please select at least one Period.'))
|
||||
cursor.execute('''SELECT p.name As partner_name, l.partner_id AS partner_id, p.vat AS vat, t.code AS intra_code, SUM(l.tax_amount) AS amount
|
||||
FROM account_move_line l
|
||||
LEFT JOIN account_tax_code t ON (l.tax_code_id = t.id)
|
||||
LEFT JOIN res_partner p ON (l.partner_id = p.id)
|
||||
WHERE t.code IN ('44a','44b','88')
|
||||
AND l.period_id IN %s
|
||||
GROUP BY p.name, l.partner_id, p.vat, t.code''', (tuple(data['period_ids']), ))
|
||||
for row in cursor.dictfetchall():
|
||||
if not row['vat']:
|
||||
p_list += str(row['partner_name']) + ', '
|
||||
continue
|
||||
seq += 1
|
||||
amt = row['amount'] or 0
|
||||
amt = int(amt * 100)
|
||||
|
@ -128,11 +132,15 @@ class partner_vat_intra(osv.osv_memory):
|
|||
amount_sum = int(amount_sum)
|
||||
data_decl = '\n\t<DeclarantList SequenceNum="1" DeclarantNum="'+ dnum + '" ClientNbr="'+ str(seq) +'" AmountSum="'+ str(amount_sum) +'" >'
|
||||
data_file += str(data_decl) + str(data_comp) + str(data_period) + str(data_clientinfo) + '\n\t</DeclarantList>\n</VatIntra>'
|
||||
data['msg'] = 'XML Flie has been Created. Save the File with '".xml"' extension.'
|
||||
data['file_save'] = base64.encodestring(data_file)
|
||||
self.write(cursor, user, ids, {'file_save':data['file_save'], 'msg':data['msg']}, context=context)
|
||||
data = {
|
||||
'msg': 'XML Flie has been Created. Save the File with '".xml"' extension.',
|
||||
'file_save': base64.encodestring(data_file),
|
||||
'name': 'vat_Intra.xml',
|
||||
'country_ids': [[6, 0, obj_country.search(cursor, user, [('code', 'in', ['AT', 'BG', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'GB'])])]],
|
||||
}
|
||||
self.write(cursor, user, ids, {'file_save':data['file_save'], 'msg':data['msg'], 'name':data['name'], 'no_vat':p_list, 'country_ids':data['country_ids']}, context=context)
|
||||
return True
|
||||
|
||||
partner_vat_intra()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -7,38 +7,40 @@
|
|||
name="Belgium Statements"
|
||||
parent="account.menu_finance_legal_statement"/>
|
||||
|
||||
<record id="view_vat_intra" model="ir.ui.view">
|
||||
<field name="name">Partner VAT intra</field>
|
||||
<field name="model">partner.vat.intra</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<record id="view_vat_intra" model="ir.ui.view">
|
||||
<field name="name">Partner VAT intra</field>
|
||||
<field name="model">partner.vat.intra</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Partner VAT intra">
|
||||
<notebook>
|
||||
<page string="General Information">
|
||||
<label string="This wizard will create an XML file for Vat Intra" colspan="4"/>
|
||||
<newline/>
|
||||
<field name="fyear" default_focus="1" />
|
||||
<field name="period_code"/>
|
||||
<newline/>
|
||||
<field name="period_ids"/>
|
||||
<newline/>
|
||||
<field name="mand_id"/>
|
||||
<newline/>
|
||||
<button colspan="4" name="create_xml" string="Create XML" type="object" icon="gtk-execute"/>
|
||||
<separator colspan="4"/>
|
||||
<group colspan="4" >
|
||||
<field name="msg" nolabel="1" colspan="4"/>
|
||||
<field name="file_save" readonly="True"/>
|
||||
</group>
|
||||
<button special="cancel" colspan="4" string="Cancel" icon="gtk-cancel"/>
|
||||
</page>
|
||||
<page string="European Countries">
|
||||
<field name="country_ids" colspan="4" nolabel="1" />
|
||||
</page>
|
||||
</notebook>
|
||||
<newline/>
|
||||
<separator string="This wizard will create an XML file for Vat Intra" colspan="4"/>
|
||||
<notebook>
|
||||
<page string="General Information">
|
||||
<newline/>
|
||||
<field name="period_code" colspan="4"/>
|
||||
<newline/>
|
||||
<field name="mand_id" colspan="4"/>
|
||||
<newline/>
|
||||
<separator string="Periods" colspan="4"/>
|
||||
<field name="period_ids" nolabel="1" colspan="4"/>
|
||||
<newline/>
|
||||
<button colspan="2" name="create_xml" string="Create XML" type="object" icon="gtk-execute"/>
|
||||
<separator colspan="4"/>
|
||||
<field name="msg" colspan="4" nolabel="1"/>
|
||||
<field name="name" colspan="4"/>
|
||||
<newline/>
|
||||
<field name="file_save" colspan="4"/>
|
||||
<newline/>
|
||||
<field name="no_vat" colspan="4"/>
|
||||
<separator colspan="4"/>
|
||||
<button colspan="2" special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
</page>
|
||||
<page string="European Countries">
|
||||
<field name="country_ids" colspan="4" nolabel="1" />
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_vat_intra" model="ir.actions.act_window">
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,56 @@
|
|||
# Estonian 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-05-05 21:38+0000\n"
|
||||
"Last-Translator: lyyser <logard.1961@gmail.com>\n"
|
||||
"Language-Team: Estonian <et@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-05-06 04:04+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 "OK"
|
||||
|
||||
#. 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 "Mooduli nimi"
|
||||
|
||||
#. module: olap_extract
|
||||
#: wizard_button:olap.extract.schema,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Katkesta"
|
||||
|
||||
#. module: olap_extract
|
||||
#: wizard_view:olap.extract.schema,init:0
|
||||
msgid "New Module Name"
|
||||
msgstr "Uus mooduli nimi"
|
|
@ -258,16 +258,17 @@ class task(osv.osv):
|
|||
(task.description or '')+'\n\n'
|
||||
|
||||
# Compute: effective_hours, total_hours, progress
|
||||
def _hours_get(self, cr, uid, ids, field_names, args, context):
|
||||
def _hours_get(self, cr, uid, ids, field_names, args, context=None):
|
||||
res = {}
|
||||
cr.execute("SELECT task_id, COALESCE(SUM(hours),0) FROM project_task_work WHERE task_id =ANY(%s) GROUP BY task_id",(ids,))
|
||||
hours = dict(cr.fetchall())
|
||||
res = {}
|
||||
for task in self.browse(cr, uid, ids, context=context):
|
||||
res[task.id] = {}
|
||||
res[task.id]['effective_hours'] = hours.get(task.id, 0.0)
|
||||
res[task.id]['total_hours'] = task.remaining_hours + hours.get(task.id, 0.0)
|
||||
res[task.id] = {'effective_hours': hours.get(task.id, 0.0), 'total_hours': task.remaining_hours + hours.get(task.id, 0.0)}
|
||||
if (task.remaining_hours + hours.get(task.id, 0.0)):
|
||||
res[task.id]['progress'] = round(min(100.0 * hours.get(task.id, 0.0) / res[task.id]['total_hours'], 100),2)
|
||||
if hours.get(task.id, 0.0) > res[task.id]['total_hours']:
|
||||
res[task.id]['progress'] = round(100 - (max(100.0 * hours.get(task.id, 0.0) / res[task.id]['total_hours'], 100)) % 100, 2)
|
||||
else:
|
||||
res[task.id]['progress'] = round(min(100.0 * hours.get(task.id, 0.0) / res[task.id]['total_hours'], 100),2)
|
||||
else:
|
||||
res[task.id]['progress'] = 0.0
|
||||
if task.state in ('done','cancel'):
|
||||
|
|
|
@ -337,7 +337,7 @@
|
|||
<field name="delegated_user_id" invisible="context.get('show_delegated', True)"/>
|
||||
<field name="planned_hours" widget="float_time" />
|
||||
<field name="total_hours" widget="float_time"/>
|
||||
<field name="remaining_hours" widget="float_time" avg="Remaining Hours" invisible="context.get('set_visible',False)"/>
|
||||
<field name="remaining_hours" widget="float_time" sum="Remaining Hours" invisible="context.get('set_visible',False)"/>
|
||||
<field name="date_deadline" invisible="context.get('set_visible',False)"/>
|
||||
<field name="type" groups="base.group_extended" invisible="context.get('set_visible',False)"/>
|
||||
<field name="date_start" invisible="1"/>
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
<group colspan="4" col="6" attrs="{'invisible':[('target_project','=','all')]}">
|
||||
<field name="project_id"/>
|
||||
</group>
|
||||
<separator colspan="4"/>
|
||||
<group colspan="4" col="6"> <!-- Improve me -->
|
||||
<button icon="gtk-cancel" special="cancel" string="_Cancel"/>
|
||||
<button icon="gtk-ok" name="check_selection" string="_Compute" type="object"/>
|
||||
|
|
|
@ -111,8 +111,8 @@
|
|||
<button name="do_open" states="pending,draft" string="Start Task" type="object" icon="gtk-execute"/>
|
||||
<button name="do_reopen" states="done,cancelled" string="Reactivate" type="object" icon="gtk-convert"/>
|
||||
<button name="do_pending" states="open" string="Pending" type="object" icon="gtk-media-pause"/>
|
||||
<button groups="base.group_extended" name="%(project.wizard_delegate_task)d" states="pending,open" string="Delegate" type="action" icon="gtk-sort-descending"/>
|
||||
<button name="%(project.wizard_close_task)d" states="pending,open" string="Done" type="action" icon="gtk-jump-to"/>
|
||||
<button groups="base.group_extended" name="%(project.action_project_task_delegate)d" states="pending,open" string="Delegate" type="action" icon="gtk-sort-descending"/>
|
||||
<button name="%(project.action_project_close_task)d" states="pending,open" string="Done" type="action" icon="gtk-jump-to"/>
|
||||
<button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel"/>
|
||||
|
||||
</group>
|
||||
|
|
|
@ -7,20 +7,20 @@ 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:25+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"PO-Revision-Date: 2010-05-05 06:46+0000\n"
|
||||
"Last-Translator: Wojtek Kubiak <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-04-17 03:54+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-05-06 04:03+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: report_purchase
|
||||
#: field:report.purchase.order.category,price_average:0
|
||||
#: field:report.purchase.order.product,price_average:0
|
||||
msgid "Average Price"
|
||||
msgstr "Cena przeciętna"
|
||||
msgstr "Średnia cena"
|
||||
|
||||
#. module: report_purchase
|
||||
#: field:report.purchase.order.category,state:0
|
||||
|
@ -49,7 +49,7 @@ msgstr "Zakupy wg produktów"
|
|||
#. module: report_purchase
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
|
||||
|
||||
#. module: report_purchase
|
||||
#: model:ir.ui.menu,name:report_purchase.next_id_75
|
||||
|
|
|
@ -151,7 +151,7 @@ class resource_resource(osv.osv):
|
|||
'name' : fields.char("Name", size=64, required=True ),
|
||||
'code': fields.char('Code', size=16),
|
||||
'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the resource record without removing it."),
|
||||
'company_id' : fields.many2one('res.company', 'Company', required=True),
|
||||
'company_id' : fields.many2one('res.company', 'Company', required=False),
|
||||
'resource_type': fields.selection([('user','Human'),('material','Material')], 'Resource Type', required=True),
|
||||
'user_id' : fields.many2one('res.users', 'User', help='Related user name for the resource to manage its access.'),
|
||||
'time_efficiency' : fields.float('Efficiency factor', size=8, required=True, help="This field depict the efficiency of the resource to complete tasks. e.g resource put alone on a phase of 5 days with 5 tasks assigned to him, will show a load of 100% for this phase by default, but if we put a efficency of 200%, then his load will only be 50%."),
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
'scrum_view.xml',
|
||||
'process/scrum_process.xml',
|
||||
'wizard/scrum_backlog_sprint_view.xml',
|
||||
'wizard/scrum_backlog_merger_view.xml',
|
||||
],
|
||||
'demo_xml': ['scrum_demo.xml'],
|
||||
'installable': True,
|
||||
|
|
|
@ -18,11 +18,10 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
import netsvc
|
||||
from osv import fields, osv, orm
|
||||
|
||||
from osv import fields, osv, orm
|
||||
from mx import DateTime
|
||||
import re
|
||||
|
||||
|
@ -35,8 +34,8 @@ class scrum_project(osv.osv):
|
|||
}
|
||||
_defaults = {
|
||||
'product_owner_id': lambda self,cr,uid,context={}: uid,
|
||||
'sprint_size': lambda *a: 15,
|
||||
'scrum': lambda *a: 1
|
||||
'sprint_size': 15,
|
||||
'scrum': 1
|
||||
}
|
||||
scrum_project()
|
||||
|
||||
|
@ -93,25 +92,50 @@ class scrum_sprint(osv.osv):
|
|||
return True
|
||||
_columns = {
|
||||
'name' : fields.char('Sprint Name', required=True, size=64),
|
||||
'active' : fields.boolean('Active', help="If Active field is set to true, it will allow you to select sprint from task list view. "),
|
||||
'date_start': fields.date('Starting Date', required=True),
|
||||
'date_stop': fields.date('Ending Date', required=True),
|
||||
'project_id': fields.many2one('project.project', 'Project', required=True, domain=[('scrum','=',1)]),
|
||||
'project_id': fields.many2one('project.project', 'Project', domain=[('scrum','=',1)], help="If you have [?] in the project name, it means there are no analytic account linked to this project."),
|
||||
'product_owner_id': fields.many2one('res.users', 'Product Owner', required=True),
|
||||
'scrum_master_id': fields.many2one('res.users', 'Scrum Master', required=True),
|
||||
'meeting_ids': fields.one2many('scrum.meeting', 'sprint_id', 'Daily Scrum'),
|
||||
'review': fields.text('Sprint Review'),
|
||||
'retrospective': fields.text('Sprint Retrospective'),
|
||||
'backlog_ids': fields.one2many('scrum.product.backlog', 'sprint_id', 'Sprint Backlog'),
|
||||
'progress': fields.function(_calc_progress, method=True, string='Progress (0-100)'),
|
||||
'effective_hours': fields.function(_calc_effective, method=True, string='Effective hours'),
|
||||
'planned_hours': fields.function(_calc_planned, method=True, string='Planned Hours'),
|
||||
'expected_hours': fields.function(_calc_expected, method=True, string='Expected Hours'),
|
||||
'progress': fields.function(_calc_progress, method=True, string='Progress (0-100)', help="Computed as: Time Spent / Total Time."),
|
||||
'effective_hours': fields.function(_calc_effective, method=True, string='Effective hours', help="Computed using the sum of the task work done."),
|
||||
'planned_hours': fields.function(_calc_planned, method=True, string='Planned Hours', help='Estimated time to do the task, usually set by the project manager when the task is in draft state.'),
|
||||
'expected_hours': fields.function(_calc_expected, method=True, string='Expected Hours', help='Estimated time to do the task.'),
|
||||
'state': fields.selection([('draft','Draft'),('open','Open'),('pending','Pending'),('cancel','Cancelled'),('done','Done')], 'State', required=True),
|
||||
}
|
||||
_defaults = {
|
||||
'state': lambda *a: 'draft',
|
||||
'date_start' : lambda *a:time.strftime('%Y-%m-%d'),
|
||||
'state': 'draft',
|
||||
'date_start' : time.strftime('%Y-%m-%d'),
|
||||
'active': 1,
|
||||
}
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
"""Overrides orm copy method
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of case’s IDs
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
if default is None:
|
||||
default = {}
|
||||
data = self.read(cr, uid, id, context=context)
|
||||
data.pop('backlog_ids')
|
||||
data.pop('meeting_ids')
|
||||
data.update({'scrum_master_id': data['scrum_master_id'][0],
|
||||
'product_owner_id': data['product_owner_id'][0],
|
||||
'project_id': data['project_id'][0],
|
||||
})
|
||||
return self.create(cr, uid, data, context=context)
|
||||
|
||||
|
||||
def onchange_project_id(self, cr, uid, ids, project_id):
|
||||
v = {}
|
||||
if project_id:
|
||||
|
@ -178,6 +202,8 @@ class scrum_product_backlog(osv.osv):
|
|||
return True
|
||||
def button_close(self, cr, uid, ids, context={}):
|
||||
self.write(cr, uid, ids, {'state':'done'}, context=context)
|
||||
for backlog in self.browse(cr, uid, ids, context=context):
|
||||
self.pool.get('project.task').write(cr, uid, [i.id for i in backlog.tasks_id], {'state': 'done'})
|
||||
return True
|
||||
def button_pending(self, cr, uid, ids, context={}):
|
||||
self.write(cr, uid, ids, {'state':'pending'}, context=context)
|
||||
|
@ -186,23 +212,23 @@ class scrum_product_backlog(osv.osv):
|
|||
_columns = {
|
||||
'name' : fields.char('Feature', size=64, required=True),
|
||||
'note' : fields.text('Note'),
|
||||
'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the product backlog without removing it."),
|
||||
'project_id': fields.many2one('project.project', 'Project', required=True, domain=[('scrum','=',1)]),
|
||||
'active' : fields.boolean('Active', help="If Active field is set to true, it will allow you to hide the product backlog without removing it."),
|
||||
'project_id': fields.many2one('project.project', 'Project', required=True, domain=[('scrum','=',1)], help="If you have [?] in the project name, it means there are no analytic account linked to this project."),
|
||||
'user_id': fields.many2one('res.users', 'Responsible'),
|
||||
'sprint_id': fields.many2one('scrum.sprint', 'Sprint'),
|
||||
'sequence' : fields.integer('Sequence', help="Gives the sequence order when displaying a list of product backlog."),
|
||||
'tasks_id': fields.one2many('project.task', 'product_backlog_id', 'Tasks Details'),
|
||||
'state': fields.selection([('draft','Draft'),('open','Open'),('pending','Pending'),('done','Done'),('cancel','Cancelled')], 'State', required=True),
|
||||
'progress': fields.function(_calc_progress, method=True, string='Progress'),
|
||||
'effective_hours': fields.function(_calc_effective, method=True, string='Effective hours'),
|
||||
'planned_hours': fields.function(_calc_planned, method=True, string='Planned Hours'),
|
||||
'expected_hours': fields.float('Expected Hours'),
|
||||
'progress': fields.function(_calc_progress, method=True, string='Progress', help="Computed as: Time Spent / Total Time."),
|
||||
'effective_hours': fields.function(_calc_effective, method=True, string='Effective hours', help="Computed using the sum of the task work done."),
|
||||
'planned_hours': fields.function(_calc_planned, method=True, string='Planned Hours', help='Estimated time to do the task, usually set by the project manager when the task is in draft state.'),
|
||||
'expected_hours': fields.float('Expected Hours', help='Estimated time to do the task.'),
|
||||
'date':fields.datetime("Created Date"),
|
||||
}
|
||||
_defaults = {
|
||||
'state': lambda *a: 'draft',
|
||||
'active': lambda *a: 1,
|
||||
'user_id': lambda self,cr,uid,context: uid,
|
||||
'state': 'draft',
|
||||
'active': 1,
|
||||
'user_id': lambda self, cr, uid, context: uid,
|
||||
}
|
||||
_order = "sequence"
|
||||
scrum_product_backlog()
|
||||
|
@ -234,8 +260,9 @@ scrum_task()
|
|||
class scrum_meeting(osv.osv):
|
||||
_name = 'scrum.meeting'
|
||||
_description = 'Scrum Meeting'
|
||||
_order = 'date desc'
|
||||
_columns = {
|
||||
'name' : fields.char('Meeting Name', size=64, required=True),
|
||||
'name' : fields.char('Meeting Name', size=64),
|
||||
'date': fields.date('Meeting Date', required=True),
|
||||
'sprint_id': fields.many2one('scrum.sprint', 'Sprint', required=True),
|
||||
'project_id': fields.many2one('project.project', 'Project'),
|
||||
|
@ -249,7 +276,7 @@ class scrum_meeting(osv.osv):
|
|||
# TODO: Find the right sprint thanks to users and date
|
||||
#
|
||||
_defaults = {
|
||||
'date' : lambda *a:time.strftime('%Y-%m-%d'),
|
||||
'date' : time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
scrum_meeting()
|
||||
|
||||
|
|
|
@ -67,12 +67,13 @@
|
|||
<field name="user_id" select="1"/>
|
||||
<field name="sequence"/>
|
||||
<field name="date"/>
|
||||
<field name="active" select="1"/>
|
||||
<field name="progress" widget="progressbar"/>
|
||||
<newline/>
|
||||
<group colspan="6" col="8">
|
||||
<field name="effective_hours" widget="float_time"/>
|
||||
<field name="planned_hours" widget="float_time"/>
|
||||
<field name="expected_hours" widget="float_time"/>
|
||||
<field name="progress" widget="progressbar"/>
|
||||
|
||||
</group>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
|
@ -189,8 +190,11 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Scrum Sprint">
|
||||
<field name="name" select="1"/>
|
||||
<field name="project_id" on_change="onchange_project_id(project_id)"/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="name" select="1"/>
|
||||
<field name="project_id" on_change="onchange_project_id(project_id)"/>
|
||||
<field name="active"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Sprint Info">
|
||||
<group colspan="2" col="2">
|
||||
|
@ -288,7 +292,6 @@
|
|||
<field name="arch" type="xml">
|
||||
<tree string="Scrum Sprint">
|
||||
<field name="date"/>
|
||||
<field name="name"/>
|
||||
<field name="sprint_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
@ -300,17 +303,16 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Scrum Sprint">
|
||||
<group colspan="4" col="6">
|
||||
<field name="name" select="1"/>
|
||||
<field name="date"/>
|
||||
<field name="sprint_id"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Scrum Meeting">
|
||||
<separator colspan="4" string="What have you accomplished since yesterday ?"/>
|
||||
<separator colspan="4" string="What did you do since the last meeeting?"/>
|
||||
<field colspan="4" name="question_yesterday" nolabel="1"/>
|
||||
<separator colspan="4" string="What are you working on today ?"/>
|
||||
<separator colspan="4" string="What do you plan to do till the next meeting?"/>
|
||||
<field colspan="4" name="question_today" nolabel="1"/>
|
||||
<separator colspan="4" string="Is there anything blocking you ?"/>
|
||||
<separator colspan="4" string="Are there anything blocking you?"/>
|
||||
<field colspan="4" name="question_blocks" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Optional Info">
|
||||
|
@ -333,10 +335,9 @@
|
|||
<field name="arch" type="xml">
|
||||
<search string="Scrum Sprint">
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="terp-project" string="Daily" domain="[('date','=',time.strftime('%%Y%%m%%d'))]" help="Daily Meetings"/>
|
||||
<filter name="scrum_daily" icon="terp-project" string="Daily" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]" help="Daily Meetings"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name"/>
|
||||
<field name="sprint_id">
|
||||
<field name="sprint_id" widget="selection">
|
||||
<filter icon="terp-project" string="Current" domain="[('sprint_id.state','in',('draft','open'))]" help="Current Sprints" default="1"/>
|
||||
</field>
|
||||
<field name="project_id" widget="selection"/>
|
||||
|
@ -356,6 +357,7 @@
|
|||
<field name="res_model">scrum.meeting</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'search_default_scrum_daily':1}</field>
|
||||
<field name="search_view_id" ref="view_scrum_meeting_search"/>
|
||||
</record>
|
||||
<menuitem sequence="30"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
import scrum_backlog_create_task
|
||||
import scrum_backlog_sprint
|
||||
import scrum_backlog_merger
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
|
|
@ -0,0 +1,101 @@
|
|||
# -*- 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 osv, fields
|
||||
from tools.translate import _
|
||||
|
||||
class scrum_backlog_merge(osv.osv_memory):
|
||||
_name = 'scrum.backlog.merge'
|
||||
_description = 'Merge Two Product Backlogs'
|
||||
_columns = {
|
||||
'project_id': fields.many2one('project.project', 'Project', domain=[('scrum','=',1)], help="If you have [?] in the project name, it means there are no analytic account linked to this project."),
|
||||
}
|
||||
|
||||
def check(self, cr, uid, ids, context=None):
|
||||
backlog_obj = self.pool.get('scrum.product.backlog')
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
p_list = []
|
||||
if context is None:
|
||||
context = {}
|
||||
#If only one product backlog selected for merging then show an exception
|
||||
if len(context['active_ids']) < 2:
|
||||
raise osv.except_osv(_('Warning'),_('Please select at least two Product Backlogs.'))
|
||||
#If any of the backlog state is done then it will show an exception
|
||||
for backlogs in backlog_obj.browse(cr, uid, context['active_ids'], context=context):
|
||||
if backlogs.state == "done":
|
||||
raise osv.except_osv(_('Warning'),_('Merging is only allowed on draft Product Backlogs.'))
|
||||
p_list.append(backlogs.project_id.id)
|
||||
#For checking whether project id's are different or same.
|
||||
if len(set(p_list)) != 1:
|
||||
context.update({'diff_projects': True})
|
||||
model_data_ids = mod_obj.search(cr, uid,[('model','=','ir.ui.view'),('name','=','scrum_merge_project_id_view')], context=context)
|
||||
resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
|
||||
return {
|
||||
'name': _('Use Model'),
|
||||
'context': context,
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'scrum.backlog.merge',
|
||||
'views': [(resource_id,'form')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
}
|
||||
else:
|
||||
self.do_merge(cr, uid, ids, context=context)
|
||||
return{}
|
||||
|
||||
def do_merge(self, cr, uid, ids, context=None):
|
||||
backlog_obj = self.pool.get('scrum.product.backlog')
|
||||
task_obj = self.pool.get('project.task')
|
||||
task_lines = []
|
||||
new_exp_hour = []
|
||||
new_note = '===========Merged Features==========='
|
||||
new_description = '===========Merged Description==========='
|
||||
if context is None:
|
||||
context = {}
|
||||
#This will check product backlog's project id if different then will accept a new id provided by the user.
|
||||
if 'diff_projects' in context:
|
||||
data = self.read(cr, uid, ids, [])[0]
|
||||
new_project_id = data['project_id']
|
||||
else:
|
||||
p_id = backlog_obj.read(cr, uid, context['active_id'], ['project_id'])
|
||||
new_project_id = p_id['project_id'][0]
|
||||
#To merge note and description of backlogs
|
||||
for backlogs in backlog_obj.browse(cr, uid, context['active_ids'], context=context):
|
||||
new_note += '\n--' + backlogs.name
|
||||
new_description += '\n\n--' + str(backlogs.note)
|
||||
new_exp_hour.append(backlogs.expected_hours)
|
||||
for line in backlogs.tasks_id:
|
||||
task_lines.append(line.id)
|
||||
id_b = backlog_obj.create(cr, uid, {
|
||||
'name': 'Merged Product Backlog', 'note': new_note + '\n\n' + new_description, 'project_id': new_project_id,
|
||||
'expected_hours': round(max(new_exp_hour))
|
||||
}, context=context)
|
||||
#To assing a new product backlog to merged tasks
|
||||
for tasks in task_obj.browse(cr, uid, task_lines, context=context):
|
||||
task_obj.copy(cr, uid, tasks.id, {'product_backlog_id': id_b})
|
||||
# This is to change the status of the old product backlogs to done state
|
||||
for backlogs in backlog_obj.browse(cr, uid, context['active_ids'], context=context):
|
||||
backlog_obj.write(cr, uid, context['active_ids'], {'state':'done'}, context=context)
|
||||
return {}
|
||||
|
||||
scrum_backlog_merge()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,41 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="scrum_backlog_merge_view" model="ir.ui.view">
|
||||
<field name="name">Merger Product Backlogs</field>
|
||||
<field name="model">scrum.backlog.merge</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Merge Backlogs">
|
||||
<separator string="Are you sure you want to merge these Backlogs?" colspan="4"/>
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="check" string="Merge Backlogs" type="object" icon="gtk-convert"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window name="Merge Product Backlogs"
|
||||
res_model="scrum.backlog.merge"
|
||||
src_model="scrum.product.backlog"
|
||||
view_mode="form"
|
||||
target="new"
|
||||
key2="client_action_multi"
|
||||
id="action_scrum_backlog_merge"/>
|
||||
|
||||
<record id="scrum_merge_project_id_view" model="ir.ui.view">
|
||||
<field name="name">Merger Product Backlogs</field>
|
||||
<field name="model">scrum.backlog.merge</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Select Project">
|
||||
<field name="project_id"/>
|
||||
<separator string="Slelect the Project" colspan="4"/>
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="do_merge" string="ok" type="object" icon="gtk-convert"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -3,28 +3,29 @@
|
|||
<data>
|
||||
|
||||
<record id="view_scrum_backlog_to_sprint" model="ir.ui.view">
|
||||
<field name="name">backlog.assign.sprint.form</field>
|
||||
<field name="model">backlog.assign.sprint</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Assign Sprint">
|
||||
<group col="4" colspan="6">
|
||||
<field name="sprint_id" colspan="2"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<separator colspan="2"/>
|
||||
<newline/>
|
||||
<group>
|
||||
<field name="state_open" colspan="1"/>
|
||||
<field name="convert_to_task" colspan="1"/> </group>
|
||||
<separator colspan="4"/>
|
||||
<group col="2" colspan="4">
|
||||
<button special="cancel" string="Cancel" icon='gtk-cancel'/>
|
||||
<button name="assign_sprint" string="Assign Sprint" colspan="1" type="object" icon="gtk-execute"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<field name="name">backlog.assign.sprint.form</field>
|
||||
<field name="model">backlog.assign.sprint</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Assign Sprint">
|
||||
<group col="4" colspan="6">
|
||||
<field name="sprint_id" colspan="2"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<separator colspan="2"/>
|
||||
<newline/>
|
||||
<group>
|
||||
<field name="state_open" colspan="1"/>
|
||||
<field name="convert_to_task" colspan="1"/>
|
||||
</group>
|
||||
<separator colspan="4"/>
|
||||
<group col="2" colspan="4">
|
||||
<button special="cancel" string="Cancel" icon='gtk-cancel'/>
|
||||
<button name="assign_sprint" string="Assign Sprint" colspan="1" type="object" icon="gtk-execute"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_scrum_backlog_to_sprint" model="ir.actions.act_window">
|
||||
<field name="name">Assign Sprint</field>
|
||||
|
|
|
@ -7,13 +7,13 @@ msgstr ""
|
|||
"Project-Id-Version: OpenERP Server 5.0.6\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-03-29 01:06+0000\n"
|
||||
"PO-Revision-Date: 2010-05-06 03:59+0000\n"
|
||||
"Last-Translator: digitalsatori <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-04-17 03:56+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-05-06 04:03+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: stock
|
||||
|
@ -141,7 +141,7 @@ msgstr "业务伙伴"
|
|||
#. module: stock
|
||||
#: help:product.product,track_incoming:0
|
||||
msgid "Force to use a Production Lot during receptions"
|
||||
msgstr "接收强制的生产批次"
|
||||
msgstr "在接收时强制使用生产批号"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.move,move_history_ids:0
|
||||
|
@ -184,7 +184,7 @@ msgstr "状态"
|
|||
#. module: stock
|
||||
#: field:stock.location,stock_real_value:0
|
||||
msgid "Real Stock Value"
|
||||
msgstr "实时库存值"
|
||||
msgstr "实际库存额"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.move:0
|
||||
|
@ -201,7 +201,7 @@ msgstr "可用"
|
|||
#. module: stock
|
||||
#: view:stock.move:0
|
||||
msgid "Make Parcel"
|
||||
msgstr "打小包"
|
||||
msgstr "装箱"
|
||||
|
||||
#. module: stock
|
||||
#: wizard_view:stock.partial_picking,end2:0
|
||||
|
@ -211,27 +211,27 @@ msgstr "包装结果"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_QUIT"
|
||||
msgstr "退出"
|
||||
msgstr "STOCK_QUIT"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.warehouse,lot_output_id:0
|
||||
msgid "Location Output"
|
||||
msgstr "库位出"
|
||||
msgstr "输出库存位"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_GOTO_TOP"
|
||||
msgstr "顶"
|
||||
msgstr "STOCK_GOTO_TOP"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_ABOUT"
|
||||
msgstr "关于"
|
||||
msgstr "STOCK_ABOUT"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-hr"
|
||||
msgstr "人力资源"
|
||||
msgstr "terp-hr"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.location,usage:0
|
||||
|
@ -241,7 +241,7 @@ msgstr "库位类型"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-purchase"
|
||||
msgstr "采购"
|
||||
msgstr "terp-purchase"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
|
@ -256,12 +256,12 @@ msgstr "["
|
|||
#. module: stock
|
||||
#: view:stock.picking:0
|
||||
msgid "Products Sent"
|
||||
msgstr "产品发出"
|
||||
msgstr "已发出产品"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_GOTO_FIRST"
|
||||
msgstr "开始"
|
||||
msgstr "STOCK_GOTO_FIRST"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.act_window,name:stock.action_picking_tree6
|
||||
|
@ -272,7 +272,7 @@ msgstr "内部调拨"
|
|||
#. module: stock
|
||||
#: field:stock.move,product_packaging:0
|
||||
msgid "Packaging"
|
||||
msgstr "包装"
|
||||
msgstr "装箱"
|
||||
|
||||
#. module: stock
|
||||
#: rml:stock.picking.list:0
|
||||
|
@ -300,12 +300,12 @@ msgstr "客户退货"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_FLOPPY"
|
||||
msgstr "软驱"
|
||||
msgstr "STOCK_FLOPPY"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.production.lot.revision:0
|
||||
msgid "Production Lot Revisions"
|
||||
msgstr "生产批次修改"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.location:0
|
||||
|
@ -321,7 +321,7 @@ msgstr "库位名称"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_UNINDENT"
|
||||
msgstr "不缩进"
|
||||
msgstr "STOCK_UNINDENT"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.move:0
|
||||
|
@ -349,12 +349,12 @@ msgstr "客户"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_UNDERLINE"
|
||||
msgstr "下划线"
|
||||
msgstr "STOCK_UNDERLINE"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.picking.move.wizard:0
|
||||
msgid "Move Lines"
|
||||
msgstr "调拨线路"
|
||||
msgstr "凭证明细"
|
||||
|
||||
#. module: stock
|
||||
#: wizard_field:stock.fill_inventory,init,recursive:0
|
||||
|
@ -385,22 +385,22 @@ msgstr "跟踪明细"
|
|||
#. module: stock
|
||||
#: field:stock.location,child_ids:0
|
||||
msgid "Contains"
|
||||
msgstr "含"
|
||||
msgstr "包含"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_BOLD"
|
||||
msgstr "粗体"
|
||||
msgstr "STOCK_BOLD"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-graph"
|
||||
msgstr "图像"
|
||||
msgstr "terp-graph"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_PREFERENCES"
|
||||
msgstr "偏爱"
|
||||
msgstr "STOCK_PREFERENCES"
|
||||
|
||||
#. module: stock
|
||||
#: rml:lot.location:0
|
||||
|
@ -434,12 +434,12 @@ msgstr "库存层1"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_MEDIA_REWIND"
|
||||
msgstr "倒回"
|
||||
msgstr "STOCK_MEDIA_REWIND"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.warehouse,lot_input_id:0
|
||||
msgid "Location Input"
|
||||
msgstr "库位进"
|
||||
msgstr "输入库位"
|
||||
|
||||
#. module: stock
|
||||
#: view:res.partner:0
|
||||
|
@ -475,7 +475,7 @@ msgstr "产品ID"
|
|||
#. module: stock
|
||||
#: view:res.partner:0
|
||||
msgid "Sales & Purchases"
|
||||
msgstr "销售&采购"
|
||||
msgstr "销售与采购"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.invoice_onshipping,init,type:0
|
||||
|
@ -490,12 +490,12 @@ msgstr "盘存库位"
|
|||
#. module: stock
|
||||
#: help:product.product,track_production:0
|
||||
msgid "Force to use a Production Lot during production order"
|
||||
msgstr "生产单强制的生产批次"
|
||||
msgstr "在录入生产单时强制使用生产批号"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_CUT"
|
||||
msgstr "剪贴"
|
||||
msgstr "STOCK_CUT"
|
||||
|
||||
#. module: stock
|
||||
#: help:product.template,property_stock_inventory:0
|
||||
|
@ -513,7 +513,7 @@ msgstr "用于记录出库价值科目"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_ZOOM_FIT"
|
||||
msgstr "放大到适合"
|
||||
msgstr "STOCK_ZOOM_FIT"
|
||||
|
||||
#. module: stock
|
||||
#: help:product.category,property_stock_journal:0
|
||||
|
@ -540,7 +540,7 @@ msgstr "库存库位"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_SAVE_AS"
|
||||
msgstr "另存到"
|
||||
msgstr "STOCK_SAVE_AS"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.model,name:stock.model_stock_report_prodlots
|
||||
|
@ -550,7 +550,7 @@ msgstr "库存生产批次报表"
|
|||
#. module: stock
|
||||
#: field:stock.location,stock_virtual:0
|
||||
msgid "Virtual Stock"
|
||||
msgstr "虚拟库存"
|
||||
msgstr "账面库存"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,usage:0
|
||||
|
@ -560,7 +560,7 @@ msgstr "视图"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_DIALOG_ERROR"
|
||||
msgstr "错误"
|
||||
msgstr "STOCK_DIALOG_ERROR"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.location,parent_left:0
|
||||
|
@ -575,12 +575,12 @@ msgstr "最近盘存日期"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_INDEX"
|
||||
msgstr "索引"
|
||||
msgstr "STOCK_INDEX"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_GOTO_BOTTOM"
|
||||
msgstr "底"
|
||||
msgstr "STOCK_GOTO_BOTTOM"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.act_window,name:stock.action_picking_form
|
||||
|
@ -614,27 +614,27 @@ msgstr "跟踪批次"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_GO_FORWARD"
|
||||
msgstr "向前"
|
||||
msgstr "STOCK_GO_FORWARD"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.production.lot.revision,author_id:0
|
||||
msgid "Author"
|
||||
msgstr "建立者"
|
||||
msgstr "作者"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_UNDELETE"
|
||||
msgstr "恢复"
|
||||
msgstr "STOCK_UNDELETE"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_EXECUTE"
|
||||
msgstr "执行"
|
||||
msgstr "STOCK_EXECUTE"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_DIALOG_QUESTION"
|
||||
msgstr "疑问"
|
||||
msgstr "STOCK_DIALOG_QUESTION"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,chained_auto_packing:0
|
||||
|
@ -664,12 +664,12 @@ msgstr "跟踪号/序号"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_SELECT_FONT"
|
||||
msgstr "选择字体"
|
||||
msgstr "STOCK_SELECT_FONT"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_PASTE"
|
||||
msgstr "粘贴"
|
||||
msgstr "STOCK_PASTE"
|
||||
|
||||
#. module: stock
|
||||
#: model:stock.location,name:stock.stock_location_locations_partner
|
||||
|
@ -680,7 +680,7 @@ msgstr "业务伙伴库位"
|
|||
#: help:stock.move,tracking_id:0
|
||||
msgid ""
|
||||
"Tracking lot is the code that will be put on the logistical unit/pallet"
|
||||
msgstr "跟踪批次是代码将放入逻辑单位/托板"
|
||||
msgstr "跟踪批次号是帖在货运包装或托板上的代码"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.tracking:0
|
||||
|
@ -695,7 +695,7 @@ msgstr "欧洲客户"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-stock"
|
||||
msgstr "库存"
|
||||
msgstr "terp-stock"
|
||||
|
||||
#. module: stock
|
||||
#: rml:stock.picking.list:0
|
||||
|
@ -705,12 +705,12 @@ msgstr "包装单:"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_MEDIA_RECORD"
|
||||
msgstr "记录"
|
||||
msgstr "STOCK_MEDIA_RECORD"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.picking:0
|
||||
msgid "Calendar View"
|
||||
msgstr "日程表视图"
|
||||
msgstr "日历视图"
|
||||
|
||||
#. module: stock
|
||||
#: wizard_field:stock.location.products,init,from_date:0
|
||||
|
@ -725,7 +725,7 @@ msgstr "重量"
|
|||
#. module: stock
|
||||
#: rml:stock.picking.list:0
|
||||
msgid "Non Assigned Products:"
|
||||
msgstr "没指定产品"
|
||||
msgstr "未分派的产品"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.picking:0
|
||||
|
@ -735,12 +735,12 @@ msgstr "发票控制"
|
|||
#. module: stock
|
||||
#: model:ir.model,name:stock.model_stock_production_lot_revision
|
||||
msgid "Production lot revisions"
|
||||
msgstr "生产批次次修订"
|
||||
msgstr "生产批次修订"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.picking:0
|
||||
msgid "Packing Done"
|
||||
msgstr "打包装完成"
|
||||
msgstr "装箱完成"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.move,state:0
|
||||
|
@ -754,7 +754,7 @@ msgstr "等待中"
|
|||
#: model:ir.ui.menu,name:stock.menu_action_picking_tree7
|
||||
#: model:ir.ui.menu,name:stock.menu_picking_waiting
|
||||
msgid "Available Packing"
|
||||
msgstr "可包装"
|
||||
msgstr ""
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.model,name:stock.model_stock_warehouse
|
||||
|
@ -765,7 +765,7 @@ msgstr "仓库"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-report"
|
||||
msgstr "报表"
|
||||
msgstr "terp-report"
|
||||
|
||||
#. module: stock
|
||||
#: wizard_field:stock.invoice_onshipping,init,type:0
|
||||
|
@ -780,12 +780,12 @@ msgstr "一般IT供应商"
|
|||
#. module: stock
|
||||
#: model:ir.actions.report.xml,name:stock.report_location_overview_all
|
||||
msgid "Location Content (With children)"
|
||||
msgstr "货物内容(子库位)"
|
||||
msgstr "库存地点(包括子项)"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_FILE"
|
||||
msgstr "文件"
|
||||
msgstr "STOCK_FILE"
|
||||
|
||||
#. module: stock
|
||||
#: field:report.stock.lines.date,id:0
|
||||
|
@ -795,35 +795,35 @@ msgstr "盘存明细ID"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_EDIT"
|
||||
msgstr "编辑"
|
||||
msgstr "STOCK_EDIT"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_CONNECT"
|
||||
msgstr "连接"
|
||||
msgstr "STOCK_CONNECT"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.act_window,name:stock.action_picking_all
|
||||
#: model:ir.ui.menu,name:stock.menu_action_picking_all
|
||||
#: wizard_field:stock.picking.make,init,pickings:0
|
||||
msgid "Packing"
|
||||
msgstr "包装"
|
||||
msgstr "装箱"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_GO_DOWN"
|
||||
msgstr "向下"
|
||||
msgstr "STOCK_GO_DOWN"
|
||||
|
||||
#. module: stock
|
||||
#: field:res.partner,property_stock_customer:0
|
||||
#: selection:stock.location,usage:0
|
||||
msgid "Customer Location"
|
||||
msgstr "客户库位"
|
||||
msgstr "客户存货地点"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_OK"
|
||||
msgstr "好"
|
||||
msgstr "STOCK_OK"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.act_window,name:stock.action_picking_tree9
|
||||
|
@ -876,7 +876,7 @@ msgstr "所有库存调拨"
|
|||
#. module: stock
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "无效XML视图结构!"
|
||||
msgstr "描述视图结构的XML文件无效"
|
||||
|
||||
#. module: stock
|
||||
#: field:res.partner,property_stock_supplier:0
|
||||
|
@ -887,7 +887,7 @@ msgstr "供货商库位"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_HELP"
|
||||
msgstr "帮助"
|
||||
msgstr "STOCK_HELP"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.move,priority:0
|
||||
|
@ -897,12 +897,12 @@ msgstr "紧急"
|
|||
#. module: stock
|
||||
#: help:product.category,property_stock_account_input_categ:0
|
||||
msgid "This account will be used to value the input stock"
|
||||
msgstr "用于记录入库的价值科目"
|
||||
msgstr "此科目用于记录入库库存金额"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_DIALOG_INFO"
|
||||
msgstr "信息"
|
||||
msgstr "STOCK_DIALOG_INFO"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.move,date:0
|
||||
|
@ -928,7 +928,7 @@ msgstr "已创建存货调拨"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_GO_BACK"
|
||||
msgstr "后退"
|
||||
msgstr "STOCK_GO_BACK"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.picking,invoice_state:0
|
||||
|
@ -944,7 +944,7 @@ msgstr "对应库位属性"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_JUSTIFY_FILL"
|
||||
msgstr "两端对齐"
|
||||
msgstr "STOCK_JUSTIFY_FILL"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.move:0
|
||||
|
@ -965,7 +965,7 @@ msgstr "分配方法"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-administration"
|
||||
msgstr "管理员"
|
||||
msgstr "terp-administration"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.warehouse,lot_stock_id:0
|
||||
|
@ -975,12 +975,12 @@ msgstr "库位库存"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_APPLY"
|
||||
msgstr "应用"
|
||||
msgstr "STOCK_APPLY"
|
||||
|
||||
#. module: stock
|
||||
#: wizard_view:stock.partial_picking,end2:0
|
||||
msgid "The packing has been successfully made !"
|
||||
msgstr "这包装创建成功!"
|
||||
msgstr "装箱已完成!"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.move,address_id:0
|
||||
|
@ -997,23 +997,23 @@ msgstr "定期盘存"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-crm"
|
||||
msgstr "客户关系管理"
|
||||
msgstr "terp-crm"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_STRIKETHROUGH"
|
||||
msgstr "加删除线"
|
||||
msgstr "STOCK_STRIKETHROUGH"
|
||||
|
||||
#. module: stock
|
||||
#: rml:lot.stock.overview_all:0
|
||||
#: field:stock.incoterms,code:0
|
||||
msgid "Code"
|
||||
msgstr "代码"
|
||||
msgstr "编码"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-partner"
|
||||
msgstr "业务伙伴"
|
||||
msgstr "terp-partner"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.act_window,name:stock.action_inventory_form_draft
|
||||
|
@ -1060,12 +1060,12 @@ msgstr "信息"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_MISSING_IMAGE"
|
||||
msgstr "图像"
|
||||
msgstr "STOCK_MISSING_IMAGE"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_SPELL_CHECK"
|
||||
msgstr "检查"
|
||||
msgstr "STOCK_SPELL_CHECK"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.model,name:stock.model_stock_tracking
|
||||
|
@ -1082,7 +1082,7 @@ msgstr "单价"
|
|||
#. module: stock
|
||||
#: view:stock.picking:0
|
||||
msgid "Process Later"
|
||||
msgstr "最后处理"
|
||||
msgstr "稍候处理"
|
||||
|
||||
#. module: stock
|
||||
#: help:res.partner,property_stock_supplier:0
|
||||
|
@ -1115,7 +1115,7 @@ msgstr "可调拨"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_HARDDISK"
|
||||
msgstr "硬盘"
|
||||
msgstr "STOCK_HARDDISK"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.act_window,name:stock.act_relate_picking
|
||||
|
@ -1128,7 +1128,7 @@ msgstr "相关领料/提货"
|
|||
#: field:stock.picking.move.wizard,name:0
|
||||
#: field:stock.warehouse,name:0
|
||||
msgid "Name"
|
||||
msgstr "3"
|
||||
msgstr "名称"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.inventory.line:0
|
||||
|
@ -1159,7 +1159,7 @@ msgstr "包装单"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_COPY"
|
||||
msgstr "复制"
|
||||
msgstr "STOCK_COPY"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.invoice_onshipping,init,type:0
|
||||
|
@ -1180,7 +1180,7 @@ msgstr "出库科目"
|
|||
#. module: stock
|
||||
#: selection:stock.location,chained_auto_packing:0
|
||||
msgid "Automatic No Step Added"
|
||||
msgstr "自动没步骤增加"
|
||||
msgstr "自动,不加入步骤"
|
||||
|
||||
#. module: stock
|
||||
#: wizard_view:stock.location.products,init:0
|
||||
|
@ -1190,7 +1190,7 @@ msgstr "库存库位分析"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_CDROM"
|
||||
msgstr "光驱"
|
||||
msgstr "STOCK_CDROM"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.picking,invoice_state:0
|
||||
|
@ -1215,12 +1215,12 @@ msgstr "内部参考"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_REFRESH"
|
||||
msgstr "恢复"
|
||||
msgstr "STOCK_REFRESH"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_STOP"
|
||||
msgstr "停止"
|
||||
msgstr "STOCK_STOP"
|
||||
|
||||
#. module: stock
|
||||
#: wizard_view:stock.move.track,init:0
|
||||
|
@ -1230,27 +1230,27 @@ msgstr "跟踪调拨"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_FIND_AND_REPLACE"
|
||||
msgstr "替换"
|
||||
msgstr "STOCK_FIND_AND_REPLACE"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.picking:0
|
||||
msgid "Validate"
|
||||
msgstr "确认"
|
||||
msgstr "审核"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_DIALOG_WARNING"
|
||||
msgstr "警告"
|
||||
msgstr "STOCK_DIALOG_WARNING"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_ZOOM_IN"
|
||||
msgstr "缩小"
|
||||
msgstr "STOCK_ZOOM_IN"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_CONVERT"
|
||||
msgstr "修改"
|
||||
msgstr "STOCK_CONVERT"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.move,note:0
|
||||
|
@ -1284,27 +1284,27 @@ msgstr "产品"
|
|||
#. module: stock
|
||||
#: field:stock.picking,move_type:0
|
||||
msgid "Delivery Method"
|
||||
msgstr "交货方式"
|
||||
msgstr "运输方式"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.wizard,name:stock.partial_picking
|
||||
msgid "Partial packing"
|
||||
msgstr "部分包装"
|
||||
msgstr "部分装箱"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-calendar"
|
||||
msgstr "日程表"
|
||||
msgstr "terp-calendar"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_ITALIC"
|
||||
msgstr "斜体"
|
||||
msgstr "STOCK_ITALIC"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_YES"
|
||||
msgstr "是"
|
||||
msgstr "STOCK_YES"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.act_window,name:stock.act_stock_picking_move_wizard
|
||||
|
@ -1325,7 +1325,7 @@ msgstr "新的定期盘存"
|
|||
#. module: stock
|
||||
#: field:stock.production.lot,revisions:0
|
||||
msgid "Revisions"
|
||||
msgstr "修改"
|
||||
msgstr "修订记录"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,allocation_method:0
|
||||
|
@ -1370,7 +1370,7 @@ msgstr "单位"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_JUSTIFY_LEFT"
|
||||
msgstr "左对齐"
|
||||
msgstr "STOCK_JUSTIFY_LEFT"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.inventory:0
|
||||
|
@ -1420,7 +1420,7 @@ msgstr "固定库位"
|
|||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr "对象名必须要以X_开头并且不能含有特殊字符!"
|
||||
msgstr "对象名必须以“x_”开始且不能包含任何特殊字符!"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.picking,min_date:0
|
||||
|
@ -1436,7 +1436,7 @@ msgstr "发出的产品"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_COLOR_PICKER"
|
||||
msgstr "颜色包"
|
||||
msgstr "STOCK_COLOR_PICKER"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.report.xml,name:stock.report_lot_location
|
||||
|
@ -1446,7 +1446,7 @@ msgstr "库位批次"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_DELETE"
|
||||
msgstr "删除"
|
||||
msgstr "STOCK_DELETE"
|
||||
|
||||
#. module: stock
|
||||
#: model:account.journal,name:stock.stock_journal
|
||||
|
@ -1456,7 +1456,7 @@ msgstr "库存分类帐"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_CLEAR"
|
||||
msgstr "清空"
|
||||
msgstr "STOCK_CLEAR"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.production.lot,date:0
|
||||
|
@ -1486,7 +1486,7 @@ msgstr "产品库存视图"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-mrp"
|
||||
msgstr "生产资源计划"
|
||||
msgstr "terp-mrp"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.act_window,name:stock.action_picking_tree3_delivery
|
||||
|
@ -1497,12 +1497,12 @@ msgstr "未来的送货单"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_GO_UP"
|
||||
msgstr "向上"
|
||||
msgstr "STOCK_GO_UP"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_SORT_DESCENDING"
|
||||
msgstr "降序"
|
||||
msgstr "STOCK_SORT_DESCENDING"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.act_window,name:stock.action_tracking_form
|
||||
|
@ -1523,17 +1523,17 @@ msgstr "库存清单"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_HOME"
|
||||
msgstr "首页"
|
||||
msgstr "STOCK_HOME"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_PROPERTIES"
|
||||
msgstr "属性"
|
||||
msgstr "STOCK_PROPERTIES"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.location,stock_real:0
|
||||
msgid "Real Stock"
|
||||
msgstr "实时库存"
|
||||
msgstr "实际库存"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.wizard,name:stock.wizard_fill_inventory
|
||||
|
@ -1576,7 +1576,7 @@ msgstr "包装处理"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_MEDIA_STOP"
|
||||
msgstr "停止"
|
||||
msgstr "STOCK_MEDIA_STOP"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.move:0
|
||||
|
@ -1587,7 +1587,7 @@ msgstr "设为可用"
|
|||
#: model:ir.actions.wizard,name:stock.make_picking
|
||||
#: wizard_view:stock.picking.make,init:0
|
||||
msgid "Make packing"
|
||||
msgstr "进行创建分拣单"
|
||||
msgstr "装箱"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.picking,backorder_id:0
|
||||
|
@ -1597,12 +1597,12 @@ msgstr "拖欠订单"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_DND_MULTIPLE"
|
||||
msgstr "倍数"
|
||||
msgstr "STOCK_DND_MULTIPLE"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_REMOVE"
|
||||
msgstr "移除"
|
||||
msgstr "STOCK_REMOVE"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.incoterms,active:0
|
||||
|
@ -1610,7 +1610,7 @@ msgstr "移除"
|
|||
#: field:stock.picking,active:0
|
||||
#: field:stock.tracking,active:0
|
||||
msgid "Active"
|
||||
msgstr "生效"
|
||||
msgstr "有效"
|
||||
|
||||
#. module: stock
|
||||
#: view:product.template:0
|
||||
|
@ -1634,12 +1634,12 @@ msgstr "合计:"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_DIALOG_AUTHENTICATION"
|
||||
msgstr "确定"
|
||||
msgstr "STOCK_DIALOG_AUTHENTICATION"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_ZOOM_OUT"
|
||||
msgstr "放大"
|
||||
msgstr "STOCK_ZOOM_OUT"
|
||||
|
||||
#. module: stock
|
||||
#: wizard_field:stock.move.track,init,tracking_prefix:0
|
||||
|
@ -1654,22 +1654,22 @@ msgstr "最近"
|
|||
#. module: stock
|
||||
#: wizard_field:stock.location.products,init,to_date:0
|
||||
msgid "To"
|
||||
msgstr "到"
|
||||
msgstr "至"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.production.lot.revision,name:0
|
||||
msgid "Revision Name"
|
||||
msgstr "修改名称"
|
||||
msgstr "修订版名称"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_SELECT_COLOR"
|
||||
msgstr "选择颜色"
|
||||
msgstr "STOCK_SELECT_COLOR"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.inventory:0
|
||||
msgid "Confirm Inventory"
|
||||
msgstr "库存确定"
|
||||
msgstr "盘点确认"
|
||||
|
||||
#. module: stock
|
||||
#: view:product.category:0
|
||||
|
@ -1679,7 +1679,7 @@ msgstr "会计库存属性"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_NO"
|
||||
msgstr "否"
|
||||
msgstr "STOCK_NO"
|
||||
|
||||
#. module: stock
|
||||
#: model:stock.location,name:stock.stock_location_workshop
|
||||
|
@ -1701,7 +1701,7 @@ msgstr "虚拟库位"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_REDO"
|
||||
msgstr "重做"
|
||||
msgstr "STOCK_REDO"
|
||||
|
||||
#. module: stock
|
||||
#: model:stock.location,name:stock.stock_location_company
|
||||
|
@ -1721,7 +1721,7 @@ msgstr "不紧急"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_CLOSE"
|
||||
msgstr "关闭"
|
||||
msgstr "STOCK_CLOSE"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.act_window,name:stock.action_warehouse_form
|
||||
|
@ -1732,7 +1732,7 @@ msgstr "仓库"
|
|||
#. module: stock
|
||||
#: help:product.product,track_outgoing:0
|
||||
msgid "Force to use a Production Lot during deliveries"
|
||||
msgstr "送货强制的生产批次"
|
||||
msgstr "在运输时强制使用生产批次"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.picking:0
|
||||
|
@ -1796,7 +1796,7 @@ msgstr "系列型号"
|
|||
#. module: stock
|
||||
#: field:stock.location,posx:0
|
||||
msgid "Corridor (X)"
|
||||
msgstr "走廊(X)"
|
||||
msgstr "通道(X)"
|
||||
|
||||
#. module: stock
|
||||
#: model:stock.location,name:stock.stock_location_suppliers
|
||||
|
@ -1806,12 +1806,12 @@ msgstr "供应商"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_JUMP_TO"
|
||||
msgstr "跳到"
|
||||
msgstr "STOCK_JUMP_TO"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-tools"
|
||||
msgstr "工具"
|
||||
msgstr "terp-tools"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.report.xml,name:stock.report_location_overview
|
||||
|
@ -1826,7 +1826,7 @@ msgstr "产品库位"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_UNDO"
|
||||
msgstr "取消"
|
||||
msgstr "STOCK_UNDO"
|
||||
|
||||
#. module: stock
|
||||
#: model:ir.actions.wizard,name:stock.move_split
|
||||
|
@ -1836,7 +1836,7 @@ msgstr "分割调拨明细"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "terp-sale"
|
||||
msgstr "销售"
|
||||
msgstr "terp-sale"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.production.lot,name:0
|
||||
|
@ -1846,7 +1846,7 @@ msgstr "序号"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_ADD"
|
||||
msgstr "增加"
|
||||
msgstr "STOCK_ADD"
|
||||
|
||||
#. module: stock
|
||||
#: field:stock.location,chained_delay:0
|
||||
|
@ -1856,17 +1856,17 @@ msgstr "连锁延迟(天)"
|
|||
#. module: stock
|
||||
#: field:stock.move,location_id:0
|
||||
msgid "Source Location"
|
||||
msgstr "源货位"
|
||||
msgstr "源库位"
|
||||
|
||||
#. module: stock
|
||||
#: view:product.template:0
|
||||
msgid "Accounting Entries"
|
||||
msgstr "凭证"
|
||||
msgstr "会计分录"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_MEDIA_PAUSE"
|
||||
msgstr "暂停"
|
||||
msgstr "STOCK_MEDIA_PAUSE"
|
||||
|
||||
#. module: stock
|
||||
#: view:product.product:0
|
||||
|
@ -1894,12 +1894,12 @@ msgstr "盘存日期"
|
|||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_PRINT_PREVIEW"
|
||||
msgstr "打印预览"
|
||||
msgstr "STOCK_PRINT_PREVIEW"
|
||||
|
||||
#. module: stock
|
||||
#: selection:stock.location,icon:0
|
||||
msgid "STOCK_FIND"
|
||||
msgstr "查找"
|
||||
msgstr "STOCK_FIND"
|
||||
|
||||
#. module: stock
|
||||
#: view:stock.inventory:0
|
||||
|
|
Loading…
Reference in New Issue