pap (openerp) 2010-06-18 12:48:07 +05:30
commit 6be25e1411
48 changed files with 588 additions and 576 deletions

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem icon="terp-account" id="menu_finance" name="Financial Management" sequence="1"/>
<menuitem id="menu_finance_receivables" name="Receivables" parent="menu_finance" sequence="2"/>
<menuitem id="menu_finance_payables" name="Payables" parent="menu_finance" sequence="3"/>

View File

@ -1039,7 +1039,7 @@
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_move_tree"/>
<field name="search_view_id" ref="view_account_move_filter"/>
<field name="domain">[('journal_id.type', '=', 'sale')]</field>
<field name="domain">[('journal_id.type', 'in', ['sale', 'sale_refund'])]</field>
</record>
<menuitem action="action_account_moves_sale" id="menu_eaction_account_moves_sale" parent="menu_finance_receivables"/>
@ -1051,7 +1051,7 @@
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_move_tree"/>
<field name="search_view_id" ref="view_account_move_filter"/>
<field name="domain">[('journal_id.type', '=', 'purchase')]</field>
<field name="domain">[('journal_id.type', 'in', ['purchase', 'purchase_refund'])]</field>
</record>
<menuitem action="action_account_moves_purchase" id="menu_eaction_account_moves_purchase" parent="menu_finance_payables"/>

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-06-17 03:33+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account

View File

@ -751,6 +751,8 @@ class account_invoice(osv.osv):
cur_obj = self.pool.get('res.currency')
context = {}
for inv in self.browse(cr, uid, ids):
if not inv.invoice_line:
raise osv.except_osv(_('No Invoice Lines !'), _('Please create some invoice lines.'))
if inv.move_id:
continue

View File

@ -2,86 +2,130 @@
<openerp>
<data>
<record id="view_account_move_line_reconcile_prompt" model="ir.ui.view">
<field name="name">account.move.line.reconcile.prompt.form</field>
<field name="model">account.move.line.reconcile.prompt</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Reconciliation">
<separator string="Are you sure you want to reconcile entries?" colspan="4"/>
<group colspan="4" col="6">
<label string ="" colspan="2"/>
<!-- <record id="view_account_move_line_reconcile_prompt" model="ir.ui.view">-->
<!-- <field name="name">account.move.line.reconcile.prompt.form</field>-->
<!-- <field name="model">account.move.line.reconcile.prompt</field>-->
<!-- <field name="type">form</field>-->
<!-- <field name="arch" type="xml">-->
<!-- <form string="Reconciliation">-->
<!-- <separator string="Are you sure you want to reconcile entries?" colspan="4"/>-->
<!-- <group colspan="4" col="6">-->
<!-- <label string ="" colspan="2"/>-->
<!---->
<!-- <button icon="gtk-cancel" special="cancel" string="Cancel"/>-->
<!-- <button icon="gtk-ok" string="Ok" name="ask_reconcilation" type="object" default_focus="1"/>-->
<!-- </group>-->
<!-- </form>-->
<!-- </field>-->
<!-- </record>-->
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-ok" string="Ok" name="ask_reconcilation" type="object" default_focus="1"/>
</group>
</form>
</field>
</record>
<!-- <record id="action_view_account_move_line_reconcile_prompt" model="ir.actions.act_window">-->
<!-- <field name="name">Reconcile Entries</field>-->
<!-- <field name="res_model">account.move.line.reconcile.prompt</field>-->
<!-- <field name="view_type">form</field>-->
<!-- <field name="view_mode">tree,form</field>-->
<!-- <field name="view_id" ref="view_account_move_line_reconcile_prompt"/>-->
<!-- <field name="target">new</field>-->
<!-- </record>-->
<record id="action_view_account_move_line_reconcile_prompt" model="ir.actions.act_window">
<field name="name">Reconcile Entries</field>
<field name="res_model">account.move.line.reconcile.prompt</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_account_move_line_reconcile_prompt"/>
<field name="target">new</field>
</record>
<record model="ir.values" id="action_account_move_line_reconcile_prompt_values">
<field name="model_id" ref="account.model_account_move_line" />
<field name="object" eval="1" />
<field name="name">Reconcile Entries</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,' +str(ref('action_view_account_move_line_reconcile_prompt'))" />
<field name="key">action</field>
<field name="model">account.move.line</field>
</record>
<record id="view_account_move_line_reconcile_full" model="ir.ui.view">
<!-- <record model="ir.values" id="action_account_move_line_reconcile_prompt_values">-->
<!-- <field name="model_id" ref="account.model_account_move_line" />-->
<!-- <field name="object" eval="1" />-->
<!-- <field name="name">Reconcile Entries</field>-->
<!-- <field name="key2">client_action_multi</field>-->
<!-- <field name="value" eval="'ir.actions.act_window,' +str(ref('action_view_account_move_line_reconcile_prompt'))" />-->
<!-- <field name="key">action</field>-->
<!-- <field name="model">account.move.line</field>-->
<!-- </record>-->
<record id="view_account_move_line_reconcile_full" model="ir.ui.view">
<field name="name">account.move.line.reconcile.full.form</field>
<field name="model">account.move.line.reconcile</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Reconciliation">
<separator string="Reconciliation transactions" colspan="4"/>
<field name="trans_nbr"/>
<newline/>
<field name="credit"/>
<field name="debit"/>
<separator string="Write-Off" colspan="4"/>
<field name="writeoff"/>
<group colspan="4" col="6">
<label string ="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="terp-stock_effects-object-colorize" string="Reconcile" name="trans_rec_reconcile_full" type="object" default_focus="1"/>
</group>
<group height="210" width="550">
<separator string="Reconciliation transactions" colspan="4"/>
<field name="trans_nbr"/>
<newline/>
<field name="credit"/>
<field name="debit"/>
<separator string="Write-Off" colspan="4"/>
<field name="writeoff"/>
<group colspan="4" col="6">
<label string ="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="terp-stock_effects-object-colorize" string="Reconcile" name="trans_rec_reconcile_full" type="object" default_focus="1" attrs="{'invisible':[('writeoff','!=',0)]}"/>
<button icon="gtk-ok" string="Reconcile With Write-Off" name="trans_rec_addendum_writeoff" type="object" attrs="{'invisible':[('writeoff','==',0)]}"/>
<button icon="gtk-ok" string="Partial Reconcile" name="trans_rec_reconcile_partial_reconcile" type="object" attrs="{'invisible':[('writeoff','==',0)]}"/>
</group>
</group>
</form>
</field>
</record>
<record id="view_account_move_line_reconcile_partial" model="ir.ui.view">
<field name="name">account.move.line.reconcile.partial.form</field>
<field name="model">account.move.line.reconcile</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Reconciliation">
<separator string="Reconciliation transactions" colspan="4"/>
<field name="trans_nbr"/>
<newline/>
<field name="credit"/>
<field name="debit"/>
<separator string="Write-Off" colspan="4"/>
<field name="writeoff"/>
<group colspan="4" col="6">
<label string ="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-ok" string="Reconcile With Write-Off" name="trans_rec_addendum_writeoff" type="object" default_focus="1"/>
<button icon="gtk-ok" string="Partial Reconcile" name="trans_rec_reconcile_partial_reconcile" type="object"/>
</group>
</form>
</field>
<record id="action_view_account_move_line_reconcile" model="ir.actions.act_window">
<field name="name">Reconcile Entries</field>
<field name="res_model">account.move.line.reconcile</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_account_move_line_reconcile_full"/>
<field name="target">new</field>
</record>
<record model="ir.values" id="action_account_move_line_reconcile_prompt_values">
<field name="model_id" ref="account.model_account_move_line" />
<field name="object" eval="1" />
<field name="name">Reconcile Entries</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,' +str(ref('action_view_account_move_line_reconcile'))" />
<field name="key">action</field>
<field name="model">account.move.line</field>
</record>
<!-- <record id="view_account_move_line_reconcile_full" model="ir.ui.view">-->
<!-- <field name="name">account.move.line.reconcile.full.form</field>-->
<!-- <field name="model">account.move.line.reconcile</field>-->
<!-- <field name="type">form</field>-->
<!-- <field name="arch" type="xml">-->
<!-- <form string="Reconciliation">-->
<!-- <separator string="Reconciliation transactions" colspan="4"/>-->
<!-- <field name="trans_nbr"/>-->
<!-- <newline/>-->
<!-- <field name="credit"/>-->
<!-- <field name="debit"/>-->
<!-- <separator string="Write-Off" colspan="4"/>-->
<!-- <field name="writeoff"/>-->
<!-- <group colspan="4" col="6">-->
<!-- <label string ="" colspan="2"/>-->
<!-- <button icon="gtk-cancel" special="cancel" string="Cancel"/>-->
<!-- <button icon="terp-stock_effects-object-colorize" string="Reconcile" name="trans_rec_reconcile_full" type="object" default_focus="1"/>-->
<!-- </group>-->
<!-- </form>-->
<!-- </field>-->
<!-- </record>-->
<!---->
<!-- <record id="view_account_move_line_reconcile_partial" model="ir.ui.view">-->
<!-- <field name="name">account.move.line.reconcile.partial.form</field>-->
<!-- <field name="model">account.move.line.reconcile</field>-->
<!-- <field name="type">form</field>-->
<!-- <field name="arch" type="xml">-->
<!-- <form string="Reconciliation">-->
<!-- <separator string="Reconciliation transactions" colspan="4"/>-->
<!-- <field name="trans_nbr"/>-->
<!-- <newline/>-->
<!-- <field name="credit"/>-->
<!-- <field name="debit"/>-->
<!-- <separator string="Write-Off" colspan="4"/>-->
<!-- <field name="writeoff"/>-->
<!-- <group colspan="4" col="6">-->
<!-- <label string ="" colspan="2"/>-->
<!-- <button icon="gtk-cancel" special="cancel" string="Cancel"/>-->
<!-- <button icon="gtk-ok" string="Reconcile With Write-Off" name="trans_rec_addendum_writeoff" type="object" default_focus="1"/>-->
<!-- <button icon="gtk-ok" string="Partial Reconcile" name="trans_rec_reconcile_partial_reconcile" type="object"/>-->
<!-- </group>-->
<!-- </form>-->
<!-- </field>-->
<!-- </record>-->
<record id="account_move_line_reconcile_writeoff" model="ir.ui.view">
<field name="name">account.move.line.reconcile.writeoff.form</field>

View File

@ -1,6 +1,6 @@
<openerp>
<data>
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project" sequence="10"/>
<!-- <menuitem id="next_id_71" name="Financial Project Management" parent="base.menu_main_pm" groups="account.group_account_invoice" sequence="20"/>-->
<menuitem id="menu_invoicing" name="Billing" parent="base.menu_main_pm" sequence="4"/>

View File

@ -316,7 +316,7 @@
menu="False"/>-->
<!--Menu for project management-->
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project" sequence="10"/>
<menuitem id="base.menu_pm_invoicing" name="Billing" parent="base.menu_main_pm" sequence="7"/>
<menuitem id="menu_pm_budget" name="Budgets" parent="base.menu_pm_invoicing"/>
<menuitem action="open_budget_post_form" id="menu_pm_budget_post_form" parent="menu_pm_budget"/>

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<openerp>
<data>
<menuitem name="Auction Management" id="auction_menu_root" icon="terp-purchase"/>
<menuitem name="Auction Management" id="auction_menu_root" icon="terp-purchase" sequence="26"/>
<menuitem name="Configuration" parent="auction_menu_root" id="auction_config_menu" sequence="7"/>
<menuitem name="Tools Bar Codes" id="auction_outils_menu" parent="auction_menu_root" sequence="5" />
<menuitem name="Deliveries Management" action="action_auction_taken" id="menu_wizard_emporte" parent="auction_outils_menu"/>

View File

@ -127,7 +127,7 @@
Contacts for Suppliers
-->
<menuitem icon="terp-purchase" id="base.menu_purchase_root" name="Purchases"
sequence="7"/>
sequence="3"/>
<menuitem id="base.menu_procurement_management_supplier" name="Address Book"
parent="base.menu_purchase_root" sequence="3"/>
<menuitem id="base.menu_procurement_management_supplier_name" name="Suppliers"

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-17 03:33+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:33+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_module_quality

View File

@ -8,7 +8,7 @@
name="base_report_designer.modify"
id="wizard_report_designer_modify"/>
<menuitem icon="terp-graph" id="base.reporting_menu" name="Reporting" sequence="8"/>
<menuitem icon="terp-graph" id="base.reporting_menu" name="Reporting" sequence="30"/>
<menuitem
id="base.next_id_50"
name="Configuration"

View File

@ -2,7 +2,7 @@
<openerp>
<data>
<menuitem icon="terp-graph" id="base.reporting_menu"
name="Reporting" sequence="8" />
name="Reporting" sequence="30" />
<!--Board Note Tree View -->

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-06-17 03:33+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:33+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board

View File

@ -3,7 +3,7 @@
<!--<menuitem name="Document Management" icon="terp-stock" id="menu_document"/>
<menuitem name="Document Configuration" id="menu_document_configuration" parent="menu_document"/>-->
<menuitem name="Knowledge" icon="terp-stock" id="base.menu_document" sequence="4" groups="base.group_user"/>
<menuitem name="Knowledge" icon="terp-stock" id="base.menu_document" sequence="19" groups="base.group_user"/>
<menuitem name="Configuration" id="base.menu_document_configuration" parent="base.menu_document" sequence="50"/>
<menuitem name="Document Management" id="menu_document_management_configuration" parent="base.menu_document_configuration" sequence="1"/>

View File

@ -2,8 +2,9 @@
<openerp>
<data>
<menuitem name="Tools" id="base.menu_tools" icon="STOCK_PREFERENCES" sequence="15"/>
<menuitem name="Email Template" id="menu_email_template" parent="base.menu_tools"/>
<menuitem name="Tools" id="base.menu_tools" icon="STOCK_PREFERENCES" sequence="28"/>
<menuitem name="Emails" id="base.menu_emails" parent="base.menu_tools" sequence="5"/>
<menuitem name="Email Template" id="menu_email_template" parent="base.menu_emails"/>
<record model="ir.ui.view" id="email_template_account_form">
<field name="name">email_template.account.form</field>
@ -95,7 +96,7 @@
<field name="search_view_id" ref="view_email_template_account_search"/>
</record>
<menuitem name="Configuration" id="menu_email_template_configuration" parent="menu_email_template" />
<menuitem name="Emails" id="menu_email_template_configuration" parent="base.menu_lunch_survey_root" />
<menuitem name="Email Accounts" id="menu_email_template_account_all" parent="menu_email_template_configuration" action="action_email_template_account_tree_all"/>

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-06-17 03:33+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: google_map

View File

@ -5,7 +5,7 @@
id="menu_hr_root"
icon="terp-hr"
name="Human Resources"
sequence="6"/>
sequence="15"/>
<menuitem
id="menu_hr_main"
parent="menu_hr_root"

View File

@ -12,7 +12,7 @@
<!-- <menuitem action="si_so" id="menu_si_so" parent="menu_hr_time_tracking" type="wizard" sequence="1"
groups="group_hr_attendance"/>-->
<!--Time Tracking menu for Project Management-->
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project" sequence="10"/>
<menuitem
id="base.menu_project_management_time_tracking"
name="Time Tracking"

View File

@ -46,11 +46,11 @@
],
'update_xml': [
'hr_payroll_view.xml',
# 'hr_payroll_workflow.xml',
# 'hr_payroll_sequence.xml',
# 'hr_paroll_report.xml',
# 'hr_payroll_data.xml',
# 'hr_payroll_wizard.xml'
'hr_payroll_workflow.xml',
'hr_payroll_sequence.xml',
'hr_paroll_report.xml',
'hr_payroll_data.xml',
'hr_payroll_wizard.xml'
],
'demo_xml': [
],

View File

@ -27,6 +27,22 @@ from osv import fields
from tools import config
from tools.translate import _
from datetime import date
from datetime import datetime
from datetime import timedelta
def prev_bounds(cdate=False):
when = date.fromtimestamp(time.mktime(time.strptime(cdate,"%Y-%m-%d")))
this_first = date(when.year, when.month, 1)
month = when.month + 1
year = when.year
if month > 12:
month = 1
year += 1
next_month = date(year, month, 1)
prev_end = next_month - timedelta(days=1)
return this_first, prev_end
class hr_contract_wage_type(osv.osv):
"""
Wage types
@ -123,6 +139,10 @@ class hr_contract(osv.osv):
'visa_no':fields.char('Visa No', size=64, required=False, readonly=False),
'visa_expire': fields.date('Visa Expire Date'),
'struct_id' : fields.many2one('hr.payroll.structure', 'Salary Structure'),
'working_days_per_week': fields.integer('Working Days', help="No of Working days / week for an employee")
}
_defaults = {
'working_days_per_week': lambda *a: 5,
}
hr_contract()
@ -383,19 +403,6 @@ class payroll_advice(osv.osv):
payroll_advice()
from datetime import date, datetime, timedelta
def prev_bounds(cdate=False):
when = datetime.fromtimestamp(time.mktime(time.strptime(cdate,"%Y-%m-%d")))
this_first = date(when.year, when.month, 1)
month = when.month + 1
year = when.year
if month > 12:
month = 1
year += 1
next_month = date(year, month, 1)
prev_end = next_month - timedelta(days=1)
return this_first, prev_end
class payroll_advice_line(osv.osv):
'''
Bank Advice Lines
@ -522,13 +529,13 @@ class payment_category(osv.osv):
_name = 'hr.allounce.deduction.categoty'
_description = 'Allowance Deduction Heads'
_columns = {
'name':fields.char('Categoty Name', size=64, required=True, readonly=False),
'code':fields.char('Categoty Code', size=64, required=True, readonly=False),
'type':fields.selection([
('allow','Allowance'),
('deduct','Deduction'),
('allowance','Allowance'),
('deduction','Deduction'),
('other','Others'),
],'Type', select=True),
'base':fields.char('Based on', size=64, required=True, readonly=False, help='This will use to computer the % fields values, in general its on basic, but You can use all heads code field in small letter as a variable name i.e. hra, ma, lta, etc...., also you can use, static varible basic'),
@ -658,7 +665,7 @@ class hr_holidays_status(osv.osv):
], string='Payment'),
'account_id': fields.many2one('account.account', 'Account', required=False),
'analytic_account_id':fields.many2one('account.analytic.account', 'Analytic Account', required=False),
'head_id': fields.many2one('hr.allounce.deduction.categoty', 'Payroll Head', domain=[('type','=','deduct')]),
'head_id': fields.many2one('hr.allounce.deduction.categoty', 'Payroll Head', domain=[('type','=','deduction')]),
'code':fields.char('Code', size=64, required=False, readonly=False),
}
_defaults = {
@ -691,13 +698,27 @@ class hr_payslip(osv.osv):
deduct = 0.0
others = 0.0
obj = {'basic':rs.basic}
obj = {
'basic':rs.basic
}
if rs.igross > 0:
obj.update({
'gross':rs.igross
})
if rs.inet > 0:
obj.update({
'net':rs.inet
})
for line in rs.line_ids:
amount = 0.0
if line.amount_type == 'per':
amount = line.amount * eval(line.category_id.base, obj)
try:
amount = line.amount * eval(str(line.category_id.base), obj)
except Exception, e:
raise osv.except_osv(_('Variable Error !'), _('Variable Error : %s ' % (e)))
elif line.amount_type in ('fix', 'func'):
amount = line.amount
@ -705,10 +726,10 @@ class hr_payslip(osv.osv):
obj[cd] = amount
contrib = 0.0
if line.category_id.include_in_salary:
contrib = line.company_contrib
if line.type == 'allounce':
# if line.category_id.include_in_salary:
# contrib = line.company_contrib
if line.type == 'allowance':
allow += amount
others += contrib
amount -= contrib
@ -726,12 +747,12 @@ class hr_payslip(osv.osv):
self.pool.get('hr.payslip.line').write(cr, uid, [line.id], {'total':amount})
record = {
'allounce': round(allow),
'deduction': round(deduct),
'grows': round(rs.basic + allow),
'net': round(rs.basic + allow - deduct),
'allounce':round(allow),
'deduction':round(deduct),
'grows':round(rs.basic + allow),
'net':round(rs.basic + allow - deduct),
'other_pay':others,
'total_pay': round(rs.basic + allow - deduct + others)
'total_pay':round(rs.basic + allow - deduct)
}
res[rs.id] = record
@ -775,7 +796,10 @@ class hr_payslip(osv.osv):
'working_days': fields.integer('Working Days', readonly=True),
'paid':fields.boolean('Paid ? ', required=False),
'note':fields.text('Description'),
'contract_id':fields.many2one('hr.contract', 'Contract', required=False)
'contract_id':fields.many2one('hr.contract', 'Contract', required=False),
'igross': fields.float('Calculaton Field', readonly=True, digits=(16, 2), help="Calculation field used for internal calculation, do not place this on form"),
'inet': fields.float('Calculaton Field', readonly=True, digits=(16, 2), help="Calculation field used for internal calculation, do not place this on form"),
}
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d'),
@ -1347,6 +1371,52 @@ class hr_payslip(osv.osv):
return True
def get_contract(self, cr, uid, employee, date, context={}):
sql_req= '''
SELECT c.id as id, c.wage as wage, struct_id as function
FROM hr_contract c
LEFT JOIN hr_employee emp on (c.employee_id=emp.id)
LEFT JOIN hr_contract_wage_type cwt on (cwt.id = c.wage_type_id)
LEFT JOIN hr_contract_wage_type_period p on (cwt.period_id = p.id)
WHERE
(emp.id=%s) AND
(date_start <= %s) AND
(date_end IS NULL OR date_end >= %s)
LIMIT 1
'''
cr.execute(sql_req, (employee.id, date, date))
contract = cr.dictfetchone()
return contract
def _get_leaves(self, cr, user, slip, employee, context={}):
"""
Compute leaves for an employee
@param cr: cursor to database
@param user: id of current user
@param slip: object of the hr.payroll.slip model
@param employee: object of the hr.employee model
@param context: context arguments, like lang, time zone
@return: return a result
"""
result = []
dates = prev_bounds(slip.date)
sql = '''select id from hr_holidays
where date_from >= '%s' and date_to <= '%s'
and employee_id = %s
and state = 'validate' ''' % (dates[0], dates[1], slip.employee_id.id)
cr.execute(sql)
res = cr.fetchall()
if res:
result = [x[0] for x in res]
return result
def compute_sheet(self, cr, uid, ids, context={}):
emp_pool = self.pool.get('hr.employee')
slip_pool = self.pool.get('hr.payslip')
@ -1354,42 +1424,34 @@ class hr_payslip(osv.osv):
slip_line_pool = self.pool.get('hr.payslip.line')
holiday_pool = self.pool.get('hr.holidays')
vals = self.read(cr, uid, ids)[0]
emp_ids = ids
date = self.read(cr, uid, ids, ['date'])[0]['date']
#Check for the Holidays
def get_days(start, end, month, year, calc_day):
count = 0
import datetime
for day in range(start, end):
if datetime.date(year, month, day).weekday() == calc_day:
count += 1
return count
for slip in self.browse(cr, uid, ids):
allow = 0.0
#for emp in emp_pool.browse(cr, uid, [vals['employee_id'][0]]):
emp = slip.employee_id
sql_req= '''
SELECT c.id as id, c.wage as wage, function as function
FROM hr_contract c
LEFT JOIN hr_employee emp on (c.employee_id=emp.id)
LEFT JOIN hr_contract_wage_type cwt on (cwt.id = c.wage_type_id)
LEFT JOIN hr_contract_wage_type_period p on (cwt.period_id = p.id)
WHERE
(emp.id=%s) AND
(date_start <= %s) AND
(date_end IS NULL OR date_end >= %s)
LIMIT 1
'''
cr.execute(sql_req, (emp.id, vals['date'], vals['date']))
contract_id = cr.dictfetchone()
contracts = self.get_contract(cr, uid, slip.employee_id, date, context)
if not contract_id:
if contracts.get('id', False) == False:
continue
contract = self.pool.get('hr.contract').browse(cr, uid, contract_id['id'])
contract = self.pool.get('hr.contract').browse(cr, uid, contracts.get('id'))
sal_type = contract.wage_type_id.type
function = contract.function.id
function = contract.struct_id.id
lines = []
if function:
func = func_pool.read(cr, uid, function, ['line_ids'])
lines = slip_line_pool.browse(cr, uid, func['line_ids'])
lines += slip.employee_id.line_ids
old_slip_id = slip_line_pool.search(cr, uid, [('slip_id','=',slip.id)])
slip_line_pool.unlink(cr, uid, old_slip_id)
@ -1400,106 +1462,95 @@ class hr_payslip(osv.osv):
all_fix = 0.0
ded_fix = 0.0
obj = {'basic':0.0}
obj = {
'basic':0.0
}
update = {
}
if contract.wage_type_id.type == 'gross':
obj['gross'] = contract.wage
update['igross'] = contract.wage
if contract.wage_type_id.type == 'net':
obj['net'] = contract.wage
update['inet'] = contract.wage
if contract.wage_type_id.type == 'basic':
obj['basic'] = contract.wage
update['basic'] = contract.wage
c_type = {
}
for line in lines:
cd = line.code.lower()
obj[cd] = line.amount
obj[cd] = line.amount or 0.0
for line in lines:
if line.category_id.code in ad:
continue
ad.append(line.category_id.code)
cd = line.category_id.code.lower()
goto_next = True
calculate = False
try:
exp = line.category_id.condition
calculate = eval(exp, obj)
except Exception, e:
raise osv.except_osv(_('Variable Error !'), _('Variable Error : %s ' % (e)))
pass
if not calculate:
continue
amt = 0.0
percent = 0.0
value = 0.0
base = False
company_contrib = 0.0
com_value = 0.0
base = line.category_id.base
try:
# Please have a look at the configuration guide for rules and restrictions
amt = eval(base, obj)
except Exception, e:
raise osv.except_osv(_('Variable Error !'), _('Variable Error : %s ' % (e)))
if sal_type in ('gross', 'net'):
if line.amount_type == 'per':
base = line.category_id.base
value = line.amount
try:
amt = eval(base, obj)
except Exception, e:
raise osv.except_osv(_('Variable Error !'), _('Variable Error : %s ' % (e)))
percent = line.amount
if amt > 1:
com_value = line.amount * amt
amt = line.amount
elif amt >= 0 and amt <= 1:
amt = line.amount + (amt * line.amount)
value = percent * amt
elif amt > 0 and amt <= 1:
percent = percent * amt
if line.category_id.contribute and line.category_id.amount_type == 'fix':
company_contrib = line.category_id.contribute_per
elif line.category_id.contribute and line.category_id.amount_type == 'func':
company_contrib = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, contract.wage, context)
if value > 0:
percent = 0.0
elif line.amount_type == 'fix':
value = line.amount
if line.category_id.contribute and line.category_id.amount_type == 'fix':
company_contrib = line.category_id.contribute_per
elif line.category_id.contribute and line.category_id.amount_type == 'func':
company_contrib = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, contract.wage, context)
elif line.amount_type == 'func':
value = self.pool.get('hr.payslip.line').execute_function(cr, uid, line.id, contract.wage, context)
if line.category_id.contribute and line.category_id.amount_type == 'fix':
company_contrib = line.category_id.contribute_per
elif line.category_id.contribute and line.category_id.amount_type == 'func':
company_contrib = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, contract.wage, context)
elif line.amount_type == 'func':
value = self.pool.get('hr.payslip.line').execute_function(cr, uid, line.id, amt, context)
line.amount = value
else:
if line.amount_type in ('fix', 'per'):
value = line.amount
elif line.amount_type == 'func':
value = self.pool.get('hr.payslip.line').execute_function(cr, uid, line.id, contract.wage, context)
if line.type == 'allounce':
all_per += amt
all_fix += com_value
value = self.pool.get('hr.payslip.line').execute_function(cr, uid, line.id, amt, context)
line.amount = value
if line.type == 'allowance':
all_per += percent
all_fix += value
elif line.type == 'deduction':
ded_per += amt
ded_fix += com_value
ded_per += percent
ded_fix += value
if line.category_id.include_in_salary:
if line.type == 'allounce':
all_fix += company_contrib
elif line.type == 'deduction':
ded_fix += company_contrib
vals = {
'company_contrib':company_contrib,
'amount':value,
'amount':line.amount,
'slip_id':slip.id,
'employee_id':False,
'function_id':False,
@ -1507,94 +1558,6 @@ class hr_payslip(osv.osv):
}
slip_line_pool.copy(cr, uid, line.id, vals, {})
for line in emp.line_ids:
if line.category_id.code in ad:
continue
ad.append(line.category_id.code)
cd = line.category_id.code.lower()
goto_next = True
try:
exp = line.category_id.condition
calculate = eval(exp, obj)
except Exception, e:
raise osv.except_osv(_('Variable Error !'), _('Variable Error : %s ' % (e)))
pass
if not calculate:
continue
amt = 0.0
value = 0.0
base = False
company_contrib = 0.0
com_value = 0.0
if sal_type in ('gross', 'net'):
if line.amount_type == 'per':
base = line.category_id.base
value = line.amount
try:
amt = eval(base, obj)
except Exception, e:
raise osv.except_osv(_('Variable Error !'), _('Variable Error : %s ' % (e)))
if amt > 1:
com_value = line.amount * amt
amt = line.amount
elif amt >= 0 and amt <= 1:
amt = line.amount + (amt * line.amount)
if line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'fix':
company_contrib = line.category_id.contribute_per
elif line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'func':
company_contrib = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, contract.wage, context)
elif line.amount_type == 'fix':
value = line.amount
if line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'fix':
company_contrib = line.category_id.contribute_per
elif line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'func':
company_contrib = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, contract.wage, context)
elif line.amount_type == 'func':
value = self.pool.get('hr.payslip.line').execute_function(cr, uid, line.id, contract.wage, context)
if line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'fix':
company_contrib = line.category_id.contribute_per
elif line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'func':
company_contrib = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, contract.wage, context)
else:
if line.amount_type in ('fix', 'per'):
value = line.amount
elif line.amount_type == 'func':
value = self.pool.get('hr.payslip.line').execute_function(cr, uid, line.id, contract.wage, context)
if line.type == 'allounce':
all_per += amt
all_fix += com_value
all_fix += value
all_fix += company_contrib
elif line.type == 'deduction':
ded_per += amt
ded_fix += com_value
ded_fix += value
ded_fix += company_contrib
vals = {
'company_contrib':company_contrib,
'amount':value,
'slip_id':slip.id,
'employee_id':False,
'function_id':False,
'base':base
}
slip_line_pool.copy(cr, uid, line.id, vals, {})
if sal_type in ('gross', 'net'):
sal = contract.wage
if sal_type == 'net':
@ -1611,91 +1574,90 @@ class hr_payslip(osv.osv):
basic = (sal * 100) / final
else:
basic = contract.wage
number = self.pool.get('ir.sequence').get(cr, uid, 'salary.slip')
ttyme = datetime.fromtimestamp(time.mktime(time.strptime(slip.date,"%Y-%m-%d")))
update.update({
'deg_id':function,
'number':number,
'basic': round(basic),
'basic_before_leaves': round(basic),
'name':'Salary Slip of %s for %s' % (slip.employee_id.name, ttyme.strftime('%B-%Y')),
'state':'draft',
'contract_id':contract.id,
'company_id':slip.employee_id.company_id.id
})
self.write(cr, uid, [slip.id], update)
for slip in self.browse(cr, uid, ids):
basic_before_leaves = basic
#Check for the Holidays
def get_days(start, end, month, year, calc_day):
count = 0
for day in range(start, end):
if date(year, month, day).weekday() == calc_day:
count += 1
return count
dates = prev_bounds(slip.date)
sql = '''select id from hr_holidays
where date_from >= '%s' and date_to <= '%s'
and employee_id = %s
and state = 'validate' ''' % (dates[0], dates[1], slip.employee_id.id)
cr.execute(sql)
res = cr.fetchall()
working_day = 0
off_days = 0
dates = prev_bounds(slip.date)
days_arr = [0, 1, 2, 3, 4, 5, 6]
for dy in range(contract.working_days_per_week, 7):
off_days += get_days(1, dates[1].day, dates[1].month, dates[1].year, days_arr[dy])
total_off = off_days
working_day = dates[1].day - total_off
perday = basic / working_day
perday = slip.net / working_day
total = 0.0
leave = 0.0
if res:
holi_ids = [x[0] for x in res]
total_leave = 0.0
paid_leave = 0.0
for hday in holiday_pool.browse(cr, uid, holi_ids):
res = {
'slip_id':slip.id,
'name':hday.holiday_status.name + '-%s' % (hday.number_of_days),
'code':hday.holiday_status.code,
'amount_type':'fix',
'category_id':hday.holiday_status.head_id.id,
'account_id':hday.holiday_status.account_id.id,
'analytic_account_id':hday.holiday_status.analytic_account_id.id
}
total_leave += hday.number_of_days
if hday.holiday_status.type == 'paid':
paid_leave += hday.number_of_days
continue
elif hday.holiday_status.type == 'halfpaid':
paid_leave += (hday.number_of_days / 2)
res['name'] = hday.holiday_status.name + '-%s/2' % (hday.number_of_days)
res['amount'] = perday * (hday.number_of_days/2)
total += perday * (hday.number_of_days/2)
leave += hday.number_of_days / 2
res['type'] = 'leaves'
else:
res['name'] = hday.holiday_status.name + '-%s' % (hday.number_of_days)
res['amount'] = perday * hday.number_of_days
res['type'] = 'leaves'
leave += hday.number_of_days
total += perday * hday.number_of_days
slip_line_pool.create(cr, uid, res)
basic = basic - total
leaves = total
number = self.pool.get('ir.sequence').get(cr, uid, 'salary.slip')
ttyme = datetime.fromtimestamp(time.mktime(time.strptime(slip.date,"%Y-%m-%d")))
leave_ids = self._get_leaves(cr, uid, slip, slip.employee_id, context)
total_leave = 0.0
paid_leave = 0.0
for hday in holiday_pool.browse(cr, uid, leave_ids):
res = {
'slip_id':slip.id,
'name':hday.holiday_status_id.name + '-%s' % (hday.number_of_days),
'code':hday.holiday_status_id.code,
'amount_type':'fix',
'category_id':hday.holiday_status_id.head_id.id,
'account_id':hday.holiday_status_id.account_id.id,
'analytic_account_id':hday.holiday_status_id.analytic_account_id.id
}
days = hday.number_of_days
if hday.number_of_days < 0:
days = hday.number_of_days * -1
total_leave += days
if hday.holiday_status_id.type == 'paid':
paid_leave += days
continue
elif hday.holiday_status_id.type == 'halfpaid':
paid_leave += (days / 2)
res['name'] = hday.holiday_status_id.name + '-%s/2' % (days)
res['amount'] = perday * (days/2)
total += perday * (days/2)
leave += days / 2
res['type'] = 'deduction'
else:
res['name'] = hday.holiday_status_id.name + '-%s' % (days)
res['amount'] = perday * days
res['type'] = 'deduction'
leave += days
total += perday * days
slip_line_pool.create(cr, uid, res)
basic = basic - total
leaves = total
updt = {
'deg_id':function,
'number':number,
'basic': round(basic),
update.update({
'basic_before_leaves': round(basic_before_leaves),
'name':'Salary Slip of %s for %s' % (emp.name, ttyme.strftime('%B-%Y')),
'state':'draft',
'leaves':total,
'holiday_days':leave,
'worked_days':working_day - leave,
'working_days':working_day,
'contract_id':contract.id,
'company_id':slip.employee_id.company_id.id
}
self.write(cr, uid, [slip.id], updt)
})
self.write(cr, uid, [slip.id], update)
return True
@ -1763,10 +1725,17 @@ class hr_payslip_line(osv.osv):
def onchange_category(self, cr, uid, ids, category_id):
seq = 0
res = {
}
if category_id:
seq = self.pool.get('hr.allounce.deduction.categoty').browse(cr, uid, category_id).sequence
return {'value':{'sequence':seq}}
category = self.pool.get('hr.allounce.deduction.categoty').browse(cr, uid, category_id)
res.update({
'sequence':category.sequence,
'name':category.name,
'code':category.code,
'type':category.type
})
return {'value':res}
def onchange_amount(self, cr, uid, ids, amount, typ):
amt = amount
@ -1784,7 +1753,7 @@ class hr_payslip_line(osv.osv):
'base':fields.char('Formula', size=1024, required=False, readonly=False),
'code':fields.char('Code', size=64, required=False, readonly=False),
'type':fields.selection([
('allounce','Allowance'),
('allowance','Allowance'),
('deduction','Deduction'),
('leaves','Leaves'),
('advance','Advance'),
@ -1821,7 +1790,7 @@ class hr_payslip_line(osv.osv):
ids = line_pool.search(cr, uid, [('slipline_id','=',id), ('from_val','<=',value)])
if not ids:
return 0
return res
res = line_pool.browse(cr, uid, ids)[-1].value
return res

View File

@ -3,86 +3,110 @@
<data>
<record id="HRA" model="hr.allounce.deduction.categoty">
<field name="code">HRA</field>
<field name="type">allow</field>
<field name="type">allowance</field>
<field name="name">House Rant Allowance</field>
</record>
<record id="CA" model="hr.allounce.deduction.categoty">
<field name="code">CA</field>
<field name="type">allow</field>
<field name="type">allowance</field>
<field name="name">Convance Allowance</field>
</record>
<record id="MA" model="hr.allounce.deduction.categoty">
<field name="code">MA</field>
<field name="type">allow</field>
<field name="type">allowance</field>
<field name="name">Meducal Allowance</field>
</record>
<record id="TELA" model="hr.allounce.deduction.categoty">
<field name="code">TELA</field>
<field name="type">allow</field>
<field name="type">allowance</field>
<field name="name">Telephone Allowance</field>
</record>
<record id="LTA" model="hr.allounce.deduction.categoty">
<field name="code">LTA</field>
<field name="type">allow</field>
<field name="type">allowance</field>
<field name="name">Leave Travel Allowance</field>
</record>
<record id="NA" model="hr.allounce.deduction.categoty">
<field name="code">NA</field>
<field name="type">allow</field>
<field name="type">allowance</field>
<field name="name">Newspaper Allowance</field>
</record>
<record id="TA" model="hr.allounce.deduction.categoty">
<field name="code">TA</field>
<field name="type">allow</field>
<field name="type">allowance</field>
<field name="name">Traveling Allowance</field>
</record>
<record id="FA" model="hr.allounce.deduction.categoty">
<field name="code">FA</field>
<field name="type">allowance</field>
<field name="name">Food Allowance</field>
</record>
<record id="DA" model="hr.allounce.deduction.categoty">
<field name="code">DA</field>
<field name="type">allow</field>
<field name="type">allowance</field>
<field name="name">Dearness Allowance</field>
</record>
<record id="PF" model="hr.allounce.deduction.categoty">
<field name="code">PF</field>
<field name="type">deduct</field>
<field name="type">deduction</field>
<field name="name">Provident Fund</field>
</record>
<record id="PT" model="hr.allounce.deduction.categoty">
<field name="code">PT</field>
<field name="type">deduct</field>
<field name="type">deduction</field>
<field name="name">Professional Tax</field>
</record>
<record id="WF" model="hr.allounce.deduction.categoty">
<field name="code">WF</field>
<field name="type">deduct</field>
<field name="type">deduction</field>
<field name="name">Welfare</field>
</record>
<record id="TDS" model="hr.allounce.deduction.categoty">
<field name="code">TDS</field>
<field name="type">deduct</field>
<field name="type">deduction</field>
<field name="name">Tax Deduct at Source</field>
</record>
<record id="LWP" model="hr.allounce.deduction.categoty">
<field name="code">LWP</field>
<field name="type">deduction</field>
<field name="name">Leave without pay</field>
</record>
<record id="FC" model="hr.allounce.deduction.categoty">
<field name="code">FC</field>
<field name="type">deduction</field>
<field name="name">Food Coupons</field>
</record>
<record id="ESI" model="hr.allounce.deduction.categoty">
<field name="code">ESI</field>
<field name="type">deduct</field>
<field name="type">deduction</field>
<field name="name">Employee's State Insurance</field>
</record>
<record id="OTHER" model="hr.allounce.deduction.categoty">
<field name="code">OTHER</field>
<field name="type">deduct</field>
<field name="name">Others - Allowances / Deduction</field>
<record id="OTHERD" model="hr.allounce.deduction.categoty">
<field name="code">OTHERD</field>
<field name="type">deduction</field>
<field name="name">Other Deduction</field>
</record>
<record id="OTHERA" model="hr.allounce.deduction.categoty">
<field name="code">OTHERA</field>
<field name="type">allowance</field>
<field name="name">Other Taxable Allowance</field>
</record>
</data>
</openerp>

View File

@ -158,15 +158,15 @@
<page string="Salary Structure">
<field name="line_ids" nolabel="1" colspan="4" string="Salary Structure">
<tree string="Salary Structure" editable="bottom">
<field name="category_id" on_change="onchange_category(category_id)"/>
<field name="sequence"/>
<field name="analytic_account_id"/>
<field name="name"/>
<field name="code"/>
<field name="type"/>
<field name="amount_type"/>
<field name="amount" on_change="onchange_amount(amount, amount_type)"/>
<field name="type"/>
<field name="category_id" on_change="onchange_category(category_id)"/>
<field name="account_id"/>
<field name="analytic_account_id"/>
</tree>
</field>
</page>
@ -216,6 +216,7 @@
<field name="date_start" select="1"/>
<field name="date_end" select="1"/>
<field name="working_hours"/>
<field name="working_days_per_week" select="1"/>
</group>
<group col="2" colspan="2">
<separator colspan="2" string="Advantages"/>
@ -246,9 +247,56 @@
<menuitem action="hr_contract.action_hr_contract" id="hr_menu_contract" parent="payroll_configure" name="Contracts" sequence="4"/>
<!-- End Contract View-->
<!--
Holiday Status inheritancy
-->
<!-- Salary structure -->
<record id="view_hr_employee_grade_tree" model="ir.ui.view">
<field name="name">hr.payroll.structure.tree</field>
<field name="model">hr.payroll.structure</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Employee Function">
<field name="name"/>
<field name="code"/>
<field name="line_ids"/>
<field name="company_id"/>
</tree>
</field>
</record>
<record id="view_hr_employee_grade_form" model="ir.ui.view">
<field name="name">hr.payroll.structure.form</field>
<field name="model">hr.payroll.structure</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Employee Function">
<group col="6" colspan="4">
<field name="name" colspan="4" select="1"/>
<field name="code" select="1"/>
<field name="account_id" select="1"/>
<field name="company_id"/>
</group>
<notebook colspan="4">
<page string="Salary Structure">
<field name="line_ids" nolabel="1" colspan="4"/>
</page>
</notebook>
</form>
</field>
</record>
<record id="action_view_hr_employee_grade_form" model="ir.actions.act_window">
<field name="name">Salary Structure</field>
<field name="res_model">hr.payroll.structure</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_hr_employee_grade_tree"/>
</record>
<menuitem
id="menu_hr_employee_function"
action="action_view_hr_employee_grade_form"
parent="payroll_configure"
/>
<!-- End Salary structure -->
<!-- Holiday Status -->
<record model="ir.ui.view" id="view_holiday_status_form1">
<field name="name">hr.holidays.status.inherit</field>
<field name="model">hr.holidays.status</field>
@ -271,38 +319,24 @@
</field>
</field>
</record>
<!-- Employee Expanse-->
<!-- -->
<!-- <record id="view_expenses_form" model="ir.ui.view">-->
<!-- <field name="name">hr.expense.form</field>-->
<!-- <field name="type">form</field>-->
<!-- <field name="inherit_id" ref="hr_expense.view_expenses_form"/>-->
<!-- <field name="model">hr.expense.expense</field>-->
<!-- <field name="arch" type="xml">-->
<!-- <field name="ref" position="after">-->
<!-- <field name="category_id"/>-->
<!-- </field>-->
<!-- </field>-->
<!-- </record>-->
<!-- -->
<!-- End Holiday Status -->
<!-- Payslip Line -->
<record id="view_hr_payslip_line_tree" model="ir.ui.view">
<field name="name">hr.payslip.line.tree</field>
<field name="model">hr.payslip.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Salary Structure" editable="bottom">
<field name="category_id" on_change="onchange_category(category_id)"/>
<field name="sequence"/>
<field name="analytic_account_id"/>
<field name="name"/>
<field name="code"/>
<field name="type"/>
<field name="amount_type"/>
<field name="amount" on_change="onchange_amount(amount, amount_type)"/>
<field name="total"/>
<field name="type"/>
<field name="category_id" on_change="onchange_category(category_id)"/>
<field name="account_id"/>
<field name="analytic_account_id"/>
</tree>
</field>
</record>
@ -331,8 +365,6 @@
<separator colspan="4" string="Accounting Informations"/>
<field name="account_id"/>
<field name="analytic_account_id"/>
<separator colspan="4" string="Reambusement Informations"/>
<field name="expanse_id"/>
<separator colspan="4" string="Company contribution"/>
<field name="company_contrib"/>
</group>
@ -391,8 +423,23 @@
</group>
<notebook colspan="4">
<page string="Salary Detail">
<field name="line_ids" colspan="4" nolabel="1"/>
<field name="line_ids" colspan="4" nolabel="1">
<tree string="Salary Structure" editable="bottom">
<field name="category_id" on_change="onchange_category(category_id)"/>
<field name="sequence"/>
<field name="name"/>
<field name="code"/>
<field name="type"/>
<field name="amount_type"/>
<field name="amount" on_change="onchange_amount(amount, amount_type)"/>
<field name="total"/>
<field name="account_id"/>
<field name="analytic_account_id"/>
</tree>
</field>
<group col="6" colspan="4">
<separator string="Computation Overview" colspan="6"/>
<field name="working_days"/>
<field name="holiday_days"/>
<field name="worked_days"/>
@ -446,7 +493,8 @@
</notebook>
<group col="9" colspan="4">
<field name="state"/>
<button string="Compute Sheet" name="compute_sheet" states="new" />
<button string="Compute Sheet" name="compute_sheet" states="new"/>
<button string="Recompute Sheet" name="compute_sheet" type="object" states="draft"/>
<button string="Verify Sheet" name="verify_sheet" states="draft"/>
<button string="Complete HR Checking" name="verify_twice_sheet" states="hr_check"/>
<button string="Complete Accountant Checking" name="final_verify_sheet" states="accont_check"/>
@ -465,56 +513,7 @@
</record>
<menuitem action="action_view_hr_payslip_form" id="menu_department_tree" parent="menu_hr_root_payroll"/>
<record id="view_hr_employee_grade_tree" model="ir.ui.view">
<field name="name">hr.payroll.structure.tree</field>
<field name="model">hr.payroll.structure</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Employee Function">
<field name="name"/>
<field name="code"/>
<field name="line_ids"/>
<field name="company_id"/>
</tree>
</field>
</record>
<record id="view_hr_employee_grade_form" model="ir.ui.view">
<field name="name">hr.payroll.structure.form</field>
<field name="model">hr.payroll.structure</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Employee Function">
<group col="6" colspan="4">
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="account_id" select="1"/>
<field name="company_id"/>
</group>
<notebook colspan="4">
<page string="Salary Structure">
<field name="line_ids" nolabel="1" colspan="4"/>
</page>
<page string="Job Profile">
<separator colspan="4" string="Job Profile"/>
<field name="note" colspan="4" nolabel="1"/>
</page>
</notebook>
</form>
</field>
</record>
<record id="action_view_hr_employee_grade_form" model="ir.actions.act_window">
<field name="name">Salary Structure</field>
<field name="res_model">hr.payroll.structure</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_hr_employee_grade_tree"/>
</record>
<menuitem
id="menu_hr_employee_function"
action="action_view_hr_employee_grade_form"
parent="payroll_configure"
/>
<!-- Payment Heads -->
<record id="hr_allounce_deduction_categoty_form" model="ir.ui.view">
@ -522,7 +521,7 @@
<field name="model">hr.allounce.deduction.categoty</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Allowance / Deduction Heads">
<form string="Salary Heads">
<group col="6" colspan="6">
<field name="name" select="1"/>
<field name="code" select="1"/>
@ -547,15 +546,18 @@
<field name="model">hr.allounce.deduction.categoty</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Allowance / Deduction Category">
<tree string="Salary Heads">
<field name="name"/>
<field name="code"/>
<field name="type"/>
<field name="base"/>
<field name="condition"/>
<field name="sequence"/>
</tree>
</field>
</record>
<record id="hr_allounce_deduction_tree" model="ir.actions.act_window">
<field name="name">Allowance/Deduction Heads</field>
<field name="name">Salary Heads</field>
<field name="res_model">hr.allounce.deduction.categoty</field>
<field name="view_type">form</field>
<field name="view_id" ref="hr_allounce_deduction_categoty_tree"/>
@ -590,7 +592,7 @@
<group col="2" colspan="2">
<separator colspan="2" string="Accounts"/>
<field name="include_in_salary" />
<field name="account_id" attrs="{'required': [('contribute','=',True), ('include_in_salary','=',True)]}"/>
<field name="account_id" attrs="{'required': [('include_in_salary','=',True)]}"/>
</group>
<notebook colspan="4">
<page string="Function" attrs="{'readonly': [('amount_type','!=','func')]}">

View File

@ -493,8 +493,8 @@
<menuitem
icon="terp-project"
id="base.menu_main_pm"
name="Project Management"
sequence="1"/>
name="Project"
sequence="10"/>
<menuitem
id="base.menu_project_management_time_tracking"
name="Time Tracking"

View File

@ -223,7 +223,7 @@
</record>
<!--Time Tracking menu in project Management-->
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project" sequence="10"/>
<menuitem
id="base.menu_project_management_time_tracking"
name="Time Tracking"

View File

@ -3,7 +3,7 @@
<data>
<!-- Idea Category Form View -->
<menuitem name="Tools" id="base.menu_tools" icon="STOCK_PREFERENCES" sequence="15"/>
<menuitem name="Tools" id="base.menu_tools" icon="STOCK_PREFERENCES" sequence="28"/>
<record model="ir.ui.view" id="view_idea_category_form">
<field name="name">idea.category.form</field>
<field name="model">idea.category</field>
@ -44,9 +44,9 @@
</record>
<menuitem name="Configuration" parent="base.menu_tools"
id="base.menu_lunch_survey_root" sequence="6"/>
id="base.menu_lunch_survey_root" sequence="20"/>
<menuitem name="Ideas" parent="base.menu_lunch_survey_root" id="menu_ideas"/>
<menuitem name="Ideas" parent="base.menu_lunch_survey_root" id="menu_ideas" sequence="3"/>
<menuitem name="Categories" parent="menu_ideas" id="menu_idea_category" action="action_idea_category" />
@ -356,9 +356,9 @@
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
</record>
<menuitem name="Reporting" parent="base.menu_tools" id="base.menu_lunch_reporting" sequence="5"/>
<menuitem name="Reporting" parent="base.menu_tools" id="base.menu_lunch_reporting" sequence="6"/>
<menuitem name="Idea" parent="base.menu_lunch_reporting" id="menu_idea_reporting"/>
<menuitem name="Idea" parent="base.menu_lunch_reporting" id="menu_idea_reporting" sequence="3"/>
<menuitem name="Vote Statistics" parent="menu_idea_reporting"
id="menu_idea_vote_stat" action="action_idea_vote_stat" />

View File

@ -1,19 +1,19 @@
<?xml version="1.0"?>
<openerp>
<data>
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools" sequence="15"/>
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools" sequence="28"/>
<menuitem name="Lunch Order" parent="base.menu_tools"
id="menu_lunch" sequence="1" />
<menuitem name="Reporting" parent="base.menu_tools"
id="base.menu_lunch_reporting" sequence="5" />
id="base.menu_lunch_reporting" sequence="6" />
<menuitem name="Lunch Orders"
parent="base.menu_lunch_reporting"
id="menu_lunch_reporting_order" sequence="1" />
<menuitem name="Configuration" parent="base.menu_tools"
id="base.menu_lunch_survey_root" sequence="6" />
id="base.menu_lunch_survey_root" sequence="20" />
<menuitem name="Lunch" parent="base.menu_lunch_survey_root"
id="menu_lunch_category_root_configuration" sequence="1" />

View File

@ -2,7 +2,7 @@
<openerp>
<data>
<menuitem name="Marketing" icon="terp-crm" id="marketing_menu" sequence="10"/>
<menuitem name="Marketing" icon="terp-crm" id="marketing_menu" sequence="17"/>
<record id="view_marketing_installer" model="ir.ui.view">
<field name="name">marketing.installer.view</field>

View File

@ -47,8 +47,8 @@
================================================================
-->
<menuitem name="Tools" id="base.menu_tools" icon="STOCK_PREFERENCES" sequence="15"/>
<menuitem name="Mailchimps" id="menu_action_mailchimp" parent="base.menu_tools" />
<menuitem name="Tools" id="base.menu_tools" icon="STOCK_PREFERENCES" sequence="28"/>
<menuitem name="Mailchimps" id="menu_action_mailchimp" parent="base.menu_emails" />
<record model="ir.ui.view" id="view_mailchimp_account_tree">
<field name="name">mailchimp.account.tree</field>

View File

@ -81,7 +81,7 @@
<field name="act_window_id" ref="action_membership_products"/>
</record>
<menuitem name="Membership" id="menu_membership" icon="terp-crm"/>
<menuitem name="Membership" id="menu_membership" icon="terp-crm" sequence="25"/>
<menuitem name="Members" parent="menu_membership"
id="menu_member"
sequence="1"/>

View File

@ -3,7 +3,7 @@
<data>
<menuitem icon="terp-mrp" id="base.menu_mrp_root" name="Manufacturing"
groups="group_mrp_user,group_mrp_manager" sequence="3"/>
groups="group_mrp_user,group_mrp_manager" sequence="8"/>
<menuitem id="menu_mrp_reordering" name="Automatic Procurements" parent="stock.menu_stock_root" sequence="5"/>
<menuitem id="menu_mrp_manufacturing" name="Manufacturing" parent="base.menu_mrp_root" sequence="1"/>

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-17 03:33+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:33+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_operations

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-17 03:33+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:33+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_repair

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-08 11:46+0000\n"
"PO-Revision-Date: 2010-05-07 15:09+0000\n"
"Last-Translator: lyyser <logard.1961@gmail.com>\n"
"PO-Revision-Date: 2010-06-17 16:39+0000\n"
"Last-Translator: Timo Tambet <Unknown>\n"
"Language-Team: Estonian <et@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-05-08 04:05+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:33+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: multi_company
@ -61,7 +61,7 @@ msgstr ""
#. module: multi_company
#: field:multi_company.default,company_dest_id:0
msgid "Default Company"
msgstr ""
msgstr "Vaikimisi kompanii"
#. module: multi_company
#: field:multi_company.default,object_id:0

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-17 03:33+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:33+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: multi_company

View File

@ -2,7 +2,7 @@
<openerp>
<data>
<menuitem icon="terp-graph" id="base.reporting_menu" name="Reporting" sequence="8"/>
<menuitem icon="terp-graph" id="base.reporting_menu" name="Reporting" sequence="30"/>
<menuitem
id="base.next_id_50"

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<openerp>
<data>
<menuitem name="Point of Sale" id="menu_point_root" sequence="10"
<menuitem name="Point of Sale" id="menu_point_root" sequence="21"
icon="terp-partner"
groups="group_pos_manager,group_pos_user"/>

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-17 03:33+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:33+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project" sequence="10"/>
<menuitem id="menu_project_management" name="Project Management" parent="base.menu_main_pm" sequence="1"/>
<menuitem id="menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/>

View File

@ -172,7 +172,7 @@
<field name="view_id" ref="view_project_issue_report_graph"/>
<field name="act_window_id" ref="action_project_issue_report"/>
</record>
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>
<menuitem icon="terp-project" id="base.menu_main_pm" name="Project" sequence="10"/>
<menuitem id="base.menu_project_report" name="Reporting" parent="base.menu_main_pm" sequence="50"/>
<menuitem action="action_project_issue_report" id="menu_project_issue_report_tree" parent="base.menu_project_report"/>

View File

@ -307,7 +307,7 @@
<menuitem id="menu_resouce_allocation" action="act_resouce_allocation"
name="Resource Allocations" parent="base.menu_project_long_term" sequence="2"/>
<!--<menuitem icon="terp-project" id="base.menu_main_pm" name="Project Management" sequence="1"/>-->
<!--<menuitem icon="terp-project" id="base.menu_main_pm" name="Project" sequence="10"/>-->
<menuitem id="menu_pm_resources_project1"
groups="base.group_extended"
name="Resources" parent="project.menu_definitions" sequence="3"/>

View File

@ -4,7 +4,7 @@
<!--<menuitem icon="terp-purchase" id="base.menu_purchase_root" name="Purchase Management"
groups="group_purchase_user"/>-->
<menuitem icon="terp-purchase" id="base.menu_purchase_root" name="Purchases"
groups="group_purchase_user" sequence="7"/>
groups="group_purchase_user" sequence="3"/>
<menuitem id="menu_procurement_management" name="Purchase Management"
parent="base.menu_purchase_root" sequence="1"/>

View File

@ -7,14 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-05-18 13:11+0000\n"
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
"<jesteve@zikzakmedia.com>\n"
"PO-Revision-Date: 2010-06-17 23:43+0000\n"
"Last-Translator: mikel <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-05-19 05:11+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock
@ -30,12 +29,12 @@ msgstr "Ubicación encadenada si fija"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_SAVE"
msgstr "Guardar existencia"
msgstr "STOCK_SAVE"
#. module: stock
#: model:stock.location,name:stock.stock_location_15
msgid "Sub Products"
msgstr "Sub Producto"
msgstr "Sub productos"
#. module: stock
#: selection:stock.location,icon:0
@ -45,7 +44,7 @@ msgstr "terp-account"
#. module: stock
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Nombre de modelo no válido en la definición de acción."
msgstr "Nombre de modelo no válido en la definición de la acción."
#. module: stock
#: model:ir.module.module,shortdesc:stock.module_meta_information
@ -104,7 +103,7 @@ msgstr "Rellenar inventario para una determinada ubicación"
#: view:stock.picking:0
#: field:stock.picking.move.wizard,picking_id:0
msgid "Packing list"
msgstr "Lista Picking"
msgstr "Albarán"
#. module: stock
#: rml:lot.stock.overview:0
@ -142,7 +141,7 @@ msgstr "Empresa"
#. module: stock
#: help:product.product,track_incoming:0
msgid "Force to use a Production Lot during receptions"
msgstr "Forzar a usar un lote de producción durante la recepción"
msgstr "Fuerza a usar un lote de producción durante la recepción"
#. module: stock
#: field:stock.move,move_history_ids:0
@ -160,12 +159,12 @@ msgstr "Lote de producción"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_NEW"
msgstr "Nueva existencia"
msgstr "STOCK_NEW"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_CANCEL"
msgstr "Cancelar existencia"
msgstr "STOCK_CANCEL"
#. module: stock
#: selection:stock.location,usage:0
@ -190,7 +189,7 @@ msgstr "Valor stock real"
#. module: stock
#: view:stock.move:0
msgid "UOM"
msgstr "UOM"
msgstr "UdM"
#. module: stock
#: selection:stock.move,state:0
@ -207,17 +206,17 @@ msgstr "Hacer envíos parciales"
#. module: stock
#: wizard_view:stock.partial_picking,end2:0
msgid "Packing result"
msgstr "Resultado empaquetado"
msgstr "Resultado albarán"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_QUIT"
msgstr "Quitar existencias"
msgstr "STOCK_QUIT"
#. module: stock
#: field:stock.warehouse,lot_output_id:0
msgid "Location Output"
msgstr "Localizacion de salidas"
msgstr "Ubicación de salida"
#. module: stock
#: selection:stock.location,icon:0
@ -278,7 +277,7 @@ msgstr "Empaquetado"
#. module: stock
#: rml:stock.picking.list:0
msgid "Order(Origin)"
msgstr "Orden (origen)"
msgstr "Pedido (origen)"
#. module: stock
#: rml:lot.location:0
@ -291,12 +290,12 @@ msgstr "Gran Total"
#: view:stock.location:0
#: field:stock.location,comment:0
msgid "Additional Information"
msgstr "Información Adicional"
msgstr "Información adicional"
#. module: stock
#: selection:stock.invoice_onshipping,init,type:0
msgid "Customer Refund"
msgstr "Reembolso del cliente"
msgstr "Factura rectificativa (abono) de cliente"
#. module: stock
#: selection:stock.location,icon:0
@ -350,12 +349,12 @@ msgstr "Clientes"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_UNDERLINE"
msgstr "Existencia bajo lineas"
msgstr "STOCK_UNDERLINE"
#. module: stock
#: view:stock.picking.move.wizard:0
msgid "Move Lines"
msgstr "Líneas de movimiento"
msgstr "Líneas movimiento"
#. module: stock
#: wizard_field:stock.fill_inventory,init,recursive:0
@ -401,7 +400,7 @@ msgstr "terp-graph"
#. module: stock
#: selection:stock.location,icon:0
msgid "STOCK_PREFERENCES"
msgstr "Existencias prioritarias"
msgstr "STOCK_PREFERENCES"
#. module: stock
#: rml:lot.location:0
@ -420,7 +419,7 @@ msgstr "Procesar ahora"
#. module: stock
#: field:stock.location,address_id:0
msgid "Location Address"
msgstr "Dirección de la ubicación"
msgstr "Dirección ubicación"
#. module: stock
#: help:stock.move,prodlot_id:0
@ -451,7 +450,7 @@ msgstr "Propiedades de stock"
#. module: stock
#: wizard_button:stock.partial_picking,init,split:0
msgid "Make Picking"
msgstr "Empaquetar"
msgstr "Realizar albarán"
#. module: stock
#: model:stock.location,name:stock.location_procurement
@ -477,7 +476,7 @@ msgstr "Id producto"
#. module: stock
#: view:res.partner:0
msgid "Sales & Purchases"
msgstr "Ventas & Compras"
msgstr "Ventas y Compras"
#. module: stock
#: selection:stock.invoice_onshipping,init,type:0
@ -558,12 +557,12 @@ msgstr "Reporte de inventario por lotes de producción"
#. module: stock
#: field:stock.location,stock_virtual:0
msgid "Virtual Stock"
msgstr "Existencia virtual"
msgstr "Stock virtual"
#. module: stock
#: selection:stock.location,usage:0
msgid "View"
msgstr "Ver"
msgstr "Vista"
#. module: stock
#: selection:stock.location,icon:0
@ -594,7 +593,7 @@ msgstr "STOCK_GOTO_BOTTOM"
#: model:ir.actions.act_window,name:stock.action_picking_form
#: model:ir.ui.menu,name:stock.menu_action_picking_form
msgid "New Reception Packing"
msgstr "Nueva recepcion de paquete"
msgstr "Nuevo albarán de entrada"
#. module: stock
#: wizard_field:stock.move.track,init,quantity:0
@ -607,7 +606,7 @@ msgstr "Cantidad por lote"
#: view:stock.move:0
#: view:stock.picking:0
msgid "Stock Moves"
msgstr "Movimientos de existencias"
msgstr "Movimientos de stock"
#. module: stock
#: field:product.template,property_stock_production:0
@ -647,7 +646,7 @@ msgstr "STOCK_DIALOG_QUESTION"
#. module: stock
#: selection:stock.location,chained_auto_packing:0
msgid "Manual Operation"
msgstr "Manual de operación"
msgstr "Operación manual"
#. module: stock
#: field:stock.picking,date_done:0
@ -750,7 +749,7 @@ msgstr "Revisiones de lote de producción"
#. module: stock
#: view:stock.picking:0
msgid "Packing Done"
msgstr "Paquete realizado"
msgstr "Albarán realizado"
#. module: stock
#: selection:stock.move,state:0
@ -764,7 +763,7 @@ msgstr "En espera"
#: model:ir.ui.menu,name:stock.menu_action_picking_tree7
#: model:ir.ui.menu,name:stock.menu_picking_waiting
msgid "Available Packing"
msgstr "Empaquetado disponible"
msgstr "Albarán disponible"
#. module: stock
#: model:ir.model,name:stock.model_stock_warehouse
@ -817,7 +816,7 @@ msgstr "STOCK_CONNECT"
#: model:ir.ui.menu,name:stock.menu_action_picking_all
#: wizard_field:stock.picking.make,init,pickings:0
msgid "Packing"
msgstr "Empaquetado/Albarán"
msgstr "Albarán"
#. module: stock
#: selection:stock.location,icon:0
@ -923,7 +922,7 @@ msgstr "Fecha creación"
#. module: stock
#: selection:stock.picking,type:0
msgid "Sending Goods"
msgstr "Enviar mercancías"
msgstr "Envío mercancías"
#. module: stock
#: view:stock.picking:0
@ -990,7 +989,7 @@ msgstr "STOCK_APPLY"
#. module: stock
#: wizard_view:stock.partial_picking,end2:0
msgid "The packing has been successfully made !"
msgstr "¡El paquete ha sido realizado correctamente!"
msgstr "¡El albarán ha sido realizado correctamente!"
#. module: stock
#: field:stock.move,address_id:0
@ -1133,7 +1132,7 @@ msgstr "STOCK_HARDDISK"
#. module: stock
#: model:ir.actions.act_window,name:stock.act_relate_picking
msgid "Related Picking"
msgstr "Paquete relacionado"
msgstr "Albarán relacionado"
#. module: stock
#: field:stock.incoterms,name:0
@ -1177,7 +1176,7 @@ msgstr "STOCK_COPY"
#. module: stock
#: selection:stock.invoice_onshipping,init,type:0
msgid "Supplier Refund"
msgstr "Factura de abono de proveedor"
msgstr "Factura rectificativa (abono) de proveedor"
#. module: stock
#: model:ir.model,name:stock.model_stock_move
@ -1193,7 +1192,7 @@ msgstr "Cuenta salida stock"
#. module: stock
#: selection:stock.location,chained_auto_packing:0
msgid "Automatic No Step Added"
msgstr "Automático paso no añadido"
msgstr "Mov. automático, paso no añadido"
#. module: stock
#: wizard_view:stock.location.products,init:0
@ -1302,7 +1301,7 @@ msgstr "Método entrega"
#. module: stock
#: model:ir.actions.wizard,name:stock.partial_picking
msgid "Partial packing"
msgstr "Empaquetado parcial"
msgstr "Albarán parcial"
#. module: stock
#: selection:stock.location,icon:0
@ -1589,7 +1588,7 @@ msgstr "Cantidad (UdV)"
#: model:ir.actions.act_window,name:stock.action_picking_tree5
#: model:ir.ui.menu,name:stock.menu_action_picking_tree5
msgid "Packing to Process"
msgstr "Paquetes a procesar"
msgstr "Albaranes a procesar"
#. module: stock
#: selection:stock.location,icon:0
@ -1599,7 +1598,7 @@ msgstr "STOCK_MEDIA_STOP"
#. module: stock
#: view:stock.move:0
msgid "Set Available"
msgstr "Fijar disponible"
msgstr "Cambiar a disponible"
#. module: stock
#: model:ir.actions.wizard,name:stock.make_picking
@ -1803,13 +1802,13 @@ msgstr "Altura (Z)"
#: field:stock.inventory.line,product_uom:0
#: field:stock.move,product_uom:0
msgid "Product UOM"
msgstr "UdM del producto"
msgstr "UdM producto"
#. module: stock
#: rml:lot.stock.overview:0
#: rml:lot.stock.overview_all:0
msgid "Variants"
msgstr "Variante"
msgstr "Variantes"
#. module: stock
#: field:stock.location,posx:0
@ -1936,8 +1935,9 @@ msgstr ""
"Se utiliza sólo si selecciona un tipo de ubicación encadenada.\n"
"La opción 'Movimiento automático' creará un movimiento de stock después del "
"actual que se validará automáticamente. Con 'Operación manual', el "
"movimiento de stock debe ser validado por un trabajador. Con 'Automático "
"paso no añadido', la ubicación se reemplaza en el movimiento original."
"movimiento de stock debe ser validado por un trabajador. Con 'Mov. "
"automático, paso no añadido', la ubicación se reemplaza en el movimiento "
"original."
#. module: stock
#: field:stock.location,icon:0
@ -2190,7 +2190,7 @@ msgstr "STOCK_JUSTIFY_CENTER"
#: model:ir.ui.menu,name:stock.menu_action_picking_tree3
#: model:ir.ui.menu,name:stock.menu_action_picking_tree8
msgid "Confirmed Packing Waiting Availability"
msgstr "Paquete confirmado esperando disponibilidad"
msgstr "Albarán confirmado esperando disponibilidad"
#. module: stock
#: field:stock.location,posy:0
@ -2309,7 +2309,7 @@ msgstr "Cerrar"
#. module: stock
#: model:ir.actions.report.xml,name:stock.report_move_labels
msgid "Print Item Labels"
msgstr "Imprimir etiquetas de elementos"
msgstr "Imprimir etiquetas"
#. module: stock
#: view:stock.move:0
@ -2428,36 +2428,3 @@ msgstr "Estado de movimientos"
#: model:stock.location,name:stock.stock_location_locations
msgid "Physical Locations"
msgstr "Ubicaciones físicas"
#~ msgid ""
#~ "OpenERP Stock Management module can manage multi-warehouses, multi and "
#~ "structured stock locations.\n"
#~ "Thanks to the double entry management, the inventory controlling is powerful "
#~ "and flexible:\n"
#~ "* Moves history and planning,\n"
#~ "* Different inventory methods (FIFO, LIFO, ...)\n"
#~ "* Stock valuation (standard or average price, ...)\n"
#~ "* Robustness faced with Inventory differences\n"
#~ "* Automatic reordering rules (stock level, JIT, ...)\n"
#~ "* Bar code supported\n"
#~ "* Rapid detection of mistakes through double entry system\n"
#~ "* Traceability (upstream/downstream, production lots, serial number, ...)\n"
#~ " "
#~ msgstr ""
#~ "El módulo de gestión de stocks de OpenERP puede gestionar multi-almacenes y "
#~ "multi-ubicaciones jerárquicas de stock.\n"
#~ "Gracias a la gestión de partida doble, el control de inventario es potente y "
#~ "flexible:\n"
#~ "* Historial de movimientos y planificación,\n"
#~ "* Métodos de inventario diferentes (FIFO, LIFO ...)\n"
#~ "* Valoración de existencias (estándar o precio medio ...)\n"
#~ "* Robustez frente a las diferencias de inventario\n"
#~ "* Reglas automáticas de abastecimiento (nivel de stock mínimo, JIT ...)\n"
#~ "* Soporte a código de barras\n"
#~ "* Detección rápida de errores a través de sistema de partida doble\n"
#~ "* Trazabilidad (hacia arriba/abajo, lotes de producción, número de serie "
#~ "...)\n"
#~ " "
#~ msgid "Stock Management"
#~ msgstr "Gestión de inventario"

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-06-17 03:33+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:32+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-06-17 03:33+0000\n"
"X-Launchpad-Export-Date: 2010-06-18 03:32+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem icon="terp-stock" id="menu_stock_root" name="Warehouse" sequence="2"/>
<menuitem icon="terp-stock" id="menu_stock_root" name="Warehouse" sequence="5"/>
<menuitem id="menu_stock_warehouse_mgmt" name="Warehouse Management" parent="menu_stock_root" sequence="1"/>
<menuitem id="menu_stock_products_moves" name="Products Moves" parent="menu_stock_root" sequence="7"/>
<menuitem id="menu_stock_product" name="Product" parent="menu_stock_root" sequence="6"/>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools" sequence="15"/>
<menuitem id="next_id_45" name="Recurring Events" parent="base.menu_tools" sequence="2"/>
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools" sequence="28"/>
<menuitem id="next_id_45" name="Recurring Events" parent="base.menu_tools" sequence="4"/>
<!--
=======================================================

View File

@ -2,13 +2,16 @@
<openerp>
<data>
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools" sequence="15"/>
<menuitem icon="STOCK_PREFERENCES" id="base.menu_tools" name="Tools" sequence="28"/>
<menuitem name="Surveys" id="menu_surveys" parent="base.menu_tools"
groups="group_survey_manager,group_survey_user" sequence="2"/>
<menuitem name="Define Surveys" id="menu_define_survey"
groups="group_survey_manager"
parent="base.menu_tools" />
<menuitem id="menu_answer_surveys" name="Answer Surveys" parent="base.menu_tools" groups="group_survey_manager,group_survey_user"/>
parent="menu_surveys" />
<menuitem id="menu_answer_surveys" name="Answer Surveys" parent="menu_surveys" groups="group_survey_manager,group_survey_user"/>
<menuitem name="Reporting" parent="base.menu_tools"
id="menu_reporting" groups="group_survey_manager"/>
id="base.menu_lunch_reporting" groups="group_survey_manager" sequence="6"/>
<menuitem name="Surveys" id="menu_reporting" parent="base.menu_lunch_reporting" sequence="2"/>
<!--
Survey
-->

View File

@ -2,7 +2,7 @@
<openerp>
<data>
<menuitem name="Knowledge Management" icon="terp-stock"
id="base.menu_document" sequence="4" />
id="base.menu_document" sequence="19" />
<menuitem name="Configuration"
id="base.menu_document_configuration"