bzr revid: sbh@tinyerp.com-20100112043332-l4zpx1aa0au1n1r2
This commit is contained in:
sbh (Open ERP) 2010-01-12 10:03:32 +05:30
commit 67e824d33e
76 changed files with 3239 additions and 2297 deletions

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_analysis

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_budget

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_date_check

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_payment

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_account

135
addons/crm/crm.py Executable file → Normal file
View File

@ -32,12 +32,6 @@ import tools
from osv import fields,osv,orm
from osv.orm import except_orm
import email
import netsvc
from poplib import POP3, POP3_SSL
from imaplib import IMAP4, IMAP4_SSL
MAX_LEVEL = 15
AVAILABLE_STATES = [
('draft','Draft'),
@ -64,17 +58,16 @@ icon_lst = {
class crm_case_section(osv.osv):
_name = "crm.case.section"
_description = "Case Section"
_order = "name"
_columns = {
'name': fields.char('Case Section',size=64, required=True, translate=True),
'code': fields.char('Section Code',size=8),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the case section without removing it."),
'allow_unlink': fields.boolean('Allow Delete', help="Allows to delete non draft cases"),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of case sections."),
'user_id': fields.many2one('res.users', 'Responsible User'),
'reply_to': fields.char('Reply-To', size=64, help="The email address put in the 'Reply-To' of all emails sent by Open ERP about cases in this section"),
'parent_id': fields.many2one('crm.case.section', 'Parent Section'),
'child_ids': fields.one2many('crm.case.section', 'parent_id', 'Child Sections'),
'calendar' : fields.boolean('Calendar', help='Allows to show calendar'),
}
_defaults = {
'active': lambda *a: 1,
@ -95,106 +88,6 @@ class crm_case_section(osv.osv):
_constraints = [
(_check_recursion, 'Error ! You cannot create recursive sections.', ['parent_id'])
]
# Mainly used by the wizard
def menu_create_data(self, cr, uid, data, menu_lst, context):
menus = {}
menus[0] = data['menu_parent_id']
section = self.browse(cr, uid, data['section_id'], context)
for (index, mname, mdomain, latest, view_mode) in menu_lst:
view_mode = data['menu'+str(index)+'_option']
if view_mode=='no':
menus[index] = data['menu_parent_id']
continue
icon = icon_lst.get(view_mode.split(',')[0], 'STOCK_JUSTIFY_FILL')
menu_id=self.pool.get('ir.ui.menu').create(cr, uid, {
'name': data['menu'+str(index)],
'parent_id': menus[latest],
'icon': icon
})
menus[index] = menu_id
action_id = self.pool.get('ir.actions.act_window').create(cr,uid, {
'name': data['menu'+str(index)],
'res_model': 'crm.case',
'domain': mdomain.replace('SECTION_ID', str(data['section_id'])),
'view_type': 'form',
'view_mode': view_mode,
})
seq = 0
for mode in view_mode.split(','):
self.pool.get('ir.actions.act_window.view').create(cr, uid, {
'sequence': seq,
'view_id': data['view_'+mode],
'view_mode': mode,
'act_window_id': action_id,
'multi': True
})
seq+=1
self.pool.get('ir.values').create(cr, uid, {
'name': data['menu'+str(index)],
'key2': 'tree_but_open',
'model': 'ir.ui.menu',
'res_id': menu_id,
'value': 'ir.actions.act_window,%d'%action_id,
'object': True
})
return True
#
# Used when called from .XML file
#
def menu_create(self, cr, uid, ids, name, menu_parent_id=False, context={}):
menus = {}
menus[-1] = menu_parent_id
for section in self.browse(cr, uid, ids, context):
for (index, mname, mdomain, latest) in [
(0,'',"[('section_id','=',"+str(section.id)+")]", -1),
(1,'My ',"[('section_id','=',"+str(section.id)+"),('user_id','=',uid)]", 0),
(2,'My Unclosed ',"[('section_id','=',"+str(section.id)+"),('user_id','=',uid), ('state','<>','cancel'), ('state','<>','done')]", 1),
(5,'My Open ',"[('section_id','=',"+str(section.id)+"),('user_id','=',uid), ('state','=','open')]", 2),
(6,'My Pending ',"[('section_id','=',"+str(section.id)+"),('user_id','=',uid), ('state','=','pending')]", 2),
(7,'My Draft ',"[('section_id','=',"+str(section.id)+"),('user_id','=',uid), ('state','=','draft')]", 2),
(3,'My Late ',"[('section_id','=',"+str(section.id)+"),('user_id','=',uid), ('date_deadline','<=',time.strftime('%Y-%m-%d')), ('state','<>','cancel'), ('state','<>','done')]", 1),
(4,'My Canceled ',"[('section_id','=',"+str(section.id)+"),('user_id','=',uid), ('state','=','cancel')]", 1),
(8,'All ',"[('section_id','=',"+str(section.id)+"),]", 0),
(9,'Unassigned ',"[('section_id','=',"+str(section.id)+"),('user_id','=',False)]", 8),
(10,'Late ',"[('section_id','=',"+str(section.id)+"),('user_id','=',uid), ('date_deadline','<=',time.strftime('%Y-%m-%d')), ('state','<>','cancel'), ('state','<>','done')]", 8),
(11,'Canceled ',"[('section_id','=',"+str(section.id)+"),('state','=','cancel')]", 8),
(12,'Unclosed ',"[('section_id','=',"+str(section.id)+"),('state','<>','cancel'), ('state','<>','done')]", 8),
(13,'Open ',"[('section_id','=',"+str(section.id)+"),('state','=','open')]", 12),
(14,'Pending ',"[('section_id','=',"+str(section.id)+"),('state','=','pending')]", 12),
(15,'Draft ',"[('section_id','=',"+str(section.id)+"),('state','=','draft')]", 12),
(16,'Unassigned ',"[('section_id','=',"+str(section.id)+"),('user_id','=',False),('state','<>','cancel'),('state','<>','done')]", 12),
]:
view_mode = 'tree,form'
icon = 'STOCK_JUSTIFY_FILL'
if index==0:
view_mode = 'form,tree'
icon = 'STOCK_NEW'
menu_id=self.pool.get('ir.ui.menu').create(cr, uid, {
'name': mname+name,
'parent_id': menus[latest],
'icon': icon
})
menus[index] = menu_id
action_id = self.pool.get('ir.actions.act_window').create(cr,uid, {
'name': mname+name+' Cases',
'res_model': 'crm.case',
'domain': mdomain,
'view_type': 'form',
'view_mode': view_mode,
})
self.pool.get('ir.values').create(cr, uid, {
'name': 'Open Cases',
'key2': 'tree_but_open',
'model': 'ir.ui.menu',
'res_id': menu_id,
'value': 'ir.actions.act_window,%d'%action_id,
'object': True
})
return True
def name_get(self, cr, uid, ids, context={}):
if not len(ids):
return []
@ -427,8 +320,8 @@ class crm_case(osv.osv):
return uid
def _get_section(self, cr, uid, context):
user = self.pool.get('res.users').browse(cr, uid, uid)
return user.section_id.id
user = self.pool.get('res.users').browse(cr, uid, uid,context=context)
return user.context_section_id
_defaults = {
'active': lambda *a: 1,
@ -1075,14 +968,22 @@ class crm_email_add_cc_wizard(osv.osv_memory):
crm_email_add_cc_wizard()
class res_users(osv.osv):
_inherit = "res.users"
_description = "users"
def _section_get(self, cr, uid, context={}):
obj = self.pool.get('crm.case.section')
ids = obj.search(cr, uid, [])
res = obj.read(cr, uid, ids, ['id','name'], context)
res = [(str(r['id']),r['name']) for r in res]
return res
class users(osv.osv):
_inherit = 'res.users'
_description = "Users"
_columns = {
'section_id': fields.many2one('crm.case.section', 'Sales Section', required=False)
}
'context_section_id': fields.selection(_section_get, 'Sales Section'),
}
res_users()
users()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -66,30 +66,30 @@ class crm_meeting(osv.osv):
'rrule': {'field': 'rrule', 'type': 'text'},
'x-openobject-model': {'value': _name, 'type': 'text'},
# 'duration': {'field': 'duration'},
'dtend': {'field': 'date_deadline', 'type': 'datetime'},
'valarm': {'field': 'alarms', 'type': 'text'},
'dtend': {'field': 'date_deadline', 'type': 'datetime'},
'valarm': {'field': 'alarms', 'type': 'text'},
}
def _get_data(self, cr, uid, ids, name, arg, context):
def _get_data(self, cr, uid, ids, name, arg, context):
result = {}
attendee_obj = self.pool.get('calendar.attendee')
alarm_obj = self.pool.get('calendar.alarm')
model_obj = self.pool.get('ir.model')
model_id = model_obj.search(cr, uid, [('model','=',self._name)])[0]
for meeting_id in ids:
result[meeting_id] = {}
result[meeting_id] = {}
if "attendees" in name:
attendee_ids = attendee_obj.search(cr, uid, [('ref','=','%s,%d'%(self._name, meeting_id))])
result[meeting_id]["attendees"] = attendee_obj.export_cal(cr, uid, attendee_ids)
if "alarms" in name:
if "alarms" in name:
alarm_ids = alarm_obj.search(cr, uid, [('model_id','=',model_id), ('res_id','=',meeting_id)])
result[meeting_id]["alarms"] = alarm_obj.export_cal(cr, uid, alarm_ids)
result[meeting_id]["alarms"] = alarm_obj.export_cal(cr, uid, alarm_ids)
return result
def _set_data(self, cr, uid, meeting_id, name, value, arg, context):
if not value:
return
return
attendee_obj = self.pool.get('calendar.attendee')
model_obj = self.pool.get('ir.model')
alarm_obj = self.pool.get('calendar.alarm')
@ -100,11 +100,11 @@ class crm_meeting(osv.osv):
'ref':'%s,%d'%('crm.meeting', meeting_id)
}
attendee_obj.write(cr, uid, attendee_ids, vals)
if name == "alarms":
if name == "alarms":
model_id = model_obj.search(cr, uid, [('model','=',self._name)])[0]
alarm_ids = alarm_obj.import_cal(cr, uid, eventdata['alarms'])
vals = {
'res_id' : meeting.id,
'res_id' : meeting.id,
'model_id' : model_id,
}
alarm_obj.write(cr, uid, alarm_ids, vals)
@ -128,9 +128,9 @@ class crm_meeting(osv.osv):
for anexception to a recurrence set"),
'rrule': fields.char('Recurrent Rule', size=352, invisible="True"),
'rrule_type' : fields.selection([('none', 'None'), ('daily', 'Daily'), \
('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly'), ('custom','Custom')], 'Recurrency'),
('weekly', 'Weekly'), ('monthly', 'Monthly'), ('yearly', 'Yearly'), ('custom','Custom')], 'Recurrency'),
'attendees': fields.function(_get_data, method=True,\
fnct_inv=_set_data, string='Attendees', type="text", multi='attendees'),
fnct_inv=_set_data, string='Attendees', type="text", multi='attendees'),
'alarms': fields.function(_get_data, method=True,\
fnct_inv=_set_data, string='Attendees', type="text", multi='alarms'),
'alarm_id': fields.many2one('res.alarm', 'Alarm'),
@ -138,7 +138,7 @@ class crm_meeting(osv.osv):
_defaults = {
'class': lambda *a: 'public',
'show_as' : lambda *a : 'busy',
'show_as' : lambda *a : 'busy',
}
def do_alarm_create(self, cr, uid, ids, context={}):
@ -153,23 +153,23 @@ class crm_meeting(osv.osv):
basic_alarm = meeting.alarm_id
if basic_alarm:
vals = {
'action': 'display',
'description': meeting.description,
'name': meeting.name,
'action': 'display',
'description': meeting.description,
'name': meeting.name,
'attendee_ids': [(6,0, attendee_ids)],
'trigger_related': basic_alarm.trigger_related,
'trigger_duration': basic_alarm.trigger_duration,
'trigger_occurs': basic_alarm.trigger_occurs,
'trigger_interval': basic_alarm.trigger_interval,
'duration': basic_alarm.duration,
'repeat': basic_alarm.repeat,
'trigger_related': basic_alarm.trigger_related,
'trigger_duration': basic_alarm.trigger_duration,
'trigger_occurs': basic_alarm.trigger_occurs,
'trigger_interval': basic_alarm.trigger_interval,
'duration': basic_alarm.duration,
'repeat': basic_alarm.repeat,
'state' : 'run',
'event_date' : meeting.date,
'event_end_date' : meeting.date_deadline,
'res_id' : meeting.id,
'event_end_date' : meeting.date_deadline,
'res_id' : meeting.id,
'model_id' : model_id,
'user_id' : uid
}
'user_id' : uid
}
alarm_id = alarm_obj.create(cr, uid, vals)
cr.commit()
return True
@ -181,7 +181,7 @@ class crm_meeting(osv.osv):
for meeting in self.browse(cr, uid, ids):
alarm_ids = alarm_obj.search(cr, uid, [('model_id','=',model_id), ('res_id','=',meeting.id)])
if alarm_ids and len(alarm_ids):
alarm_obj.unlink(cr, uid, alarm_ids)
alarm_obj.unlink(cr, uid, alarm_ids)
cr.commit()
return True
@ -210,8 +210,8 @@ class crm_meeting(osv.osv):
def import_cal(self, cr, uid, data, context={}):
file_content = base64.decodestring(data)
event_obj = self.pool.get('basic.calendar.event')
event_obj.__attribute__.update(self.__attribute__)
event_obj.__attribute__.update(self.__attribute__)
vals = event_obj.import_ical(cr, uid, file_content)
ids = []
for val in vals:
@ -219,32 +219,41 @@ class crm_meeting(osv.osv):
if val.has_key('create_date'): val.pop('create_date')
val['caldav_url'] = context.get('url') or ''
val.pop('id')
if is_exists:
if is_exists:
self.write(cr, uid, [is_exists], val)
ids.append(is_exists)
else:
case_id = self.create(cr, uid, val)
ids.append(case_id)
case_id = self.create(cr, uid, val)
ids.append(case_id)
return ids
def get_recurrent_ids(self, cr, uid, ids, start_date, until_date, limit=100):
def get_recurrent_ids(self, cr, uid, select, base_start_date, base_until_date, limit=100):
if not limit:
limit = 100
if ids and (start_date or until_date):
if isinstance(select, (str, int, long)):
ids = [select]
else:
ids = select
result = ids
if ids and (base_start_date or base_until_date):
cr.execute("select m.id, m.rrule, c.date, m.exdate from crm_meeting m\
join crm_case c on (c.id=m.inherit_case_id) \
where m.id in ("+ ','.join(map(lambda x: str(x), ids))+")")
result = []
count = 0
start_date = start_date and datetime.datetime.strptime(start_date, "%Y-%m-%d") or False
until_date = until_date and datetime.datetime.strptime(until_date, "%Y-%m-%d") or False
for data in cr.dictfetchall():
count = 0
for data in cr.dictfetchall():
start_date = base_start_date and datetime.datetime.strptime(base_start_date, "%Y-%m-%d") or False
until_date = base_until_date and datetime.datetime.strptime(base_until_date, "%Y-%m-%d") or False
if count > limit:
break
event_date = datetime.datetime.strptime(data['date'], "%Y-%m-%d %H:%M:%S")
if start_date and start_date <= event_date:
start_date = event_date
if not data['rrule']:
if start_date and event_date < start_date:
continue
if until_date and event_date > until_date:
continue
idval = common.real_id2caldav_id(data['id'], data['date'])
result.append(idval)
count += 1
@ -264,11 +273,11 @@ class crm_meeting(osv.osv):
if until_date and until_date >= rrule_until_date:
until_date = rrule_until_date
if until_date:
value = until_date.strftime("%Y%m%d%H%M%S")
value = until_date.strftime("%Y%m%d%H%M%S")
new_rule = '%s=%s' % (name, value)
new_rrule_str.append(new_rule)
if not is_until and until_date:
value = until_date.strftime("%Y%m%d%H%M%S")
if not is_until and until_date:
value = until_date.strftime("%Y%m%d%H%M%S")
name = "UNTIL"
new_rule = '%s=%s' % (name, value)
new_rrule_str.append(new_rule)
@ -276,11 +285,17 @@ class crm_meeting(osv.osv):
start_date = datetime.datetime.strptime(data['date'], "%Y-%m-%d %H:%M:%S")
rdates = event_obj.get_recurrent_dates(str(new_rrule_str), exdate, start_date)
for rdate in rdates:
r_date = datetime.datetime.strptime(rdate, "%Y-%m-%d %H:%M:%S")
if start_date and r_date < start_date:
continue
if until_date and r_date > until_date:
continue
idval = common.real_id2caldav_id(data['id'], rdate)
result.append(idval)
count += 1
ids = result
return ids
if isinstance(select, (str, int, long)):
return result and result[0] or False
return result
def search(self, cr, uid, args, offset=0, limit=100, order=None,
context=None, count=False):
@ -295,7 +310,6 @@ class crm_meeting(osv.osv):
start_date = arg[2]
elif arg[1] in ('<', '<='):
until_date = arg[2]
res = super(crm_meeting, self).search(cr, uid, args_without_date, offset,
limit, order, context, count)
return self.get_recurrent_ids(cr, uid, res, start_date, until_date, limit)
@ -516,13 +530,13 @@ class res_users(osv.osv):
cr.execute("SELECT crm_case.user_id, 'busy' as status \
FROM crm_meeting meeting, crm_case \
WHERE meeting.inherit_case_id = crm_case.id \
and crm_case.date <= %s and crm_case.date_deadline >= %s and crm_case.user_id = ANY(%s) and meeting.show_as = %s",
and crm_case.date <= %s and crm_case.date_deadline >= %s and crm_case.user_id = ANY(%s) and meeting.show_as = %s",
(current_datetime, current_datetime , ids, 'busy'))
result = cr.dictfetchall()
for user_data in result:
user_id = user_data['user_id']
status = user_data['status']
res.update({user_id:status})
res.update({user_id:status})
return res
res_users()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -4,8 +4,7 @@
<record model="crm.case.section" id="section_support1">
<field name="name">Meetings</field>
<field name="code">Mtngs</field>
<field name="calendar">True</field>
<field name="code">Mtngs</field>
</record>
<!-- CASE CATEGORY(categ_id) -->

0
addons/crm/crm_meeting_menu.xml Executable file → Normal file
View File

View File

@ -34,15 +34,11 @@
<page string="Case section">
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="sequence"/>
<field name="active" select="2"/>
<field name="user_id" select="2"/>
<field name="active" select="2"/>
<field name="parent_id" select="2" widget="selection"/>
<group colspan="2" >
<field name="allow_unlink" select="2"/>
<field name="calendar" select="2"/>
</group>
<field name="reply_to" select="2"/>
<field name="allow_unlink" select="2"/>
<field name="reply_to" select="2"/>
</page>
</notebook>
</form>
@ -657,7 +653,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<page string="Current Activity" position="inside">
<field name="section_id" widget="selection"/>
<field name="context_section_id" completion="1"/>
</page>
</field>
</record>
@ -670,7 +666,7 @@
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<field name="password" position="after">
<field name="section_id" widget="selection" />
<field name="context_section_id" completion="1"/>
</field>
</field>
</record>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -24,11 +24,9 @@
<field name="model_id" search="[('model','=','crm.meeting')]" model="ir.model"/>
<field name="global" eval="True"/>
</record>
<record id="crm_meeting_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
<field name="operator">=</field>
<field name="operand">user.section_id.id</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',user.context_section_id)]</field>
<field name="rule_group" ref="crm_meeting_rule_group"/>
</record>
@ -39,10 +37,7 @@
<field name="global" eval="True"/>
</record>
<record id="crm_claim_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
<field name="operator">=</field>
<field name="operand">user.section_id.id</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',user.context_section_id)]</field>
<field name="rule_group" ref="crm_claim_rule_group"/>
</record>
@ -53,10 +48,7 @@
<field name="global" eval="True"/>
</record>
<record id="crm_fundraising_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
<field name="operator">=</field>
<field name="operand">user.section_id.id</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',user.context_section_id)]</field>
<field name="rule_group" ref="crm_fundraising_rule_group"/>
</record>
@ -67,10 +59,7 @@
<field name="global" eval="True"/>
</record>
<record id="crm_helpdesk_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
<field name="operator">=</field>
<field name="operand">user.section_id.id</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',user.context_section_id)]</field>
<field name="rule_group" ref="crm_helpdesk_rule_group"/>
</record>
@ -81,10 +70,7 @@
<field name="global" eval="True"/>
</record>
<record id="crm_job_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
<field name="operator">=</field>
<field name="operand">user.section_id.id</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',user.context_section_id)]</field>
<field name="rule_group" ref="crm_job_rule_group"/>
</record>-->
@ -95,10 +81,7 @@
<field name="global" eval="True"/>
</record>
<record id="crm_leads_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
<field name="operator">=</field>
<field name="operand">user.section_id.id</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',user.context_section_id)]</field>
<field name="rule_group" ref="crm_leads_rule_group"/>
</record>
@ -109,10 +92,7 @@
<field name="global" eval="True"/>
</record>
<record id="crm_opportunities_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
<field name="operator">=</field>
<field name="operand">user.section_id.id</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',user.context_section_id)]</field>
<field name="rule_group" ref="crm_opportunities_rule_group"/>
</record>
@ -123,10 +103,7 @@
<field name="global" eval="True"/>
</record>
<record id="crm_phone_calls_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
<field name="operator">=</field>
<field name="operand">user.section_id.id</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',user.context_section_id)]</field>
<field name="rule_group" ref="crm_phone_calls_rule_group"/>
</record>
@ -137,11 +114,8 @@
<field name="global" eval="True"/>
</record>
<record id="crm_case_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
<field name="operator">=</field>
<field name="operand">user.section_id.id</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',user.context_section_id)]</field>
<field name="rule_group" ref="crm_case_rule_group"/>
</record>
</data>
</data>
</openerp>

View File

@ -7,20 +7,20 @@ 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 13:27+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-01-10 01:56+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:22+0000\n"
"X-Launchpad-Export-Date: 2010-01-11 04:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm_profiling
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
msgstr "对象名称必须以“x_”起头且不能包含任何特殊字符"
#. module: crm_profiling
#: field:crm_profiling.answer,question_id:0
@ -47,7 +47,7 @@ msgstr ""
#. module: crm_profiling
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "在动作定义中输入的对象名称错误"
#. module: crm_profiling
#: field:crm_profiling.answer,name:0
@ -63,7 +63,7 @@ msgstr ""
#. module: crm_profiling
#: field:crm_profiling.questionnaire,description:0
msgid "Description"
msgstr ""
msgstr "说明"
#. module: crm_profiling
#: field:crm.segmentation,answer_no:0

View File

@ -43,8 +43,10 @@ class crm_project_bug(osv.osv):
}
def _get_project(self, cr, uid, context):
user = self.pool.get('res.users').browse(cr, uid, uid)
return user.project_id.id
user = self.pool.get('res.users').browse(cr,uid,uid, context=context)
if user.context_project_id:
return user.context_project_id.id
return False
_defaults = {
'project_id':_get_project

View File

@ -42,8 +42,11 @@ class crm_project_future_request(osv.osv):
'project_id':fields.many2one('project.project', 'Project'),
}
def _get_project(self, cr, uid, context):
user = self.pool.get('res.users').browse(cr,uid,uid)
return user.project_id.id
user = self.pool.get('res.users').browse(cr,uid,uid, context=context)
if user.context_project_id:
return user.context_project_id.id
return False
_defaults = {
'project_id':_get_project
}

View File

@ -10,10 +10,7 @@
<field name="global" eval="True"/>
</record>
<record id="crm_project_bug_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.project.bug'),('name','=','project_id')]"/>
<field name="operator">=</field>
<field name="operand">user.project_id.id</field>
<field name="domain_force">['|',('project_id','=',False),('project_id','=',[user.project_id.id])]</field>
<field name="domain_force">['|',('project_id','=',False),('project_id','=',user.context_project_id)]</field>
<field name="rule_group" ref="crm_project_bug_rule_group"/>
</record>
@ -23,10 +20,7 @@
<field name="global" eval="True"/>
</record>
<record id="crm_project_feature_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.project.future'),('name','=','project_id')]"/>
<field name="operator">=</field>
<field name="operand">user.project_id.id</field>
<field name="domain_force">['|',('project_id','=',False),('project_id','=',[user.project_id.id])]</field>
<field name="domain_force">['|',('project_id','=',False),('project_id','=',user.context_project_id)]</field>
<field name="rule_group" ref="crm_project_feature_rule_group"/>
</record>

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:16+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: delivery

View File

@ -0,0 +1,31 @@
# Chinese (Simplified) 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-01-10 01:57+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-11 04:56+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 ""
"这是一个完整的文档管理系统:\n"
"\t* WebDav 接口\n"
"\t* 用户认证\n"
"\t* 文档索引\n"

View File

@ -47,7 +47,10 @@
<field name="view_type">tree</field>
<field name="domain">[('parent_id','=',False)]</field>
</record>
<menuitem action="open_module_tree_department_tree" id="menu_department_tree" parent="base.menu_users"/>
<menuitem
action="open_module_tree_department_tree"
id="menu_department_tree"
parent="hr.menu_hr_employee"/>
<record id="open_module_tree_department" model="ir.actions.act_window">
<field name="name">Departments</field>
@ -55,7 +58,10 @@
<field name="view_type">form</field>
</record>
<menuitem action="open_module_tree_department" id="menu_department_def" parent="hr.menu_department_tree"/>
<menuitem
action="open_module_tree_department"
id="menu_department_def"
parent="hr.menu_hr_employee"/>
<!-- res.users inherit -->
<record model="ir.ui.view" id="view_users_form_inherit">

View File

@ -1,7 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem icon="terp-hr" id="menu_hr_root" name="Human Resources"/>
<menuitem
icon="terp-hr"
id="menu_hr_root"
name="Human Resources"/>
<menuitem
id="menu_hr_reporting"
name="Reporting"
@ -11,8 +14,17 @@
id="menu_hr_configuration"
name="Configuration"
parent="hr.menu_hr_root"
sequence="5" groups="group_hr_manager"/>
sequence="50" groups="group_hr_manager"/>
<menuitem
id="menu_hr_employee"
sequence="1"
name="Human Resources"
parent="hr.menu_hr_root"/>
<menuitem
id="menu_hr_time"
name="Time Tracking"
parent="hr.menu_hr_root"/>
<!--
==========
Employee
@ -103,26 +115,9 @@
</record>
<menuitem
id="menu_open_view_employee_list"
name="Employees"
action="open_view_employee_list"
groups="group_hr_manager"
parent="hr.menu_hr_root"/>
<menuitem
action="open_view_employee_tree"
id="menu_open_view_employee_tree"
parent="menu_open_view_employee_list"/>
<record id="open_view_employee_list_my" model="ir.actions.act_window">
<field name="name">All Employees</field>
<field name="res_model">hr.employee</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
</record>
<menuitem
action="open_view_employee_list_my"
id="menu_open_view_employee_list_my"
parent="menu_open_view_employee_list"/>
parent="hr.menu_hr_employee"/>
<!--
=======================
@ -181,12 +176,20 @@
</field>
</record>
<record id="edit_workgroup" model="ir.actions.act_window">
<field name="name">Working Time Categories</field>
<field name="name">Working Schedules</field>
<field name="res_model">hr.timesheet.group</field>
<field name="view_type">form</field>
<field name="view_id" eval="False"/>
</record>
<menuitem action="edit_workgroup" id="menu_edit_workgroup" parent="hr.menu_hr_configuration"/>
<menuitem
name="Employees"
id="menu_hr_configuration_employee"
parent="hr.menu_hr_configuration"/>
<menuitem
action="edit_workgroup"
id="menu_edit_workgroup"
parent="hr.menu_hr_configuration"/>
<record id="view_timesheet_tree" model="ir.ui.view">
<field name="name">hr.timesheet.tree</field>
@ -262,7 +265,10 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem action="open_view_categ_form" id="menu_view_employee_category_form" parent="hr.menu_hr_configuration"/>
<menuitem
action="open_view_categ_form"
id="menu_view_employee_category_form"
parent="hr.menu_hr_configuration_employee"/>
<record id="open_view_categ_tree" model="ir.actions.act_window">
<field name="name">Categories structure</field>
@ -289,8 +295,5 @@
<field eval="'ir.actions.act_window,%d'%hr_employee_normal_action_tree" name="value"/>
<field eval="True" name="object"/>
</record>
<menuitem action="open_view_categ_tree" id="menu_view_employee_category_tree" parent="hr.menu_view_employee_category_form"/>
</data>
</openerp>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_attendance_form" model="ir.ui.view">
<field name="name">hr.attendance.form</field>
<field name="model">hr.attendance</field>
@ -48,8 +48,9 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_hr_attendance" name="Attendances" parent="hr.menu_hr_root"
<menuitem id="menu_hr_attendance" name="Attendances" parent="hr.menu_hr_time"
groups="group_hr_attendance"/>
<menuitem action="open_view_attendance" id="menu_open_view_attendance"
parent="menu_hr_attendance" groups="hr.group_hr_manager"/>

View File

@ -8,7 +8,7 @@
<wizard id="print_week" keyword="client_print_multi" model="hr.employee" name="hr.attendance.print_week" string="Print Timesheet by week"/>
<wizard id="print_month" keyword="client_print_multi" model="hr.employee" name="hr.attendance.print_month" string="Print Timesheet by month"/>
<menuitem action="si_so" id="menu_si_so" parent="menu_hr_attendance" type="wizard"
<menuitem action="si_so" id="menu_si_so" parent="hr.menu_hr_time" type="wizard"
groups="group_hr_attendance"/>
</data>

View File

@ -60,16 +60,22 @@
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
</record>
<menuitem id="next_id_56" name="Contract" parent="hr.menu_hr_configuration"/><menuitem action="action_hr_contract_wage_type" id="hr_menu_contract_wage_type" parent="next_id_56"/>
<menuitem
id="next_id_56"
name="Contracts"
parent="hr.menu_hr_configuration"/>
<menuitem action="action_hr_contract_wage_type" id="hr_menu_contract_wage_type" parent="next_id_56"/>
<record id="action_hr_contract_wage_type_period" model="ir.actions.act_window">
<field name="name">Wage period</field>
<field name="res_model">hr.contract.wage.type.period</field>
<field name="view_type">form</field>
</record>
<menuitem action="action_hr_contract_wage_type_period" id="hr_menu_contract_wage_type_period" parent="hr_contract.next_id_56"/>
<menuitem
action="action_hr_contract_wage_type_period"
id="hr_menu_contract_wage_type_period"
parent="hr_contract.next_id_56"/>
<record id="hr_hr_employee_view_form2" model="ir.ui.view">
<field name="name">hr.hr.employee.view.form2</field>
<field name="model">hr.employee</field>
@ -138,8 +144,10 @@
<field name="view_mode">tree,form</field>
</record>
<menuitem action="action_hr_marital_status" id="hr_menu_marital_status" parent="hr.menu_hr_configuration"/>
<menuitem
action="action_hr_marital_status"
id="hr_menu_marital_status"
parent="hr.menu_hr_configuration_employee"/>
<record id="hr_contract_view_form" model="ir.ui.view">
<field name="name">hr.contract.view.form</field>
<field name="model">hr.contract</field>
@ -203,9 +211,8 @@
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
</record>
<menuitem name="Contract" id="menu_hr_contract" parent="hr.menu_hr_root"/>
<menuitem action="action_hr_contract" id="hr_menu_contract" parent="menu_hr_contract"/>
<menuitem action="action_hr_contract" id="hr_menu_contract" parent="hr.menu_hr_employee"/>
</data>
</openerp>

View File

@ -104,18 +104,18 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Expense">
<group col='6' colspan='4'>
<filter icon="gtk-execute" string="My Expense" domain="[('user_id','=',uid)]" separator="1" help="Expenses Related to Current User"/>
<field name="state" select="1">
<filter icon="terp-hr" domain="[('state','=','confirm')]" help="Confirmed Expense"/>
<filter icon="terp-hr" domain="[('state','=','accepted')]" help="Accepted Expense"/>
<filter icon="terp-hr" domain="[('state','=','invoiced')]" help="Invoiced Expense"/>
</field>
<separator orientation="vertical"/>
<field name="name" select='1'/>
<field name="user_id" select="1" widget="selection"/>
</group>
</search>
<group col='6' colspan='4'>
<filter icon="gtk-execute" string="My Expense" domain="[('user_id','=',uid)]" separator="1" help="Expenses Related to Current User"/>
<field name="state" select="1">
<filter icon="terp-hr" domain="[('state','=','confirm')]" help="Confirmed Expense"/>
<filter icon="terp-hr" domain="[('state','=','accepted')]" help="Accepted Expense"/>
<filter icon="terp-hr" domain="[('state','=','invoiced')]" help="Invoiced Expense"/>
</field>
<separator orientation="vertical"/>
<field name="name" select='1'/>
<field name="user_id" select="1" widget="selection"/>
</group>
</search>
</field>
</record>
@ -126,23 +126,21 @@
<field name="search_view_id" ref="view_hr_expense_filter"/>
</record>
<menuitem id="next_id_49" name="Expenses"
parent="hr.menu_hr_root"/>
<menuitem id="menu_expenses" name="Expenses"
parent="hr.menu_hr_root"/>
<menuitem action="expense_all" id="menu_expense_all"
parent="next_id_49" groups="hr.group_hr_manager"/>
parent="menu_expenses" groups="hr.group_hr_manager"/>
<record id="view_product_hr_expense_form" model="ir.ui.view">
<field name="name">product.product.expense.form</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="type">form</field>
<field name="arch" type="xml">
<field groups="base.group_extended" name="rental" position="after">
<field name="hr_expense_ok"/>
</field>
</field>
</record>
<field name="name">product.product.expense.form</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="type">form</field>
<field name="arch" type="xml">
<field groups="base.group_extended" name="rental" position="after">
<field name="hr_expense_ok"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_expense

View File

@ -1,22 +1,23 @@
<?xml version="1.0" ?>
<openerp>
<data>
<wizard string="Print Summary of Holidays"
name="hr.holidays.summary"
id="holidays_summary"/>
<data>
<wizard string="Print Summary of Holidays"
name="hr.holidays.summary"
id="holidays_summary"/>
<menuitem name="Print Summary of Holidays" parent="hr.menu_hr_reporting"
action="holidays_summary"
type="wizard"
id="menu_holidays_summary"/>
<menuitem name="Print Summary of Holidays"
parent="hr.menu_hr_reporting"
action="holidays_summary"
type="wizard"
id="menu_holidays_summary"/>
<!-- restrict menu access to HR Manager -->
<record model='ir.ui.menu' id="menu_holidays_summary">
<field eval="[(6,0,[ref('hr.group_hr_manager')])]" name="groups_id"/>
</record>
<!-- restrict menu access to HR Manager -->
<record model='ir.ui.menu' id="menu_holidays_summary">
<field eval="[(6,0,[ref('hr.group_hr_manager')])]" name="groups_id"/>
</record>
<wizard string="Print Summary of Employee's Holidays"
model="hr.employee" name="hr.holidays.summary.employee"
keyword="client_print_multi" id="wizard_holidays_summary" />
</data>
<wizard string="Print Summary of Employee's Holidays"
model="hr.employee" name="hr.holidays.summary.employee"
keyword="client_print_multi" id="wizard_holidays_summary" />
</data>
</openerp>

View File

@ -10,18 +10,18 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Leave">
<group col='6' colspan='4'>
<filter icon="gtk-execute" string="My Leaves" domain="[('user_id','=',uid)]" separator="1" help="Leaves Related to Current User"/>
<group col='6' colspan='4'>
<filter icon="gtk-execute" string="My Leaves" domain="[('user_id','=',uid)]" separator="1" help="Leaves Related to Current User"/>
<filter icon="gtk-execute" string="My Departments Leaves" domain="[('user_id','child_of',[uid])]" help="Leaves Related to Department"/>
<field name="state" select="1">
<filter icon="terp-hr" domain="[('state','=','confirm')]" help="Confirmed Holidays"/>
<filter icon="terp-hr" domain="[('state','=','refuse')]" help="Refused Holidays"/>
<filter icon="terp-hr" domain="[('state','=','validate')]" help="Validated Holidays"/>
</field>
<field name="name" select='1'/>
<field name="user_id" select="1" widget="selection"/>
</group>
</search>
<field name="state" select="1">
<filter icon="terp-hr" domain="[('state','=','confirm')]" help="Confirmed Holidays"/>
<filter icon="terp-hr" domain="[('state','=','refuse')]" help="Refused Holidays"/>
<filter icon="terp-hr" domain="[('state','=','validate')]" help="Validated Holidays"/>
</field>
<field name="name" select='1'/>
<field name="user_id" select="1" widget="selection"/>
</group>
</search>
</field>
</record>
@ -146,12 +146,12 @@
<menuitem
name="Holidays Management"
name="Leaves"
parent="hr.menu_hr_root"
id="menu_open_ask_holidays"/>
<record model="ir.actions.act_window" id="open_ask_holidays">
<field name="name">Leave Request(s)</field>
<field name="name">Leave Request(s)</field>
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
<field name="view_id" ref="edit_holiday_new"/>
@ -159,7 +159,7 @@
<field name="search_view_id" ref="view_hr_holidays_filter"/>
</record>
<record model="ir.actions.act_window.view" id="action_open_ask_holidays_tree">
<record model="ir.actions.act_window.view" id="action_open_ask_holidays_tree">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_holiday"/>
@ -173,22 +173,22 @@
<field name="act_window_id" ref="open_ask_holidays"/>
</record>
<menuitem
name="Holidays Requests"
parent="menu_open_ask_holidays"
id="menu_open_ask_holidays_new"
action="open_ask_holidays"/>
<menuitem
name="Leaves Requests"
parent="menu_open_ask_holidays"
id="menu_open_ask_holidays_new"
action="open_ask_holidays"/>
<record model="ir.actions.act_window" id="open_allocation_holidays">
<field name="name">Allocation Request(s)</field>
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
<field name="context">{'type':'add'}</field>
<field name="domain">[('type','=','add')]</field>
<field name="view_id" ref="allocation_leave_new" />
</record>
<record model="ir.actions.act_window" id="open_allocation_holidays">
<field name="name">Allocation Request(s)</field>
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
<field name="context">{'type':'add'}</field>
<field name="domain">[('type','=','add')]</field>
<field name="view_id" ref="allocation_leave_new" />
</record>
<record model="ir.actions.act_window.view" id="action_open_allocation_holidays_tree">
<record model="ir.actions.act_window.view" id="action_open_allocation_holidays_tree">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_holiday"/>
@ -203,10 +203,10 @@
</record>
<menuitem
name="Allocation Requests"
parent="menu_open_ask_holidays"
id="menu_open_allocation_holidays"
action="open_allocation_holidays"/>
name="Recuperation Days Requests"
parent="menu_open_ask_holidays"
id="menu_open_allocation_holidays"
action="open_allocation_holidays"/>
<!-- holidays status -->
<record model="ir.ui.view" id="edit_holiday_status_form">
@ -236,17 +236,22 @@
</field>
</record>
<record id="open_view_holiday_status" model="ir.actions.act_window">
<field name="name">Leave Type</field>
<field name="name">Leaves Type</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr.holidays.status</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem
name="Leaves"
id="menu_leaves_config"
parent="hr.menu_hr_configuration"/>
<menuitem
action="open_view_holiday_status"
id="menu_open_view_holiday_status"
parent="hr.menu_hr_configuration"/>
parent="menu_leaves_config"/>
<!-- Shortcuts -->
<act_window name="My Holiday Requests"

View File

@ -2,101 +2,101 @@
<openerp>
<data>
<!-- Roles definition -->
<!-- Roles definition -->
<record model="res.roles" id="HR_holidays">
<field name="name">Leaves Manager</field>
</record>
<record model="res.roles" id="HR_holidays">
<field name="name">Leaves Manager</field>
</record>
<!-- Workflow definition -->
<!-- Workflow definition -->
<record model="workflow" id="wkf_holidays">
<field name="name">hr.wkf.holidays</field>
<field name="osv">hr.holidays</field>
<field name="on_create">True</field>
</record>
<record model="workflow" id="wkf_holidays">
<field name="name">hr.wkf.holidays</field>
<field name="osv">hr.holidays</field>
<field name="on_create">True</field>
</record>
<record model="workflow.activity" id="act_draft">
<field name="wkf_id" ref="wkf_holidays" />
<field name="flow_start">True</field>
<field name="name">draft</field>
</record>
<record model="workflow.activity" id="act_draft">
<field name="wkf_id" ref="wkf_holidays" />
<field name="flow_start">True</field>
<field name="name">draft</field>
</record>
<record model="workflow.activity" id="act_confirm">
<field name="wkf_id" ref="wkf_holidays" />
<field name="name">confirm</field>
<field name="kind">function</field>
<field name="action">holidays_confirm()</field>
<field name="split_mode">OR</field>
</record>
<record model="workflow.activity" id="act_confirm">
<field name="wkf_id" ref="wkf_holidays" />
<field name="name">confirm</field>
<field name="kind">function</field>
<field name="action">holidays_confirm()</field>
<field name="split_mode">OR</field>
</record>
<record model="workflow.activity" id="act_validate">
<field name="wkf_id" ref="wkf_holidays" />
<field name="name">validate</field>
<field name="kind">function</field>
<field name="action">holidays_validate()</field>
</record>
<record model="workflow.activity" id="act_validate">
<field name="wkf_id" ref="wkf_holidays" />
<field name="name">validate</field>
<field name="kind">function</field>
<field name="action">holidays_validate()</field>
</record>
<record model="workflow.activity" id="act_refuse">
<field name="wkf_id" ref="wkf_holidays" />
<field name="name">refuse</field>
<field name="kind">function</field>
<field name="action">holidays_refuse()</field>
<record model="workflow.activity" id="act_refuse">
<field name="wkf_id" ref="wkf_holidays" />
<field name="name">refuse</field>
<field name="kind">function</field>
<field name="action">holidays_refuse()</field>
</record>
</record>
<record model="workflow.activity" id="act_cancel">
<field name="wkf_id" ref="wkf_holidays" />
<field name="name">cancel</field>
<field name="flow_stop">True</field>
<field name="kind">stopall</field>
<field name="action">holidays_cancel()</field>
<field name="join_mode">XOR</field>
</record>
<!--
workflow transition
-->
<record model="workflow.activity" id="act_cancel">
<field name="wkf_id" ref="wkf_holidays" />
<field name="name">cancel</field>
<field name="flow_stop">True</field>
<field name="kind">stopall</field>
<field name="action">holidays_cancel()</field>
<field name="join_mode">XOR</field>
</record>
<!--
workflow transition
-->
<record model="workflow.transition" id="t1">
<field name="act_from" ref="act_draft" />
<field name="act_to" ref="act_confirm" />
<field name="signal">confirm</field>
</record>
<record model="workflow.transition" id="t2">
<field name="act_from" ref="act_confirm" />
<field name="act_to" ref="act_validate" />
<field name="signal">validate</field>
<field name="role_id" ref="HR_holidays"/>
</record>
<record model="workflow.transition" id="t1">
<field name="act_from" ref="act_draft" />
<field name="act_to" ref="act_confirm" />
<field name="signal">confirm</field>
</record>
<record model="workflow.transition" id="t2">
<field name="act_from" ref="act_confirm" />
<field name="act_to" ref="act_validate" />
<field name="signal">validate</field>
<field name="role_id" ref="HR_holidays"/>
</record>
<record model="workflow.transition" id="t3">
<field name="act_from" ref="act_confirm" />
<field name="act_to" ref="act_refuse" />
<field name="signal">refuse</field>
<field name="role_id" ref="HR_holidays"/>
</record>
<record model="workflow.transition" id="t3">
<field name="act_from" ref="act_confirm" />
<field name="act_to" ref="act_refuse" />
<field name="signal">refuse</field>
<field name="role_id" ref="HR_holidays"/>
</record>
<record model="workflow.transition" id="t4">
<field name="act_from" ref="act_validate" />
<field name="act_to" ref="act_cancel" />
<field name="signal">cancel</field>
<field name="role_id" ref="HR_holidays"/>
</record>
<record model="workflow.transition" id="t4">
<field name="act_from" ref="act_validate" />
<field name="act_to" ref="act_cancel" />
<field name="signal">cancel</field>
<field name="role_id" ref="HR_holidays"/>
</record>
<record model="workflow.transition" id="t5">
<field name="act_from" ref="act_refuse" />
<field name="act_to" ref="act_cancel" />
<field name="signal">cancel</field>
<field name="role_id" ref="HR_holidays"/>
</record>
<record model="workflow.transition" id="t5">
<field name="act_from" ref="act_refuse" />
<field name="act_to" ref="act_cancel" />
<field name="signal">cancel</field>
<field name="role_id" ref="HR_holidays"/>
</record>
<record model="workflow.transition" id="t7">
<field name="act_from" ref="act_cancel" />
<field name="act_to" ref="act_draft" />
<field name="signal">set_to_draft</field>
</record>
<record model="workflow.transition" id="t7">
<field name="act_from" ref="act_cancel" />
<field name="act_to" ref="act_draft" />
<field name="signal">set_to_draft</field>
</record>
</data>
</openerp>

View File

@ -4,7 +4,8 @@
<report auto="False" id="report_user_timesheet" menu="False" model="hr.employee" name="hr.analytical.timesheet" string="Employee timesheet" xsl="hr_timesheet/report/user_timesheet.xsl"/>
<wizard id="wizard_hr_timesheet" menu="False" model="hr.employee" name="hr.analytical.timesheet" string="Employee Timesheet"/>
<menuitem id="next_id_48" name="Timesheet" parent="hr.menu_hr_reporting"/><menuitem action="wizard_hr_timesheet" id="menu_wizard_hr_timesheet" parent="next_id_48" type="wizard"
<menuitem id="next_id_48" name="Timesheet" parent="hr.menu_hr_reporting"/>
<menuitem action="wizard_hr_timesheet" id="menu_wizard_hr_timesheet" parent="next_id_48" type="wizard"
groups="hr.group_hr_manager"
/>

View File

@ -60,19 +60,8 @@
</field>
</record>
<menuitem id="menu_act_hr_timesheet_line_today_form" parent="hr.menu_hr_root" name="Working Hours" />
<menuitem id="menu_act_hr_timesheet_line_today_form" parent="hr.menu_hr_time" name="Working Hours" />
<record id="act_hr_timesheet_line_me_all_form" model="ir.actions.act_window">
<field name="name">My Working Hours</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr.analytic.timesheet</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('user_id','=',uid)]</field>
<field name="filter" eval="True"/>
<field name="search_view_id" ref="hr_timesheet_line_search"/>
</record>
<record id="act_hr_timesheet_line_evry1_all_form" model="ir.actions.act_window">
<field name="name">Working Hours</field>
<field name="type">ir.actions.act_window</field>

View File

@ -2,7 +2,7 @@
<openerp>
<data>
<wizard id="si_so" model="hr.employee" name="hr_timesheet.si_so" string="Sign in / Sign out by project"/>
<menuitem action="si_so" id="menu_si_so" parent="hr_attendance.menu_hr_attendance" type="wizard"/>
<menuitem action="si_so" id="menu_si_so" parent="hr.menu_hr_time" type="wizard"/>
</data>
</openerp>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-01-08 03:53+0000\n"
"PO-Revision-Date: 2010-01-10 02:05+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-11 04:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_timesheet
@ -101,7 +101,7 @@ msgstr "起始日"
#. module: hr_timesheet
#: field:hr.employee,product_id:0
msgid "Product"
msgstr ""
msgstr "货品"
#. module: hr_timesheet
#: selection:hr.analytical.timesheet,init,month:0

View File

@ -24,10 +24,10 @@
groups="account.group_account_manager"/>
<menuitem action="account_analytic_profit"
id="print_account_analytic_profit"
parent="hr.menu_hr_reporting"
type="wizard"
groups="hr.group_hr_manager"/>
id="print_account_analytic_profit"
parent="hr.menu_hr_reporting"
type="wizard"
groups="hr.group_hr_manager"/>
</data>
</openerp>

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem id="hr.menu_hr_reporting" name="Reporting" parent="hr.menu_hr_root" sequence="40"/>
<record id="account_analytic_account_form_form" model="ir.ui.view">
<field name="name">account.analytic.account.invoice.form</field>
<field name="model">account.analytic.account</field>
@ -106,7 +105,10 @@
<field name="view_mode">tree,form</field>
<field name="domain">[('to_invoice','&lt;&gt;',False)]</field>
</record>
<menuitem action="action_hr_analytic_timesheet_open_tree" id="menu_hr_analytic_timesheet_tree" parent="account.menu_finance_periodical_processing"/>
<menuitem
action="action_hr_analytic_timesheet_open_tree"
id="menu_hr_analytic_timesheet_tree"
parent="account.menu_finance_periodical_processing"/>
<record id="action_hr_analytic_timesheet_tree_invoiced" model="ir.actions.act_window">
<field name="name">Uninvoiced Entries</field>
@ -164,7 +166,10 @@
<field name="view_type">form</field>
<field name="view_id" ref="view_hr_timesheet_invoice_factor_tree"/>
</record>
<menuitem action="action_hr_timesheet_invoice_factor_form" id="hr_timesheet_invoice_factor_view" parent="account.account_analytic_def_account"/>
<menuitem
action="action_hr_timesheet_invoice_factor_form"
id="hr_timesheet_invoice_factor_view"
parent="account.account_analytic_def_account"/>
</data>
</openerp>

View File

@ -200,9 +200,9 @@
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="view_hr_timesheet_sheet_filter"/>
</record>
<menuitem id="next_id_60" name="Timesheets" parent="hr.menu_hr_root"/>
<menuitem action="act_hr_timesheet_sheet_form" id="menu_act_hr_timesheet_sheet_form" parent="next_id_60"
groups="hr.group_hr_manager"/>
<menuitem
action="act_hr_timesheet_sheet_form"
id="menu_act_hr_timesheet_sheet_form" parent="hr.menu_hr_time"/>
<!--
Company inheritancy

View File

@ -24,7 +24,8 @@
'name': 'eMail Gateway',
'version': '1.0',
'category': 'Generic Modules/eMail Gate',
'description': """The generic email gateway system for the synchronisation interface
'description': """
The generic email gateway system for the synchronisation interface
between mails and Open Objects.
""",
'author': 'Tiny',

View File

@ -195,11 +195,10 @@ class mail_gateway(osv.osv):
s = decode_header(s)
return ''.join(map(lambda x:x[0].decode(x[1] or 'ascii', 'replace'), s))
def msg_new(self, cr, uid, msg, model):
message = self.msg_body_get(msg)
def msg_new(self, cr, uid, msg, model):
message = self.msg_body_get(msg)
res_model = self.pool.get(model)
res_id = res_model.msg_new(cr, uid, msg)
res_id = res_model.msg_new(cr, uid, msg)
if res_id:
attachments = message['attachment']
@ -376,5 +375,3 @@ class mail_gateway_history(osv.osv):
}
_order = 'id desc'
mail_gateway_history()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-01-30 13:20+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-01-10 02:12+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:07+0000\n"
"X-Launchpad-Export-Date: 2010-01-11 04:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: membership
@ -24,24 +24,24 @@ msgstr ""
#. module: membership
#: model:process.process,name:membership.process_process_membershipprocess0
msgid "Membership Process"
msgstr ""
msgstr "会员流程"
#. module: membership
#: selection:membership.membership_line,state:0
#: selection:res.partner,membership_state:0
msgid "Paid Member"
msgstr ""
msgstr "付费会员"
#. module: membership
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "在动作定义中输入的对象名称错误"
#. module: membership
#: field:report.partner_member.year,currency:0
#: field:report.partner_member.year_new,currency:0
msgid "Currency"
msgstr ""
msgstr "货币"
#. module: membership
#: model:process.node,note:membership.process_node_setassociation0
@ -51,7 +51,7 @@ msgstr ""
#. module: membership
#: model:process.transition,note:membership.process_transition_invoicetopaid0
msgid "Invoice is be paid."
msgstr ""
msgstr "发票已经付款。"
#. module: membership
#: model:process.node,note:membership.process_node_membershipproduct0
@ -66,7 +66,7 @@ msgstr ""
#. module: membership
#: model:process.transition,name:membership.process_transition_waitingtoinvoice0
msgid "Waiting to invoice"
msgstr ""
msgstr "等待开票"
#. module: membership
#: model:process.transition,name:membership.process_transition_producttomember0
@ -91,7 +91,7 @@ msgstr ""
#. module: membership
#: constraint:account.account:0
msgid "Error ! You can not create recursive accounts."
msgstr ""
msgstr "错误!你不能创建递归科目。"
#. module: membership
#: constraint:account.invoice:0
@ -106,13 +106,13 @@ msgstr ""
#. module: membership
#: field:membership.membership_line,partner:0
msgid "Partner"
msgstr ""
msgstr "业务伙伴"
#. module: membership
#: model:ir.actions.act_window,name:membership.action_membership_members_free
#: model:ir.ui.menu,name:membership.menu_members_free
msgid "Free members"
msgstr ""
msgstr "免费会员列表"
#. module: membership
#: model:process.transition,name:membership.process_transition_invoicetopaid0
@ -137,17 +137,17 @@ msgstr ""
#. module: membership
#: wizard_button:wizard_invoice_membership,init,ok:0
msgid "Confirm"
msgstr ""
msgstr "确认"
#. module: membership
#: model:process.transition.action,name:membership.process_transition_action_create0
msgid "Create"
msgstr ""
msgstr "创建"
#. module: membership
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
msgstr "无效的 XML 视图架构!"
#. module: membership
#: model:ir.model,name:membership.model_membership_membership_line
@ -157,7 +157,7 @@ msgstr ""
#. module: membership
#: field:membership.membership_line,state:0
msgid "State"
msgstr ""
msgstr "状态"
#. module: membership
#: field:res.partner,membership_start:0
@ -167,7 +167,7 @@ msgstr ""
#. module: membership
#: model:process.node,name:membership.process_node_paidmember0
msgid "Paid member"
msgstr ""
msgstr "付费会员"
#. module: membership
#: model:ir.model,name:membership.model_report_partner_member_year
@ -184,13 +184,13 @@ msgstr "报表"
#. module: membership
#: view:res.partner:0
msgid "Members"
msgstr ""
msgstr "会员列表"
#. module: membership
#: selection:membership.membership_line,state:0
#: selection:res.partner,membership_state:0
msgid "Non Member"
msgstr ""
msgstr "非会员"
#. module: membership
#: model:process.node,note:membership.process_node_invoicedmember0
@ -215,7 +215,7 @@ msgstr ""
#. module: membership
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
msgstr ""
msgstr "错误:销售单位必须和计量单位在不同的分类。"
#. module: membership
#: model:ir.ui.menu,name:membership.menu_membership_products
@ -249,12 +249,12 @@ msgstr ""
#: field:report.partner_member.year_new,canceled_amount:0
#: field:report.partner_member.year_new,canceled_number:0
msgid "Canceled"
msgstr ""
msgstr "已取消"
#. module: membership
#: model:product.pricelist,name:membership.list1m
msgid "Member Sale Pricelist"
msgstr ""
msgstr "会员销售价格表"
#. module: membership
#: field:report.partner_member.year,invoiced_amount:0
@ -262,24 +262,24 @@ msgstr ""
#: field:report.partner_member.year_new,invoiced_amount:0
#: field:report.partner_member.year_new,invoiced_number:0
msgid "Invoiced"
msgstr ""
msgstr "已开票"
#. module: membership
#: selection:membership.membership_line,state:0
#: selection:res.partner,membership_state:0
msgid "Free Member"
msgstr ""
msgstr "免费会员"
#. module: membership
#: model:product.pricelist.version,name:membership.ver1m
msgid "Member Sale Pricelist Version"
msgstr ""
msgstr "会员销售价格表版本"
#. module: membership
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
msgstr "错误:默认计量单位和采购计量单位必须在同一分类中。"
#. module: membership
#: help:res.partner,membership_amount:0
@ -299,7 +299,7 @@ msgstr ""
#. module: membership
#: field:res.partner,membership_cancel:0
msgid "Cancel membership date"
msgstr ""
msgstr "取消会员资格时间"
#. module: membership
#: model:ir.actions.act_window,name:membership.action_membership_products
@ -317,7 +317,7 @@ msgstr ""
#: field:report.partner_member.year_new,paid_amount:0
#: field:report.partner_member.year_new,paid_number:0
msgid "Paid"
msgstr ""
msgstr "已付款"
#. module: membership
#: selection:membership.membership_line,state:0
@ -333,7 +333,7 @@ msgstr ""
#: view:res.partner:0
#: field:res.partner,member_lines:0
msgid "Membership"
msgstr ""
msgstr "会员"
#. module: membership
#: help:product.product,membership:0
@ -360,7 +360,7 @@ msgstr ""
#. module: membership
#: constraint:product.pricelist.version:0
msgid "You cannot have 2 pricelist versions that overlap!"
msgstr ""
msgstr "您不能同时具有两个重叠的价格表版本。"
#. module: membership
#: model:ir.actions.act_window,name:membership.action_membership_members_old
@ -395,7 +395,7 @@ msgstr ""
#: field:report.partner_member.year_new,waiting_amount:0
#: field:report.partner_member.year_new,waiting_number:0
msgid "Waiting"
msgstr ""
msgstr "等待"
#. module: membership
#: model:process.transition,note:membership.process_transition_waitingtoinvoice0
@ -410,7 +410,7 @@ msgstr ""
#. module: membership
#: wizard_button:wizard_invoice_membership,init,end:0
msgid "Cancel"
msgstr ""
msgstr "取消"
#. module: membership
#: model:ir.actions.act_window,name:membership.action_membership_members_associated
@ -438,7 +438,7 @@ msgstr ""
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
msgstr "对象名称必须以“x_”起头且不能包含任何特殊字符"
#. module: membership
#: model:process.node,note:membership.process_node_waitingmember0
@ -471,7 +471,7 @@ msgstr ""
#: model:ir.actions.act_window,name:membership.action_membership_members
#: model:ir.ui.menu,name:membership.menu_members
msgid "Current members"
msgstr ""
msgstr "现有会员列表"
#. module: membership
#: model:ir.model,name:membership.model_report_partner_member_year_new
@ -509,7 +509,7 @@ msgstr ""
#. module: membership
#: constraint:product.product:0
msgid "Error: Invalid ean code"
msgstr ""
msgstr "错误:无效的(EAN)条码"
#. module: membership
#: field:report.partner_member.year,year:0
@ -520,4 +520,4 @@ msgstr ""
#. module: membership
#: field:res.partner,membership_state:0
msgid "Current membership state"
msgstr ""
msgstr "当前会员资格状态"

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:16+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp

View File

@ -7,16 +7,16 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-04-10 14:08+0000\n"
"Last-Translator: <>\n"
"PO-Revision-Date: 2010-01-09 16:20+0000\n"
"Last-Translator: Carlo <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:26+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_jit
#: model:ir.module.module,shortdesc:mrp_jit.module_meta_information
msgid "MRP JIT"
msgstr ""
msgstr "MRP JIT"

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 16:23+0000\n"
"Last-Translator: xango60 <nicola.mt@alice.it>\n"
"PO-Revision-Date: 2010-01-09 14:51+0000\n"
"Last-Translator: Carlo <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:26+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_repair
@ -25,106 +25,106 @@ msgstr ""
#: field:mrp.repair.fee,repair_id:0
#: field:mrp.repair.line,repair_id:0
msgid "Repair Order Ref"
msgstr ""
msgstr "Rif. Ordine riparazione"
#. module: mrp_repair
#: field:mrp.repair.line,move_id:0
msgid "Inventory Move"
msgstr ""
msgstr "Muovi inventario"
#. module: mrp_repair
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nome del modulo non valido nella definizione dell'azione."
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Untaxed amount"
msgstr ""
msgstr "Totale Imponibile"
#. module: mrp_repair
#: field:mrp.repair,state:0
msgid "Repair State"
msgstr ""
msgstr "Stato riparazione"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Printing Date"
msgstr ""
msgstr "Data stampa"
#. module: mrp_repair
#: field:mrp.repair.fee,product_uom_qty:0
#: rml:repair.order:0
msgid "Quantity"
msgstr ""
msgstr "Quantità"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Set to Draft"
msgstr ""
msgstr "Imposta come Bozza"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Invoice Exception"
msgstr ""
msgstr "Eccezione Fattura"
#. module: mrp_repair
#: field:mrp.repair,address_id:0
msgid "Delivery Address"
msgstr ""
msgstr "Indirizzo spedizione"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Make Invoice"
msgstr ""
msgstr "Crea Fattura"
#. module: mrp_repair
#: field:mrp.repair.fee,price_subtotal:0
#: field:mrp.repair.line,price_subtotal:0
msgid "Subtotal"
msgstr ""
msgstr "Sub Totale"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Invoice address :"
msgstr ""
msgstr "Indirizzo fatturazione :"
#. module: mrp_repair
#: field:mrp.repair,guarantee_limit:0
msgid "Guarantee limit"
msgstr ""
msgstr "Scadenza garanzia"
#. module: mrp_repair
#: field:mrp.repair,amount_tax:0
#: field:mrp.repair.fee,tax_id:0
#: field:mrp.repair.line,tax_id:0
msgid "Taxes"
msgstr ""
msgstr "Imposte"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Net Total :"
msgstr ""
msgstr "Totale netto :"
#. module: mrp_repair
#: rml:repair.order:0
msgid "VAT"
msgstr ""
msgstr "IVA"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Operations"
msgstr ""
msgstr "Operazioni"
#. module: mrp_repair
#: field:mrp.repair,move_id:0
msgid "Move"
msgstr ""
msgstr "Sposta"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_tree
msgid "Repair Orders"
msgstr ""
msgstr "Ordini riparazione"
#. module: mrp_repair
#: model:ir.actions.report.xml,name:mrp_repair.report_mrp_repair
@ -134,50 +134,50 @@ msgstr "Preventivo / Ordine"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Extra Info"
msgstr ""
msgstr "Informazioni Aggiuntive"
#. module: mrp_repair
#: field:mrp.repair,partner_id:0
msgid "Partner"
msgstr ""
msgstr "Partner"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_quotation_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_quotation
msgid "Repairs in quotation"
msgstr ""
msgstr "Preventivo Riparazioni"
#. module: mrp_repair
#: selection:mrp.repair,state:0
#: selection:mrp.repair.line,state:0
msgid "Confirmed"
msgstr ""
msgstr "Confermato"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Recreate Invoice"
msgstr ""
msgstr "Ricrea Fattura"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Repairs order"
msgstr ""
msgstr "Ordine riparazioni"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Repair Order N° :"
msgstr ""
msgstr "Riparazione Ordine N° :"
#. module: mrp_repair
#: field:mrp.repair,prodlot_id:0
#: rml:repair.order:0
msgid "Lot Number"
msgstr ""
msgstr "Numero Lotto"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Under Repair"
msgstr ""
msgstr "In Riparazione"
#. module: mrp_repair
#: field:mrp.repair,fees_lines:0
@ -197,65 +197,65 @@ msgstr ""
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "To be Invoiced"
msgstr ""
msgstr "Da fatturare"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Shipping address :"
msgstr ""
msgstr "Indirizzo Spedizione:"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Start Repair"
msgstr ""
msgstr "Inizio Riparazione"
#. module: mrp_repair
#: field:mrp.repair.line,product_uom_qty:0
msgid "Quantity (UoM)"
msgstr ""
msgstr "Quantità (Unità di misura)"
#. module: mrp_repair
#: field:mrp.repair.fee,to_invoice:0
#: field:mrp.repair.line,to_invoice:0
msgid "To Invoice"
msgstr ""
msgstr "A Fatturare"
#. module: mrp_repair
#: model:ir.ui.menu,name:mrp_repair.menu_repair_order
msgid "Repairs"
msgstr ""
msgstr "Riparazioni"
#. module: mrp_repair
#: field:mrp.repair,picking_id:0
msgid "Packing"
msgstr ""
msgstr "Imballaggio"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Total :"
msgstr ""
msgstr "Totale :"
#. module: mrp_repair
#: field:mrp.repair,pricelist_id:0
msgid "Pricelist"
msgstr ""
msgstr "Listino Prezzi"
#. module: mrp_repair
#: help:mrp.repair,state:0
msgid "Gives the state of the Repair Order"
msgstr ""
msgstr "Visualizza la situazione degli Ordine in riparazione"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair,quotation_notes:0
msgid "Quotation Notes"
msgstr ""
msgstr "Note sulle Quotazioni"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_progress_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_progress
msgid "Repairs in progress"
msgstr ""
msgstr "Riparazione in corso"
#. module: mrp_repair
#: constraint:ir.ui.view:0
@ -274,93 +274,93 @@ msgstr ""
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Repair Line"
msgstr ""
msgstr "Linea Riparazione"
#. module: mrp_repair
#: rml:repair.order:0
msgid "N° :"
msgstr ""
msgstr "N° :"
#. module: mrp_repair
#: field:mrp.repair,invoice_method:0
msgid "Invoice Method"
msgstr ""
msgstr "Metodo Fatturazione"
#. module: mrp_repair
#: field:mrp.repair,repaired:0
msgid "Repaired"
msgstr ""
msgstr "Riparato"
#. module: mrp_repair
#: wizard_field:mrp.repair.make_invoice,init,group:0
msgid "Group by partner invoice address"
msgstr ""
msgstr "Raggruppa per l'indirizzo di fatturazione del cliente"
#. module: mrp_repair
#: field:mrp.repair.fee,invoice_line_id:0
#: field:mrp.repair.line,invoice_line_id:0
msgid "Invoice Line"
msgstr ""
msgstr "Voce fattura"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Total amount"
msgstr ""
msgstr "Importo Totale"
#. module: mrp_repair
#: selection:mrp.repair.line,state:0
msgid "Canceled"
msgstr ""
msgstr "Cancellato"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "Before Repair"
msgstr ""
msgstr "Prima della Riparazione"
#. module: mrp_repair
#: field:mrp.repair,location_id:0
msgid "Current Location"
msgstr ""
msgstr "Località corrente"
#. module: mrp_repair
#: wizard_button:mrp.repair.cancel,display,yes:0
msgid "Yes"
msgstr ""
msgstr "Si"
#. module: mrp_repair
#: field:mrp.repair,invoiced:0
#: field:mrp.repair.fee,invoiced:0
#: field:mrp.repair.line,invoiced:0
msgid "Invoiced"
msgstr ""
msgstr "Fatturato"
#. module: mrp_repair
#: wizard_button:mrp.repair.cancel,display,end:0
msgid "No"
msgstr ""
msgstr "No"
#. module: mrp_repair
#: wizard_view:mrp.repair.make_invoice,init:0
#: wizard_button:mrp.repair.make_invoice,init,invoice:0
msgid "Create invoices"
msgstr ""
msgstr "Prepara Fatture"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
#: rml:repair.order:0
msgid "Add"
msgstr ""
msgstr "Aggiungi"
#. module: mrp_repair
#: selection:mrp.repair.line,state:0
msgid "Draft"
msgstr ""
msgstr "Bozza"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_order_form
#: model:ir.ui.menu,name:mrp_repair.menu_repair_form
msgid "New Repair"
msgstr ""
msgstr "Nuova Riparazione"
#. module: mrp_repair
#: constraint:ir.model:0
@ -373,28 +373,30 @@ msgstr ""
#. module: mrp_repair
#: field:mrp.repair,amount_untaxed:0
msgid "Untaxed Amount"
msgstr ""
msgstr "Totale Imponibile"
#. module: mrp_repair
#: field:mrp.repair.line,state:0
msgid "Status"
msgstr ""
msgstr "Stato"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Guarantee Limit"
msgstr ""
msgstr "Limite di Garanzia"
#. module: mrp_repair
#: field:mrp.repair,product_id:0
#: rml:repair.order:0
msgid "Product to Repair"
msgstr ""
msgstr "Prodotto da Riparare"
#. module: mrp_repair
#: help:mrp.repair,pricelist_id:0
msgid "The pricelist comes from the selected partner, by default."
msgstr ""
"Il listino prezzi viene dal partner selezionato, per impostazione "
"predefinita."
#. module: mrp_repair
#: wizard_view:mrp.repair.cancel,display:0
@ -402,69 +404,71 @@ msgid ""
"This operation will cancel the Repair process, but will not cancel it's "
"Invoice. Do you want to continue?"
msgstr ""
"Questa operazione cancellerà il processo di Riparazione, ma non cancellerà "
"la sua Fattura. Vuoi continuare?"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Quotation"
msgstr ""
msgstr "Preventivo"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Compute"
msgstr ""
msgstr "Calcola"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Confirm Repair"
msgstr ""
msgstr "Conferma Riparazione"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Repair Quotation"
msgstr ""
msgstr "Preventivo di Riparazione"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "End Repair"
msgstr ""
msgstr "Fine Riparazione"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "History"
msgstr ""
msgstr "Cronologia"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair
msgid "Repairs Order"
msgstr ""
msgstr "Ordine Riparazione"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_ready_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_ready
msgid "Repairs Ready to Start"
msgstr ""
msgstr "Riparazione pronta a partire"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Qty"
msgstr ""
msgstr "Qtà"
#. module: mrp_repair
#: selection:mrp.repair,state:0
#: selection:mrp.repair.line,state:0
msgid "Done"
msgstr ""
msgstr "Completato"
#. module: mrp_repair
#: model:ir.actions.act_window,name:mrp_repair.action_repair_2binvoiced_tree
#: model:ir.ui.menu,name:mrp_repair.menu_repair_2binvoiced
msgid "Repairs to be invoiced"
msgstr ""
msgstr "Riparazioni da fatturare"
#. module: mrp_repair
#: field:mrp.repair,invoice_id:0
msgid "Invoice"
msgstr ""
msgstr "Fattura"
#. module: mrp_repair
#: view:mrp.repair:0
@ -475,32 +479,32 @@ msgstr ""
#: selection:mrp.repair,state:0
#: wizard_button:mrp.repair.make_invoice,init,end:0
msgid "Cancel"
msgstr ""
msgstr "Cancella"
#. module: mrp_repair
#: field:mrp.repair.line,location_dest_id:0
msgid "Dest. Location"
msgstr ""
msgstr "Ubicazione di Destinazione"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Operation Line(s)"
msgstr ""
msgstr "Voci Operazioni"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_mrp_repair_line
msgid "Repair Operations Lines"
msgstr ""
msgstr "Voci Operazioni di Riparazione"
#. module: mrp_repair
#: field:mrp.repair,location_dest_id:0
msgid "Delivery Location"
msgstr ""
msgstr "Luogo di Consegna"
#. module: mrp_repair
#: model:ir.module.module,shortdesc:mrp_repair.module_meta_information
msgid "Products Repairs Module"
msgstr ""
msgstr "Modulo Riparazione Prodotti"
#. module: mrp_repair
#: help:mrp.repair,invoice_method:0
@ -515,35 +519,35 @@ msgstr ""
#: field:mrp.repair.line,price_unit:0
#: rml:repair.order:0
msgid "Unit Price"
msgstr ""
msgstr "Prezzo Unitario"
#. module: mrp_repair
#: wizard_view:mrp.repair.make_invoice,init:0
msgid "Do you really want to create the invoices ?"
msgstr ""
msgstr "Vuoi veramente creare la Fattura ?"
#. module: mrp_repair
#: field:mrp.repair.fee,name:0
#: field:mrp.repair.line,name:0
#: rml:repair.order:0
msgid "Description"
msgstr ""
msgstr "Descrizione"
#. module: mrp_repair
#: field:mrp.repair,operations:0
msgid "Operation Lines"
msgstr ""
msgstr "Voci Operazioni"
#. module: mrp_repair
#: field:mrp.repair.fee,product_id:0
#: field:mrp.repair.line,product_id:0
msgid "Product"
msgstr ""
msgstr "Prodotto"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Invoice Corrected"
msgstr ""
msgstr "Fattura corretta"
#. module: mrp_repair
#: help:mrp.repair,deliver_bool:0
@ -557,28 +561,28 @@ msgstr ""
#. module: mrp_repair
#: field:mrp.repair.line,type:0
msgid "Type"
msgstr ""
msgstr "Tipo"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Price"
msgstr ""
msgstr "Prezzo"
#. module: mrp_repair
#: field:mrp.repair,deliver_bool:0
msgid "Deliver"
msgstr ""
msgstr "Consegna"
#. module: mrp_repair
#: view:mrp.repair:0
#: field:mrp.repair,internal_notes:0
msgid "Internal Notes"
msgstr ""
msgstr "Note Interne"
#. module: mrp_repair
#: rml:repair.order:0
msgid "Taxes:"
msgstr ""
msgstr "Tasse:"
#. module: mrp_repair
#: model:ir.actions.wizard,name:mrp_repair.wizard_mrp_repair_make_invoice
@ -588,70 +592,70 @@ msgstr "Crea fatture"
#. module: mrp_repair
#: field:mrp.repair,name:0
msgid "Repair Ref"
msgstr ""
msgstr "Rif. Riparazione"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "UoM"
msgstr ""
msgstr "Unità di Misura"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
#: rml:repair.order:0
msgid "Remove"
msgstr ""
msgstr "Rimuovi"
#. module: mrp_repair
#: wizard_view:mrp.repair.cancel,display:0
msgid "Cancel Repair...??"
msgstr ""
msgstr "Cancellare Riparazione...??"
#. module: mrp_repair
#: field:mrp.repair.fee,product_uom:0
#: field:mrp.repair.line,product_uom:0
msgid "Product UoM"
msgstr ""
msgstr "Unità di Misura Prodotto"
#. module: mrp_repair
#: field:mrp.repair,partner_invoice_id:0
msgid "Invoicing Address"
msgstr ""
msgstr "Indirizzo Fatturazione"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "After Repair"
msgstr ""
msgstr "Dopo la Riparazione"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Invoicing"
msgstr ""
msgstr "Fatturazione"
#. module: mrp_repair
#: field:mrp.repair.line,location_id:0
msgid "Source Location"
msgstr ""
msgstr "Ubicazione di Provenienza"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "Quality"
msgstr ""
msgstr "Qualità"
#. module: mrp_repair
#: model:ir.actions.wizard,name:mrp_repair.action_cancel_repair
#: view:mrp.repair:0
msgid "Cancel Repair"
msgstr ""
msgstr "Cancella Riparazione"
#. module: mrp_repair
#: selection:mrp.repair,invoice_method:0
msgid "No Invoice"
msgstr ""
msgstr "Fattura N°"
#. module: mrp_repair
#: view:mrp.repair:0
msgid "States"
msgstr ""
msgstr "Stato"
#. module: mrp_repair
#: help:mrp.repair,partner_id:0
@ -662,9 +666,9 @@ msgstr ""
#. module: mrp_repair
#: field:mrp.repair,amount_total:0
msgid "Total"
msgstr ""
msgstr "Totale"
#. module: mrp_repair
#: selection:mrp.repair,state:0
msgid "Ready to Repair"
msgstr ""
msgstr "Prodo da Riparare"

View File

@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-08 11:46+0000\n"
"PO-Revision-Date: 2009-12-19 07:40+0000\n"
"Last-Translator: Silence <Unknown>\n"
"PO-Revision-Date: 2010-01-10 01:53+0000\n"
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-20 04:36+0000\n"
"X-Launchpad-Export-Date: 2010-01-11 04:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: multi_company
#: help:multi_company.default,object_id:0
msgid "Object affect by this rules"
msgstr ""
msgstr "受此规则影响的对象"
#. module: multi_company
#: constraint:ir.model:0
@ -70,7 +70,7 @@ msgstr "对象"
#: model:ir.module.module,shortdesc:multi_company.module_meta_information
#: view:multi_company.default:0
msgid "Multi Company"
msgstr ""
msgstr "多公司"
#. module: multi_company
#: model:ir.module.module,description:multi_company.module_meta_information
@ -79,6 +79,8 @@ msgid ""
" the default value for each object\n"
" "
msgstr ""
"此模块提供了管理每个对象的默认值的可能性。\n"
" "
#. module: multi_company
#: field:multi_company.default,company_id:0
@ -93,7 +95,7 @@ msgstr "状态"
#. module: multi_company
#: help:multi_company.default,company_dest_id:0
msgid "Company to store the current record"
msgstr ""
msgstr "保存当前记录的公司"
#. module: multi_company
#: constraint:ir.ui.view:0
@ -113,7 +115,7 @@ msgstr "错误:销售单位必须和计量单位在不同的分类。"
#. module: multi_company
#: model:product.category,name:multi_company.Odoo1
msgid "Odoo Offers"
msgstr ""
msgstr "ODOO 服务提供者"
#. module: multi_company
#: constraint:res.company:0
@ -123,7 +125,7 @@ msgstr "错误!您不能创建循环的公司。"
#. module: multi_company
#: help:multi_company.default,name:0
msgid "Name it to easily find a record"
msgstr ""
msgstr "为了方便索搜请命名记录"
#. module: multi_company
#: model:ir.ui.menu,name:multi_company.menu_custom_multicompany
@ -133,7 +135,7 @@ msgstr "多公司"
#. module: multi_company
#: model:ir.model,name:multi_company.model_multi_company_default
msgid "multi_company.default"
msgstr ""
msgstr "multi_company.default"
#. module: multi_company
#: help:multi_company.default,company_id:0
@ -143,7 +145,7 @@ msgstr ""
#. module: multi_company
#: model:ir.actions.act_window,name:multi_company.action_inventory_form
msgid "Default Company per Object"
msgstr ""
msgstr "每个对象的默认公司"
#. module: multi_company
#: field:multi_company.default,expression:0
@ -153,7 +155,7 @@ msgstr "表达式"
#. module: multi_company
#: model:product.template,name:multi_company.product_product_odoo1_product_template
msgid "Odoo Offer"
msgstr ""
msgstr "ODOO 服务合同"
#. module: multi_company
#: field:multi_company.default,sequence:0
@ -173,12 +175,12 @@ msgstr "错误:无效的(EAN)条码"
#. module: multi_company
#: help:multi_company.default,expression:0
msgid "Expression, must be True to match"
msgstr ""
msgstr "表达式(为真则匹配)"
#. module: multi_company
#: model:ir.ui.menu,name:multi_company.menu_action_inventory_form
msgid "Default company per Object"
msgstr ""
msgstr "每个对象的默认公司"
#. module: multi_company
#: code:addons/multi_company/multi_company.py:0

View File

@ -361,6 +361,7 @@ class pos_order(osv.osv):
'product_uos_qty': abs(line.qty),
'product_qty': abs(line.qty),
'tracking_id': False,
'pos_line_id': line.id,
'state': 'waiting',
'location_id': location_id,
'location_dest_id': stock_dest_id,

View File

@ -23,6 +23,17 @@ from osv import osv, fields
import time
import netsvc
class stock_move(osv.osv):
_inherit = 'stock.move'
_columns = {
'pos_line_id': fields.many2one('pos.order.line',
'Pos Order Line', ondelete='set null', select=True,
readonly=True),
}
stock_move()
class stock_picking(osv.osv):
@ -30,6 +41,12 @@ class stock_picking(osv.osv):
_columns = {
'pos_order': fields.many2one('pos.order', 'Pos order'),
}
def _get_discount_invoice(self, cursor, user, move_line):
if move_line.pos_line_id:
return move_line.pos_line_id.discount
return super(stock_picking, self)._get_discount_invoice(cursor, user,
move_line)
stock_picking()

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:16+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: process

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_service

View File

@ -507,12 +507,20 @@ class message(osv.osv):
}
message()
def _project_get(self, cr, uid, context={}):
obj = self.pool.get('project.project')
ids = obj.search(cr, uid, [])
res = obj.read(cr, uid, ids, ['id','name'], context)
res = [(str(r['id']),r['name']) for r in res]
return res
class users(osv.osv):
_inherit = 'res.users'
_description ="User"
_description = "Users"
_columns = {
'project_id': fields.many2one('project.project', 'Project'),
'context_project_id': fields.selection(_project_get, 'Project'),
}
users()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -670,7 +670,7 @@ menu_main
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<field name="password" position="after">
<field name="project_id" widget="selection" />
<field name="context_project_id" completion="1"/>
</field>
</field>
</record>
@ -680,9 +680,10 @@ menu_main
<field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form_simple_modif" />
<field name="type">form</field>
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<page string="Current Activity" position="inside">
<field name="project_id" widget="selection"/>
<field name="context_project_id" completion="1" />
</page>
</field>
</record>

View File

@ -44,10 +44,7 @@
<field name="global" eval="True"/>
</record>
<record id="project_task_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','project.task'),('name','=','project_id')]"/>
<field name="operator">=</field>
<field name="operand">user.project_id.id</field>
<field name="domain_force">['|',('project_id','=',False),('project_id','=',[user.project_id.id])]</field>
<field name="domain_force">['|',('project_id','=',False),('project_id','=',user.context_project_id)]</field>
<field name="rule_group" ref="project_task_rule_group"/>
</record>
@ -57,10 +54,7 @@
<field name="global" eval="True"/>
</record>
<record id="project_task_work_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','project.task.work'),('name','=','task_id.project_id')]"/>
<field name="operator">=</field>
<field name="operand">user.project_id.id</field>
<field name="domain_force">['|',('task_id.project_id','=',False),('task_id.project_id','=',[user.project_id.id])]</field>
<field name="domain_force">['|',('task_id.project_id','=',False),('task_id.project_id','=',user.context_project_id)]</field>
<field name="rule_group" ref="project_task_work_rule_group"/>
</record>
@ -70,10 +64,7 @@
<field name="global" eval="True"/>
</record>
<record id="project_project_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','project.project'),('name','=','id')]"/>
<field name="operator">=</field>
<field name="operand">user.project_id.id</field>
<field name="domain_force">['|',('id','=',False),('id','=',[user.project_id.id])]</field>
<field name="domain_force">['|',('id','=',False),('id','=',user.context_project_id)]</field>
<field name="rule_group" ref="project_project_rule_group"/>
</record>
@ -83,10 +74,7 @@
<field name="global" eval="True"/>
</record>
<record id="project_message_rule" model="ir.rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','project.message'),('name','=','project_id')]"/>
<field name="operator">=</field>
<field name="operand">user.project_id.id</field>
<field name="domain_force">['|',('project_id','=',False),('project_id','=',[user.project_id.id])]</field>
<field name="domain_force">['|',('project_id','=',False),('project_id','=',user.context_project_id)]</field>
<field name="rule_group" ref="project_message_rule_group"/>
</record>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-16 12:48+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-01-09 14:07+0000\n"
"Last-Translator: Carlo <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:06+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:16+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: purchase
@ -24,7 +24,7 @@ msgstr "Fatturato e Pagato"
#. module: purchase
#: model:process.node,note:purchase.process_node_invoiceafterpacking0
msgid "Supplier Invoice pre-generated on receptions for control"
msgstr ""
msgstr "Fattura fornitore pregenerata per il controllo dei ricevimenti"
#. module: purchase
#: field:purchase.order,location_id:0
@ -39,12 +39,12 @@ msgstr "Da Prelievo"
#. module: purchase
#: rml:purchase.order:0
msgid "Validated By"
msgstr ""
msgstr "Convalidato da"
#. module: purchase
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nome del modulo non valido nella definizione dell'azione."
#. module: purchase
#: field:purchase.order,partner_id:0
@ -64,12 +64,12 @@ msgstr "Quantità"
#. module: purchase
#: selection:purchase.order,invoice_method:0
msgid "From Order"
msgstr ""
msgstr "Da ordine"
#. module: purchase
#: model:process.node,name:purchase.process_node_confirmpurchaseorder0
msgid "Confirmed Purchase"
msgstr ""
msgstr "Acquisto Confermato"
#. module: purchase
#: selection:purchase.order,state:0
@ -84,7 +84,7 @@ msgstr "Listino Predefinito Prezzi Acquisto"
#. module: purchase
#: model:process.transition.action,name:purchase.process_transition_action_invoicefrompurchaseorder0
msgid "Create invoice"
msgstr ""
msgstr "Crea Fattura"
#. module: purchase
#: help:res.partner,property_product_pricelist_purchase:0
@ -117,7 +117,7 @@ msgstr ""
#. module: purchase
#: model:process.process,name:purchase.process_process_purchaseprocess0
msgid "Purchase Process"
msgstr ""
msgstr "Procedura d'acquisto"
#. module: purchase
#: model:process.transition,name:purchase.process_transition_invoicefrompackinglist0
@ -210,7 +210,7 @@ msgstr "Origine"
#. module: purchase
#: model:process.node,name:purchase.process_node_packinglist0
msgid "Incoming Products"
msgstr ""
msgstr "Prodotti in arrivo"
#. module: purchase
#: rml:purchase.order:0
@ -221,12 +221,12 @@ msgstr "Qta'"
#. module: purchase
#: view:purchase.order:0
msgid "Manually Corrected"
msgstr ""
msgstr "Correzione manuale"
#. module: purchase
#: view:purchase.order:0
msgid "Reference"
msgstr ""
msgstr "Referenza"
#. module: purchase
#: rml:purchase.order:0
@ -236,7 +236,7 @@ msgstr "IVA :"
#. module: purchase
#: rml:purchase.quotation:0
msgid "Tel.:"
msgstr ""
msgstr "Tel.:"
#. module: purchase
#: field:purchase.order.line,account_analytic_id:0
@ -267,7 +267,7 @@ msgstr ""
#. module: purchase
#: model:process.node,note:purchase.process_node_packinginvoice0
msgid "Invoice based on deliveries"
msgstr ""
msgstr "Fattura sulla base delle consegne"
#. module: purchase
#: rml:purchase.order:0
@ -287,7 +287,7 @@ msgstr "Confermato"
#. module: purchase
#: model:process.node,name:purchase.process_node_productrecept0
msgid "Product Receipt"
msgstr ""
msgstr "Prodotto ricevuto"
#. module: purchase
#: model:process.transition.action,name:purchase.process_transition_action_confirmpurchaseorder0
@ -303,7 +303,7 @@ msgstr "Controllo Fatturazione"
#: model:process.node,name:purchase.process_node_draftpurchaseorder0
#: model:process.node,name:purchase.process_node_draftpurchaseorder1
msgid "RFQ"
msgstr ""
msgstr "RFQ"
#. module: purchase
#: selection:purchase.order,state:0
@ -328,12 +328,12 @@ msgstr "Righe Ordine"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder1
msgid "Confirm Purchase order from Request for quotation without origin"
msgstr ""
msgstr "Conferma dell'ordine di acquisto"
#. module: purchase
#: rml:purchase.quotation:0
msgid "Fax:"
msgstr ""
msgstr "Fax:"
#. module: purchase
#: view:purchase.order:0
@ -343,7 +343,7 @@ msgstr "Totale Imponibile"
#. module: purchase
#: rml:purchase.quotation:0
msgid "Expected Date"
msgstr ""
msgstr "Data prevista"
#. module: purchase
#: rml:purchase.order:0
@ -359,7 +359,7 @@ msgstr "Listino Prezzi d'Acquisto"
#. module: purchase
#: field:purchase.order,minimum_planned_date:0
msgid "Planned Date"
msgstr ""
msgstr "Data Pianificata"
#. module: purchase
#: view:purchase.order:0
@ -369,7 +369,7 @@ msgstr "Approvato da Fornitore"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.act_purchase_order_2_stock_picking
msgid "Packing"
msgstr ""
msgstr "Imballaggio"
#. module: purchase
#: model:ir.actions.wizard,name:purchase.purchase_order_merge
@ -399,7 +399,7 @@ msgstr "Listino Prezzi"
#. module: purchase
#: model:process.node,note:purchase.process_node_purchaseorder0
msgid "When controlling invoice from orders"
msgstr ""
msgstr "Quando si controlla la fattura dagli ordini"
#. module: purchase
#: constraint:ir.ui.view:0
@ -409,17 +409,17 @@ msgstr "XML non valido per Visualizzazione Architettura!"
#. module: purchase
#: model:process.node,note:purchase.process_node_invoicecontrol0
msgid "Pre-generated supplier invoice to control based on order"
msgstr ""
msgstr "Fattura del fornitore Pre-generata per Controllo basato su ordine"
#. module: purchase
#: model:process.transition,name:purchase.process_transition_invoicefrompurchase0
msgid "Invoice from Purchase"
msgstr ""
msgstr "Fattura da Acquisti"
#. module: purchase
#: model:process.node,note:purchase.process_node_packinglist0
msgid "Packing is created for the products reception control."
msgstr ""
msgstr "Il Prelievo è creato sul controllo della ricezione dei prodotti."
#. module: purchase
#: selection:purchase.order,invoice_method:0
@ -429,12 +429,12 @@ msgstr "Manuale"
#. module: purchase
#: model:process.transition,name:purchase.process_transition_confirmingpurchaseorder1
msgid "Confirming Purchase"
msgstr ""
msgstr "Conferma acquisto"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_approvingpurchaseorder0
msgid "Approve Purchase order after Confirming"
msgstr ""
msgstr "Approva l'ordine di Acquisto dopo la conferma"
#. module: purchase
#: selection:purchase.order,state:0
@ -444,7 +444,7 @@ msgstr "Eccezione Spedizione"
#. module: purchase
#: model:process.node,note:purchase.process_node_draftpurchaseorder1
msgid "Encoded manually by the user."
msgstr ""
msgstr "Codificati manualmente dall'utente."
#. module: purchase
#: help:purchase.order,minimum_planned_date:0
@ -465,16 +465,19 @@ msgid ""
"customer.In this case, it will remove the warehouse link and set the "
"customer location."
msgstr ""
"Inserire un indirizzo se si vuole consegnare direttamente la merce dal "
"fornitore al cliente. In questo caso, verrà rimosso il magazzino e inserito "
"il cliente."
#. module: purchase
#: rml:purchase.quotation:0
msgid "Request for Quotation :"
msgstr ""
msgstr "Richiesta di quotazione :"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder0
msgid "Confirm Purchase order from Request for quotation"
msgstr ""
msgstr "Conferma l'ordine di acquisto dalla richiesta di quotazione"
#. module: purchase
#: view:purchase.order:0
@ -501,7 +504,7 @@ msgstr "Rif. Partner"
#. module: purchase
#: rml:purchase.order:0
msgid "Taxes :"
msgstr ""
msgstr "Tasse :"
#. module: purchase
#: field:purchase.order,invoiced_rate:0
@ -532,7 +535,7 @@ msgstr "Imposta come Bozza"
#. module: purchase
#: model:process.node,note:purchase.process_node_approvepurchaseorder0
msgid "Purchase order is approved by supplier."
msgstr ""
msgstr "L'ordine di Acquisto è approvato dal venditore."
#. module: purchase
#: model:process.node,name:purchase.process_node_invoiceafterpacking0
@ -548,22 +551,22 @@ msgstr "Ordine Acquisto"
#. module: purchase
#: model:process.node,note:purchase.process_node_draftpurchaseorder0
msgid "Request for quotation is proposed by the system."
msgstr ""
msgstr "La richiesta di quotazione è proposta dal sistema."
#. module: purchase
#: model:process.transition,name:purchase.process_transition_packinginvoice0
msgid "Packing Invoice"
msgstr ""
msgstr "Fattura di prelievo"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_invoicefrompackinglist0
msgid "Creates invoice from packin list"
msgstr ""
msgstr "Fattura creata dalla lista di prelievo"
#. module: purchase
#: help:purchase.order,date_order:0
msgid "Date on which this document has been created."
msgstr ""
msgstr "Data in cui questo documento è stato creato"
#. module: purchase
#: view:purchase.order:0
@ -573,12 +576,12 @@ msgstr "Consegne e Fatture"
#. module: purchase
#: field:purchase.order,date_order:0
msgid "Date"
msgstr ""
msgstr "Data"
#. module: purchase
#: help:purchase.order,origin:0
msgid "Reference of the document that generated this purchase order request."
msgstr ""
msgstr "Riferimento del documento che ha generato questo ordine di acquisto."
#. module: purchase
#: rml:purchase.order:0
@ -588,7 +591,7 @@ msgstr "Tel. :"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_purchaseinvoice0
msgid "After Purchase order , Create invoice."
msgstr ""
msgstr "Crea la fattura dopo l'ordine d'acquisto."
#. module: purchase
#: field:purchase.order.line,date_planned:0
@ -598,12 +601,12 @@ msgstr "Data Programmata"
#. module: purchase
#: rml:purchase.order:0
msgid "Our Order Reference"
msgstr ""
msgstr "Nostro riferimento ordine"
#. module: purchase
#: rml:purchase.quotation:0
msgid "TVA:"
msgstr ""
msgstr "IVA"
#. module: purchase
#: view:purchase.order:0
@ -613,7 +616,7 @@ msgstr "Calcola"
#. module: purchase
#: constraint:product.pricelist.version:0
msgid "You cannot have 2 pricelist versions that overlap!"
msgstr ""
msgstr "Due versioni del listino non possono sovrapporsi."
#. module: purchase
#: view:purchase.order:0
@ -623,22 +626,24 @@ msgstr "Annulla Ordine d'Acquisto"
#. module: purchase
#: model:process.transition,name:purchase.process_transition_createpackinglist0
msgid "Create Packing list"
msgstr ""
msgstr "Crea distinta di Imballo"
#. module: purchase
#: rml:purchase.order:0
msgid "Total :"
msgstr ""
msgstr "Totale :"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_createpackinglist0
msgid "When purchase order is approved , it creates its packing list."
msgstr ""
"Quando l'ordine di acquisto viene approvato, viene creata la distinta "
"d'imballo associata."
#. module: purchase
#: view:purchase.order.line:0
msgid "History"
msgstr ""
msgstr "Cronologia"
#. module: purchase
#: field:purchase.order,state:0
@ -653,7 +658,7 @@ msgstr "Subtotale"
#. module: purchase
#: model:product.pricelist.version,name:purchase.ver0
msgid "Default Purchase Pricelist Version"
msgstr ""
msgstr "Versione predefinita del listino prezzi d'acquisto"
#. module: purchase
#: rml:purchase.order:0
@ -664,12 +669,12 @@ msgstr "Prezzo unitario"
#. module: purchase
#: field:purchase.order,fiscal_position:0
msgid "Fiscal Position"
msgstr ""
msgstr "Posizione Fiscale"
#. module: purchase
#: rml:purchase.order:0
msgid "Request for Quotation N°"
msgstr ""
msgstr "Richiesta di Quotazione N°"
#. module: purchase
#: field:purchase.order,invoice_id:0
@ -739,7 +744,7 @@ msgstr ""
#. module: purchase
#: model:process.node,note:purchase.process_node_productrecept0
msgid "Control invoices on receptions"
msgstr ""
msgstr "Controllo Fatture in ricevimento"
#. module: purchase
#: rml:purchase.order:0
@ -778,7 +783,7 @@ msgstr ""
#. module: purchase
#: rml:purchase.quotation:0
msgid "Expected Delivery address:"
msgstr ""
msgstr "Indirizzo di consegna previsto:"
#. module: purchase
#: model:ir.actions.act_window,name:purchase.purchase_form_action3
@ -799,27 +804,27 @@ msgstr "Unità di Misura del Prodotto"
#. module: purchase
#: field:purchase.order.line,move_ids:0
msgid "Reservation"
msgstr ""
msgstr "Prenotazione"
#. module: purchase
#: model:process.node,note:purchase.process_node_confirmpurchaseorder0
msgid "Purchase order is confirmed by the user."
msgstr ""
msgstr "L'ordine d'acquisto è confermato dall'utente."
#. module: purchase
#: model:process.transition,name:purchase.process_transition_purchaseinvoice0
msgid "Purchase Invoice"
msgstr ""
msgstr "Fattura d'acquisto"
#. module: purchase
#: rml:purchase.order:0
msgid "Your Order Reference"
msgstr ""
msgstr "Vostro riferimento ordine"
#. module: purchase
#: rml:purchase.order:0
msgid "Purchase Order Confirmation N°"
msgstr ""
msgstr "Conferma Ordine Acquisto N°"
#. module: purchase
#: view:purchase.order:0
@ -850,17 +855,17 @@ msgstr "Controllo Fatturazione"
#. module: purchase
#: model:process.transition.action,name:purchase.process_transition_action_approvingpurchaseorder0
msgid "Approve"
msgstr ""
msgstr "Approvo"
#. module: purchase
#: model:process.node,name:purchase.process_node_approvepurchaseorder0
msgid "Approved Purchase"
msgstr ""
msgstr "Acquisto approvato"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_packinginvoice0
msgid "From Packing list, Create invoice."
msgstr ""
msgstr "Crea fattura dalla distinta di imballo."
#. module: purchase
#: field:purchase.order,amount_total:0
@ -875,7 +880,7 @@ msgstr "Sei sicuro di voler unire questi ordini ?"
#. module: purchase
#: model:process.transition,name:purchase.process_transition_approvingpurchaseorder0
msgid "Approving Purchase Order"
msgstr ""
msgstr "Approvazione dell'ordine d'acquisto"
#. module: purchase
#: model:process.transition,note:purchase.process_transition_invoicefrompurchase0
@ -885,4 +890,4 @@ msgstr ""
#. module: purchase
#: view:purchase.order.line:0
msgid "Stock Moves"
msgstr ""
msgstr "Movimenti di magazzino"

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-16 13:16+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-01-09 14:10+0000\n"
"Last-Translator: Carlo <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:02+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:16+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: report_purchase
@ -49,7 +49,7 @@ msgstr "Acquisti per Prodotto"
#. module: report_purchase
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nome del modulo non valido nella definizione dell'azione."
#. module: report_purchase
#: model:ir.ui.menu,name:report_purchase.next_id_75
@ -94,7 +94,7 @@ msgstr "Reportistica"
#. module: report_purchase
#: model:ir.module.module,shortdesc:report_purchase.module_meta_information
msgid "Purchase Management - Reporting"
msgstr ""
msgstr "Gestione Acquisti - Reportistica"
#. module: report_purchase
#: selection:report.purchase.order.category,state:0
@ -137,6 +137,8 @@ msgid ""
" Purchase By Product, Purchase By Category of Product, All Months, "
"Current Month."
msgstr ""
"Modulo per aggiungere viste come\n"
" Acquisti per Prodotto, Acquisti per Categoria, Tutti i Mesi, Questo Mese."
#. module: report_purchase
#: selection:report.purchase.order.category,state:0

View File

@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 13:49+0000\n"
"Last-Translator: LucaSub <subluca@gmail.com>\n"
"PO-Revision-Date: 2010-01-09 13:15+0000\n"
"Last-Translator: Carlo <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:17+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: report_sale
#: selection:report.sale.order.created,state:0
msgid "In Progress"
msgstr ""
msgstr "In corso"
#. module: report_sale
#: field:report.sale.order.category,price_average:0
@ -37,7 +37,7 @@ msgstr "Stato Ordine"
#. module: report_sale
#: model:ir.model,name:report_sale.model_report_sale_order_created
msgid "Report of Created Sale Order"
msgstr ""
msgstr "Relazione sugli Ordini di Vendita Creati"
#. module: report_sale
#: view:report.sale.order.category:0
@ -65,12 +65,12 @@ msgstr "Ammontare Vendite mensili dopo un anno"
#: model:ir.model,name:report_sale.model_report_turnover_per_product
#: view:report.turnover.per.product:0
msgid "Turnover Per Product"
msgstr ""
msgstr "Turnover per Prodotto"
#. module: report_sale
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nome del modulo non valido nella definizione dell'azione."
#. module: report_sale
#: model:ir.ui.menu,name:report_sale.next_id_82
@ -124,7 +124,7 @@ msgstr "Vendite per Prodotto (questo mese)"
#. module: report_sale
#: field:report.sale.order.created,partner_shipping_id:0
msgid "Shipping Address"
msgstr ""
msgstr "Indirizzo Spedizione"
#. module: report_sale
#: model:ir.report.custom,name:report_sale.ir_report_custom_4
@ -142,7 +142,7 @@ msgstr "Eccezione Fattura"
#. module: report_sale
#: model:ir.module.module,shortdesc:report_sale.module_meta_information
msgid "Sales Management - Reporting"
msgstr ""
msgstr "Gestione vendite - Segnalazione"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_order_category_tree_all
@ -165,7 +165,7 @@ msgstr "Numero Prodotti"
#. module: report_sale
#: field:report.sale.order.created,name:0
msgid "Order Reference"
msgstr ""
msgstr "Rif. Ordine"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_order_product_tree_all
@ -194,7 +194,7 @@ msgstr "Preventivo"
#. module: report_sale
#: field:report.sale.order.created,partner_id:0
msgid "Customer"
msgstr ""
msgstr "Cliente"
#. module: report_sale
#: constraint:ir.ui.view:0
@ -204,7 +204,7 @@ msgstr "XML non valido per Visualizzazione Architettura!"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_view_created_sale_order_dashboard
msgid "Created Sale Orders"
msgstr ""
msgstr "Creazione Ordine di Vendita"
#. module: report_sale
#: model:ir.ui.menu,name:report_sale.next_id_80
@ -216,7 +216,7 @@ msgstr "Reportistica"
#: model:ir.model,name:report_sale.model_report_turnover_per_month
#: view:report.turnover.per.month:0
msgid "Turnover Per Month"
msgstr ""
msgstr "Turnover per Mese"
#. module: report_sale
#: model:ir.ui.menu,name:report_sale.ir_ui_menu2
@ -226,7 +226,7 @@ msgstr "Ammontare Vendite giornaliere dopo un anno"
#. module: report_sale
#: field:report.sale.order.created,date_order:0
msgid "Date Ordered"
msgstr ""
msgstr "Ordinato per data"
#. module: report_sale
#: view:sale.order:0
@ -255,7 +255,7 @@ msgstr "Eccezione Spedizione"
#: field:report.turnover.per.month,turnover:0
#: field:report.turnover.per.product,turnover:0
msgid "Total Turnover"
msgstr ""
msgstr "Turnover Totale"
#. module: report_sale
#: selection:report.sale.order.category,state:0
@ -266,7 +266,7 @@ msgstr "In corso"
#. module: report_sale
#: view:report.sale.order.created:0
msgid "Reference"
msgstr ""
msgstr "Referenza"
#. module: report_sale
#: model:ir.actions.act_window,name:report_sale.action_order_category_tree
@ -283,7 +283,7 @@ msgstr "Ammontare Vendite giornaliere dopo un anno"
#. module: report_sale
#: selection:report.sale.order.created,state:0
msgid "Manual In Progress"
msgstr ""
msgstr "Manuale in Progressp"
#. module: report_sale
#: field:report.sale.order.category,name:0
@ -301,7 +301,7 @@ msgstr "Numero Righe"
#. module: report_sale
#: field:report.sale.order.created,create_date:0
msgid "Create Date"
msgstr ""
msgstr "Data Creazione"
#. module: report_sale
#: selection:report.sale.order.category,state:0
@ -313,7 +313,7 @@ msgstr "Completato"
#. module: report_sale
#: view:report.sale.order.created:0
msgid "Created Sales orders"
msgstr ""
msgstr "Ordini di Vendita Creati"
#. module: report_sale
#: selection:report.sale.order.category,state:0
@ -326,9 +326,9 @@ msgstr "Annulla"
#: model:ir.actions.act_window,name:report_sale.action_so_pipeline
#: view:sale.order:0
msgid "Sales by State"
msgstr ""
msgstr "Stao delle Vendite"
#. module: report_sale
#: field:report.sale.order.created,amount_untaxed:0
msgid "Untaxed Amount"
msgstr ""
msgstr "Totale Imponibile"

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-11-19 19:58+0000\n"
"Last-Translator: LucaSub <subluca@gmail.com>\n"
"PO-Revision-Date: 2010-01-09 11:23+0000\n"
"Last-Translator: Carlo <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:14+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
@ -44,7 +44,7 @@ msgstr "Ripartizione Partner"
#. module: sale
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nome del modulo non valido nella definizione dell'azione."
#. module: sale
#: selection:sale.order,state:0
@ -57,6 +57,8 @@ msgid ""
"If you don't have enough stock available to deliver all at once, do you "
"accept partial shipments or not?"
msgstr ""
"Se non hai disponibile a magazzino tutto il materiale da consegnare in una "
"sola volta, accetti la spedizione parziale o no?"
#. module: sale
#: selection:sale.order.line,type:0
@ -190,7 +192,7 @@ msgstr "Politiche di Spedizione"
#: selection:sale.order,state:0
#: selection:sale.order.line,state:0
msgid "Cancelled"
msgstr ""
msgstr "Annullato"
#. module: sale
#: selection:sale.order,state:0
@ -272,7 +274,7 @@ msgstr "I Miei Ordini di Vendita in esecuzione"
#. module: sale
#: field:sale.order.line,product_uos_qty:0
msgid "Quantity (UoS)"
msgstr ""
msgstr "Quantità (Unità di Vendita)"
#. module: sale
#: help:sale.order,invoice_quantity:0
@ -401,7 +403,7 @@ msgstr ""
#. module: sale
#: selection:sale.order,picking_policy:0
msgid "Complete Delivery"
msgstr ""
msgstr "Consegna totale"
#. module: sale
#: view:sale.order:0
@ -542,12 +544,12 @@ msgstr "Tutti i Preventivi"
#. module: sale
#: field:sale.order.line,discount:0
msgid "Discount (%)"
msgstr "Sconto (5)"
msgstr "Sconto (%)"
#. module: sale
#: model:process.node,note:sale.process_node_invoice0
msgid "Draft customer invoice, to be reviewed by accountant."
msgstr ""
msgstr "Fattura fornitore in bozza, deve essere revisionata da un contabile."
#. module: sale
#: model:ir.actions.act_window,name:sale.action_order_tree3
@ -638,7 +640,7 @@ msgstr "Fatturato"
#. module: sale
#: model:ir.actions.wizard,name:sale.advance_payment
msgid "Advance Invoice"
msgstr ""
msgstr "Fattura di acconto"
#. module: sale
#: field:sale.order,state:0
@ -657,11 +659,13 @@ msgid ""
"This Configuration step use to set default picking policy when make sale "
"order"
msgstr ""
"Questo passo di configurazione serve ad impostare la politica di consegna "
"standard quando viene fatto un ordine di vendita"
#. module: sale
#: model:process.process,name:sale.process_process_salesprocess0
msgid "Sales Process"
msgstr ""
msgstr "Processo di vendita"
#. module: sale
#: wizard_view:sale.order.line.make_invoice,init:0
@ -911,7 +915,7 @@ msgstr "Prezzo unitario"
#. module: sale
#: field:sale.order,fiscal_position:0
msgid "Fiscal Position"
msgstr ""
msgstr "Posizione Fiscale"
#. module: sale
#: rml:sale.order:0
@ -969,7 +973,7 @@ msgstr ""
#. module: sale
#: selection:sale.order,state:0
msgid "In Progress"
msgstr ""
msgstr "In corso"
#. module: sale
#: wizard_view:sale.advance_payment_inv,init:0
@ -992,7 +996,7 @@ msgstr "Conferma l'ordine di vendita e crea la fattura."
#. module: sale
#: selection:sale.config.picking_policy,step:0
msgid "Packing List & Delivery Order"
msgstr ""
msgstr "Lista di consegna e Ordini in Consegna"
#. module: sale
#: selection:sale.order.line,state:0
@ -1106,7 +1110,7 @@ msgstr "Annulla Assegnazione"
#. module: sale
#: selection:sale.order,order_policy:0
msgid "Invoice from the Packing"
msgstr ""
msgstr "DDT"
#. module: sale
#: model:ir.actions.wizard,name:sale.wizard_sale_order_line_invoice
@ -1170,7 +1174,7 @@ msgstr "Data ordine"
#. module: sale
#: field:sale.order.line,product_uos:0
msgid "Product UoS"
msgstr ""
msgstr "Unità di Vendita Prodotto"
#. module: sale
#: selection:sale.order,state:0
@ -1190,6 +1194,10 @@ msgid ""
"and simple methods to deliver products to the customer in one or two "
"operations by the worker."
msgstr ""
"Di default, Open ERP è in grado di gestire complessi instradamenti e "
"percorsi di prodotti all'interno del proprio magazzino e dei partner. Questo "
"organizzerà il modo più comune e semplice per consegnare prodotti ai clienti "
"con una o due operazioni dell'operatore."
#. module: sale
#: model:ir.actions.act_window,name:sale.action_config_picking_policy
@ -1225,7 +1233,7 @@ msgstr "Fatture correlate"
#. module: sale
#: field:sale.shop,name:0
msgid "Shop Name"
msgstr ""
msgstr "Nome Negozio"
#. module: sale
#: field:sale.order,payment_term:0
@ -1278,7 +1286,7 @@ msgstr "Prelevato"
#. module: sale
#: view:sale.shop:0
msgid "Accounting"
msgstr ""
msgstr "Contabilità"
#. module: sale
#: selection:sale.config.picking_policy,order_policy:0

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale

View File

@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2008-10-10 13:50+0000\n"
"Last-Translator: Marius Marolla <mariusmarolla@areablu.net>\n"
"PO-Revision-Date: 2010-01-09 13:09+0000\n"
"Last-Translator: Carlo <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:22+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale_analytic_plans
#: field:sale.order.line,analytics_id:0
msgid "Analytic Distribution"
msgstr ""
msgstr "Distribuzione analitica"
#. module: sale_analytic_plans
#: constraint:ir.ui.view:0
@ -29,4 +29,4 @@ msgstr "XML non valido per Visualizzazione Architettura!"
#. module: sale_analytic_plans
#: model:ir.module.module,shortdesc:sale_analytic_plans.module_meta_information
msgid "Sales Analytic Distribution Management"
msgstr ""
msgstr "Gestione Distribuzione di Vendita Analitica"

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-01-05 06:58+0000\n"
"PO-Revision-Date: 2010-01-08 22:36+0000\n"
"Last-Translator: Claudia Cotună <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-06 04:36+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale_analytic_plans
@ -24,7 +24,7 @@ msgstr "Distribuție analitică"
#. module: sale_analytic_plans
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Fișierul XML pentru arhitectura planului vizual nu este valid!"
msgstr "Codul XML pentru structura vizuală nu este valid!"
#. module: sale_analytic_plans
#: model:ir.module.module,shortdesc:sale_analytic_plans.module_meta_information

View File

@ -29,8 +29,8 @@ class sale_order(osv.osv):
}
def _get_section(self, cr, uid, context):
user = self.pool.get('res.users').browse(cr,uid,uid)
return user.section_id.id
user = self.pool.get('res.users').browse(cr,uid,uid,context=context)
return user.context_section_id
_defaults = {
'section_id':_get_section

View File

@ -8,11 +8,8 @@
<field name="global" eval="True"/>
</record>
<record model="ir.rule" id="sale_order_comp_rule">
<field name="field_id" search="[('model','=','sale.order'),('name','=','section_id')]" model="ir.model.fields"/>
<field name="operator">=</field>
<field name="operand">user.section_id.id</field>
<field name="rule_group" ref="sale_order_crm_rule_group"/>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
<field name="domain_force">['|',('section_id','=',False),('section_id','=',user.context_section_id)]</field>
</record>
<record model="ir.rule.group" id="sale_order_line_crm_rule_group">
@ -21,12 +18,10 @@
<field name="global" eval="True"/>
</record>
<record model="ir.rule" id="sale_order_line_comp_rule">
<field name="field_id" search="[('model','=','sale.order.line'),('name','=','order_id.section_id')]" model="ir.model.fields"/>
<field name="operator">=</field>
<field name="operand">user.section_id.id</field>
<field name="rule_group" ref="sale_order_line_crm_rule_group"/>
<field name="domain_force">['|',('order_id.section_id','=',False),('order_id.section_id','=',[user.section_id.id])]</field>
<field name="domain_force">['|',('order_id.section_id','=',False),('order_id.section_id','=',user.context_section_id)]</field>
</record>
</data>
</openerp>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 14:29+0000\n"
"Last-Translator: paola <pcaffaro@tiscali.it>\n"
"PO-Revision-Date: 2010-01-09 13:20+0000\n"
"Last-Translator: Carlo <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:26+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale_delivery_report
@ -44,22 +44,22 @@ msgstr "Ordine di consegna:"
#. module: sale_delivery_report
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
msgid "Delivery order"
msgstr ""
msgstr "Ordine di Consegna"
#. module: sale_delivery_report
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
msgid "Print Delivery Order"
msgstr ""
msgstr "Stampa ordine consegna"
#. module: sale_delivery_report
#: rml:sale.shipping:0
msgid "Carrier"
msgstr ""
msgstr "Trasportatore"
#. module: sale_delivery_report
#: rml:sale.shipping:0
msgid "Invoiced to"
msgstr ""
msgstr "Fatturato a"
#. module: sale_delivery_report
#: rml:sale.shipping:0

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale_journal

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:16+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_invoice_directly

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-02-03 12:01+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-01-09 13:23+0000\n"
"Last-Translator: Carlo <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-12-16 05:25+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_location
@ -29,7 +29,7 @@ msgstr "XML non valido per Visualizzazione Architettura!"
#. module: stock_location
#: model:ir.module.module,shortdesc:stock_location.module_meta_information
msgid "Stock Location Paths"
msgstr ""
msgstr "Percorso Localizzazione Magazzino"
#. module: stock_location
#: constraint:ir.model:0
@ -79,7 +79,7 @@ msgstr "Operazione Manuale"
#. module: stock_location
#: model:ir.model,name:stock_location.model_stock_location_path
msgid "stock.location.path"
msgstr ""
msgstr "stock.location.path"
#. module: stock_location
#: help:stock.location.path,auto:0
@ -102,7 +102,7 @@ msgstr "Operazione"
#: field:product.product,path_ids:0
#: view:stock.location.path:0
msgid "Location Paths"
msgstr ""
msgstr "Localizzazione Percorsi"
#. module: stock_location
#: field:stock.location.path,delay:0

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_location

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_no_autopicking

View File

@ -0,0 +1,50 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
##############################################################################
#
# Copyright (c) 2004 Axelor SPRL. (http://www.axelor.com) All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import partner

View File

@ -0,0 +1,61 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
##############################################################################
#
# Copyright (c) 2004 Axelor SPRL. (http://www.axelor.com) All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
{
"name" : "Thunderbird Interface",
"version" : "1.0",
"author" : "Axelor",
"website" : "http://www.axelor.com/",
"depends" : ["base","crm"],
"category" : "Generic Modules/Thunderbird interface",
"init_xml" : [],
"demo_xml" : [],
"update_xml" : [],
"active": False,
"installable": True
}

View File

@ -0,0 +1,83 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * thunderbird
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-11-26 06:05:17+0000\n"
"PO-Revision-Date: 2009-11-26 06:05:17+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: thunderbird
#: field:tinythunderbird.partner,copy_to:0
msgid "Copy To"
msgstr ""
#. module: thunderbird
#: constraint:ir.model:0
msgid "The Object name must start with x_ and not contain any special character !"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,description:0
msgid "Description"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,reference:0
msgid "Reference"
msgstr ""
#. module: thunderbird
#: model:ir.model,name:thunderbird.model_tinythunderbird_partner
msgid "Thunderbid mails"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,attachments:0
msgid "Attached Files"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,res_user_id:0
msgid "User"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,receiver:0
msgid "Receiver"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,date:0
msgid "Date"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,title:0
msgid "Subject"
msgstr ""
#. module: thunderbird
#: code:addons/thunderbird/partner/partner.py:0
#, python-format
msgid "Archive"
msgstr ""
#. module: thunderbird
#: model:ir.module.module,shortdesc:thunderbird.module_meta_information
msgid "Thunderbird Interface"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,sender:0
msgid "Sender"
msgstr ""

View File

@ -0,0 +1,83 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * thunderbird
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-11-26 06:05:17+0000\n"
"PO-Revision-Date: 2009-11-26 06:05:17+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: thunderbird
#: field:tinythunderbird.partner,copy_to:0
msgid "Copy To"
msgstr ""
#. module: thunderbird
#: constraint:ir.model:0
msgid "The Object name must start with x_ and not contain any special character !"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,description:0
msgid "Description"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,reference:0
msgid "Reference"
msgstr ""
#. module: thunderbird
#: model:ir.model,name:thunderbird.model_tinythunderbird_partner
msgid "Thunderbid mails"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,attachments:0
msgid "Attached Files"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,res_user_id:0
msgid "User"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,receiver:0
msgid "Receiver"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,date:0
msgid "Date"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,title:0
msgid "Subject"
msgstr ""
#. module: thunderbird
#: code:addons/thunderbird/partner/partner.py:0
#, python-format
msgid "Archive"
msgstr ""
#. module: thunderbird
#: model:ir.module.module,shortdesc:thunderbird.module_meta_information
msgid "Thunderbird Interface"
msgstr ""
#. module: thunderbird
#: field:tinythunderbird.partner,sender:0
msgid "Sender"
msgstr ""

View File

@ -0,0 +1,50 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
##############################################################################
#
# Copyright (c) 2004 Axelor SPRL. (http://www.axelor.com) All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import partner

View File

@ -0,0 +1,195 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
##############################################################################
#
# Copyright (c) 2004 Axelor SPRL. (http://www.axelor.com) All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
import time
import ir
from osv import osv,fields
import base64
import netsvc
from tools.translate import _
class tinythunderbird_partner(osv.osv):
def _links_get(self, cr, uid, context={}):
obj = self.pool.get('res.request.link')
ids = obj.search(cr, uid, [])
res = obj.read(cr, uid, ids, ['object', 'name'], context)
return [(r['object'], r['name']) for r in res]
_name = "tinythunderbird.partner"
_description="Thunderbid mails"
_rec_name="sender"
_columns = {
'sender':fields.char("Sender",size=128,required=True,select=True),
'receiver':fields.text("Receiver"),
"copy_to":fields.text("Copy To"),
"date":fields.date("Date",select=True),
"title":fields.char("Subject",size=128,select=True),
"description":fields.text("Description"),
"reference":fields.reference("Reference", selection=_links_get, size=128),
"res_user_id":fields.many2one("res.users","User"),
"attachments":fields.text("Attached Files",readonly=True),
}
_defaults = {
'res_user_id':lambda obj,cr,uid,context: uid,
'date': lambda *a: time.strftime('%Y-%m-%d')
}
def thunderbird_mailcreate(self,cr,user,vals):
dictcreate = dict(vals)
import email
header_name = email.Header.decode_header(dictcreate['name'])
dictcreate['name'] = header_name and header_name[0] and header_name[0][0]
add_obj=self.pool.get('res.partner.address')
case_pool=self.pool.get('crm.case')
partner_ids=add_obj.search(cr,user,[('email','=',dictcreate['email_from'])])
partner=add_obj.read(cr,user,partner_ids,['partner_id'])
if partner:
dictcreate.update({'partner_id':partner[0]['partner_id'][0]})
search_id = self.pool.get('res.request.link').search(cr,user,[('object','=',dictcreate['ref'].split(',')[0])])
if not search_id:
create_link_id = self.pool.get('res.request.link').create(cr,user,{'name':dictcreate['ref'].split(',')[0],'object':dictcreate['ref'].split(',')[0]})
create_id = self.pool.get('crm.case').create(cr, user, dictcreate)
cases=case_pool.browse(cr,user,[create_id])
case_pool._history(cr, user, cases, _('Archive'), history=True, email=False)
return create_id
def thunderbird_createcontact(self,cr,user,vals):
dictcreate = dict(vals)
create_id = self.pool.get('res.partner.address').create(cr, user, dictcreate)
return create_id
def thunderbird_createpartner(self,cr,user,vals):
dictcreate = dict(vals)
search_id = self.pool.get('res.partner').search(cr, user,[('name','=',dictcreate['name'])])
if search_id:
return 0
create_id = self.pool.get('res.partner').create(cr, user, dictcreate)
return create_id
def thunderbird_searchobject(self,cr,user,vals):
dictcreate = dict(vals)
search_id = self.pool.get('ir.model').search(cr, user,[('model','=',dictcreate['model'])])
return (search_id and search_id[0]) or 0
def thunderbird_searchcontact(self,cr,user,vals):
search_id1 = self.pool.get('res.partner.address').search(cr,user,[('name','ilike',vals)])
search_id2 = self.pool.get('res.partner.address').search(cr,user,[('email','=',vals)])
if search_id1:
return self.pool.get('res.partner.address').name_get(cr, user, search_id1)
elif search_id2:
return self.pool.get('res.partner.address').name_get(cr, user, search_id2)
return []
def thunderbird_tempsearch(self,cr,user,vals):
if vals[0]:
value = vals[0][0]
if vals[1]:
obj = vals[1];
name_get=[]
er_val=[]
for object in obj:
if object == 'res.partner.address':
search_id1 = self.pool.get(object).search(cr,user,[('name','ilike',value)])
search_id2 = self.pool.get(object).search(cr,user,[('email','=',value)])
if search_id1:
name_get.append(object)
name_get.append(self.pool.get(object).name_get(cr, user, search_id1))
elif search_id2:
name_get.append(object)
name_get.append(self.pool.get(object).name_get(cr, user, search_id2))
else:
try:
search_id1 = self.pool.get(object).search(cr,user,[('name','ilike',value)])
if search_id1:
name_get.append(object)
name_get.append(self.pool.get(object).name_get(cr, user, search_id1))
except:
er_val.append(object)
continue
if len(er_val) > 0:
name_get.append('error')
name_get.append(er_val)
return name_get
def thunderbird_attachment(self,cr,user,vals):
dictcreate = dict(vals)
datas = [dictcreate['datas']]
name = [dictcreate['name']]
if(dictcreate['datas'].__contains__(',')):
name = dictcreate['name'].split(',')
datas = dictcreate['datas'].split(',')
for i in range(0,datas.__len__()):
dictcreate['name'] = name[i]
dictcreate['datas'] = datas[i]
create_id = self.pool.get('ir.attachment').create(cr,user,dictcreate)
return 0
def thunderbird_login(self,cr,user,vals):
dictcreate = dict(vals)
service = netsvc.LocalService('common')
res = service.login(dictcreate['db'],dictcreate['login'],dictcreate['passwd'])
return res or 0
def read(self, cr, user, ids, fields=None, context={}, load='_classic_read'):
ret_read = super(tinythunderbird_partner, self).read(cr, user, ids,fields,context,load)
for read_data in ret_read:
attachments = self.pool.get('ir.attachment').search(cr,user,[('res_model','=',self._name),('res_id','=',read_data['id'])])
attechments_data = self.pool.get('ir.attachment').read(cr,user,attachments,['name'])
file_names = [a['name'] for a in attechments_data]
text_atteched = '\n'.join(file_names)
read_data['attachments'] = text_atteched
return ret_read
def unlink(self, cr, uid, ids, context={}):
attachments = self.pool.get('ir.attachment').search(cr,uid,[('res_model','=',self._name),('res_id','in',ids)])
self.pool.get('ir.attachment').unlink(cr,uid,attachments)
return super(tinythunderbird_partner, self).unlink(cr, uid, ids,context)
tinythunderbird_partner()

Binary file not shown.

View File

@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-01-08 04:38+0000\n"
"X-Launchpad-Export-Date: 2010-01-10 07:17+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: wiki