merge
bzr revid: pap@tinyerp.co.in-20100618051752-hmcmnm3x0qvun6eq bzr revid: pap@tinyerp.co.in-20100618065517-aivfz3iwzfm33fdv bzr revid: pap@tinyerp.co.in-20100618071807-xseqfzsntzw898sf
This commit is contained in:
commit
6be25e1411
|
@ -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"/>
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 -->
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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': [
|
||||
],
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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')]}">
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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" />
|
||||
|
|
|
@ -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" />
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
<!--
|
||||
=======================================================
|
||||
|
|
|
@ -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
|
||||
-->
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue