diff options
| author | psi (Open ERP) <psi@tinyerp.co.in> | 2010-06-08 11:52:45 +0530 |
|---|---|---|
| committer | psi (Open ERP) <psi@tinyerp.co.in> | 2010-06-08 11:52:45 +0530 |
| commit | 113b7cb2b9c76d6aad7ff19c85bfaece8ecc447d (patch) | |
| tree | 03ff3552890576b070ca6b8b4b4f05b09c7df9f7 | |
| parent | 64d5da9c71878340cc1da5c5c85f40ef43cf9eb6 (diff) | |
| parent | 27f8b1748fac98da5b3edc4c8f83cd55abb9e13e (diff) | |
[MERGE] merge with dev-addons3 branch
bzr revid: psi@tinyerp.co.in-20100608062245-lsqqcuqgi2aifq31
170 files changed, 11242 insertions, 3279 deletions
diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py index 51724f47d33..c53e2030e7f 100644 --- a/addons/account/__openerp__.py +++ b/addons/account/__openerp__.py @@ -100,9 +100,9 @@ module named account_voucherss 'project/wizard/account_analytic_chart_view.xml', 'product_view.xml', 'account_assert_test.xml', - 'process/statement_process.xml', - 'process/customer_invoice_process.xml', - 'process/supplier_invoice_process.xml', +# 'process/statement_process.xml', +# 'process/customer_invoice_process.xml', +# 'process/supplier_invoice_process.xml', 'sequence_view.xml', 'company_view.xml', 'account_installer.xml', diff --git a/addons/account/account.py b/addons/account/account.py index 61319f7f973..e30912aa187 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -1567,8 +1567,42 @@ class account_tax(osv.osv): cur_price_unit+=amount2 return res + def compute_all(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None): + """ + RETURN: { + 'total': 0.0, # Total without taxes + 'total_included: 0.0, # Total with taxes + 'taxes': [] # List of taxes, see compute for the format + } + """ + precision = self.pool.get('decimal.precision').precision_get(cr, uid, 'Account') + totalin = totalex = round(price_unit * quantity, precision) + tin = [] + tex = [] + for tax in taxes: + if tax.price_include: + tin.append(tax) + else: + tex.append(tax) + tin = self.compute_inv(cr, uid, tin, price_unit, quantity, address_id=address_id, product=product, partner=partner) + for r in tin: + totalex -= r['amount'] + tex = self._compute(cr, uid, tex, totalex/quantity, quantity, address_id=address_id, product=product, partner=partner) + for r in tex: + totalin += r['amount'] + return { + 'total': totalex, + 'total_included': totalin, + 'taxes': tin + tex + } + def compute(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None): + logger = netsvc.Logger() + logger.notifyChannel("warning", netsvc.LOG_WARNING, + "Deprecated, use compute_all(...)['taxes'] instead of compute(...) to manage prices with tax included") + return self._compute(cr, uid, taxes, price_unit, quantity, address_id, product, partner) + def _compute(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None): """ Compute tax values for given PRICE_UNIT, QUANTITY and a buyer/seller ADDRESS_ID. @@ -1585,7 +1619,6 @@ class account_tax(osv.osv): else: r['amount'] = round(r['amount'] * quantity, self.pool.get('decimal.precision').precision_get(cr, uid, 'Account')) total += r['amount'] - return res def _unit_compute_inv(self, cr, uid, taxes, price_unit, address_id=None, product=None, partner=None): diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 77369bdca25..54c1082a2c1 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -63,6 +63,7 @@ <field domain="[('type','<>','view'), ('company_id', '=', parent.company_id)]" name="account_analytic_id" groups="base.group_user,base.group_extended"/> <newline/> <field name="price_subtotal"/> + <field name="company_id" groups="base.group_multi_company" widget="selection"/> <field colspan="4" name="invoice_line_tax_id" context="{'type':parent.type}" domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]"/> </page> @@ -146,7 +147,7 @@ <field name="number" readonly="1"/> <field name="type" invisible="1"/> <field name="currency_id" domain="[('company_id','=', company_id)]" on_change="onchange_currency_id(currency_id, company_id)" width="50"/> - <button name="%(action_account_change_currency)d" type="action" icon="gtk-apply" string="Change Currency"/> + <button name="%(action_account_change_currency)d" type="action" icon="gtk-apply" string="Change"/> <newline/> <field name="partner_id" domain="[('supplier','=', 1)]" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank,company_id)" context="{'default_customer': 0}"/> <field domain="[('partner_id','=',partner_id)]" name="address_invoice_id"/> @@ -403,7 +404,7 @@ <field name="view_id" ref="invoice_form"/> <field name="act_window_id" ref="action_invoice_tree"/> </record> - <menuitem name="Invoices" id="menu_finance_invoice" parent="account.menu_finance" sequence="2"/> +<!-- <menuitem name="Invoices" id="menu_finance_invoice" parent="account.menu_finance" sequence="2"/>--> <record id="action_invoice_tree1" model="ir.actions.act_window"> <field name="name">Customer Invoices</field> @@ -426,10 +427,10 @@ <field name="view_id" ref="invoice_form"/> <field name="act_window_id" ref="action_invoice_tree1"/> </record> - <menuitem action="action_invoice_tree1" id="menu_action_invoice_tree1" parent="account.menu_finance_invoice"/> + <menuitem action="action_invoice_tree1" id="menu_action_invoice_tree1" parent="menu_finance_receivables"/> <record id="action_invoice_tree2" model="ir.actions.act_window"> - <field name="name">Supplier Invoices</field> + <field name="name">Vendor Invoices</field> <field name="res_model">account.invoice</field> <field name="view_type">form</field> <field name="view_mode">tree,form,calendar,graph</field> @@ -438,7 +439,7 @@ <field name="context">{'type':'in_invoice'}</field> <field name="search_view_id" ref="view_account_invoice_filter"/> </record> - <menuitem action="action_invoice_tree2" id="menu_action_invoice_tree2" parent="account.menu_finance_invoice"/> + <menuitem action="action_invoice_tree2" id="menu_action_invoice_tree2" parent="menu_finance_payables"/> <record id="action_invoice_tree3" model="ir.actions.act_window"> <field name="name">Customer Refunds</field> @@ -464,10 +465,10 @@ <field name="act_window_id" ref="action_invoice_tree3"/> </record> - <menuitem action="action_invoice_tree3" id="menu_action_invoice_tree3" parent="account.menu_finance_invoice"/> + <menuitem action="action_invoice_tree3" id="menu_action_invoice_tree3" parent="menu_finance_receivables"/> <record id="action_invoice_tree4" model="ir.actions.act_window"> - <field name="name">Supplier Refunds</field> + <field name="name">Vendor Refunds</field> <field name="res_model">account.invoice</field> <field name="view_type">form</field> <field name="view_mode">tree,form,calendar,graph</field> @@ -476,7 +477,7 @@ <field name="context">{'type':'in_refund'}</field> <field name="search_view_id" ref="view_account_invoice_filter"/> </record> - <menuitem action="action_invoice_tree4" id="menu_action_invoice_tree4" parent="account.menu_finance_invoice"/> + <menuitem action="action_invoice_tree4" id="menu_action_invoice_tree4" parent="menu_finance_payables"/> <act_window domain="[('partner_id','=',active_id)]" id="act_res_partner_2_account_invoice_opened" name="Invoices" res_model="account.invoice" src_model="res.partner"/> diff --git a/addons/account/account_menuitem.xml b/addons/account/account_menuitem.xml index 4cdcb7787b6..d0ae2ccc58f 100644 --- a/addons/account/account_menuitem.xml +++ b/addons/account/account_menuitem.xml @@ -1,28 +1,52 @@ <?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"/> + <menuitem id="menu_finance_bank_and_cash" name="Bank And Cash" parent="menu_finance" sequence="4"/> +<!-- <menuitem id="menu_accounting" name="Accounting" parent="menu_finance" sequence="5"/>--> + <menuitem id="menu_finance_periodical_processing" name="Periodical Processing" parent="menu_finance" sequence="8" groups="group_account_user"/> + <menuitem id="periodical_processing_journal_entries_validation" name="Journal Entries Validation" parent="menu_finance_periodical_processing"/> + <menuitem id="periodical_processing_reconciliation" name="Reconciliation" parent="menu_finance_periodical_processing"/> +<!-- <menuitem id="periodical_processing_recurrent_entries" name="Recurrent Entries" parent="menu_finance_periodical_processing"/>--> + <menuitem id="periodical_processing_invoicing" name="Invoicing" parent="menu_finance_periodical_processing"/> +<!-- <menuitem id="periodical_processing_end_of_period" name="End of Period" parent="menu_finance_periodical_processing"/>--> + <menuitem id="menu_finance_charts" name="Charts" parent="menu_finance" sequence="10"/> + <menuitem id="menu_finance_reporting" name="Reporting" parent="account.menu_finance" sequence="12"/> + <menuitem id="menu_finance_reporting_budgets" name="Budgets" parent="menu_finance_reporting"/> + <menuitem id="menu_generic_report" name="Management Reports" parent="menu_finance_reporting"/> + <menuitem id="menu_finance_legal_statement" name="Legal Reports" parent="menu_finance_reporting"/> + <menuitem id="menu_finance_management_belgian_reports" name="Belgian Reports" parent="menu_finance_reporting"/> + <menuitem id="menu_finance_configuration" name="Configuration" parent="menu_finance" sequence="13"/> + <menuitem id="menu_finance_accounting" name="Financial Accounting" parent="menu_finance_configuration"/> + <menuitem id="menu_analytic_accounting" name="Analytic Accounting" parent="menu_finance_configuration"/> + <menuitem id="menu_analytic" parent="menu_analytic_accounting" name="Accounts"/> + <menuitem id="menu_low_level" name="Low Level" parent="menu_finance_accounting"/> + <menuitem id="menu_configuration_misc" name="Miscelleanous" parent="menu_finance_configuration"/> + <menuitem id="base.menu_action_currency_form" parent="menu_configuration_misc" sequence="20"/> <menuitem icon="terp-account" id="menu_finance" name="Financial Management" sequence="5"/> - <menuitem id="menu_finance_configuration" name="Configuration" parent="menu_finance" sequence="8"/> - <menuitem id="base.menu_action_currency_form" parent="menu_finance_configuration" sequence="20"/> - <menuitem id="menu_finance_accounting" name="Financial Accounting" parent="menu_finance_configuration"/> - <menuitem id="menu_analytic_accounting" name="Analytic Accounting" parent="menu_finance_configuration"/> +<!-- <menuitem id="menu_finance_configuration1" name="Configuration" parent="menu_finance" sequence="80"/>--> +<!-- <menuitem id="base.menu_action_currency_form" parent="menu_finance_configuration" sequence="20"/>--> +<!-- <menuitem id="menu_finance_accounting1" name="Financial Accounting" parent="menu_finance_configuration" sequence="80"/>--> +<!-- <menuitem id="menu_analytic_accounting1" name="Analytic Accounting" parent="menu_finance_configuration" sequence="80"/>--> - <menuitem id="menu_finance_reporting" name="Reporting" parent="account.menu_finance" sequence="7"/> - <menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="account.menu_finance_reporting" sequence="1"/> - <menuitem id="menu_finance_legal_statement" name="Legal Statements" parent="account.menu_finance_reporting" sequence="2"/> - <menuitem id="menu_generic_report" name="Generic Reports" parent="account.menu_finance_legal_statement" sequence="8"/> +<!-- <menuitem id="menu_finance_reporting11" name="Reporting" parent="account.menu_finance" sequence="80"/>--> + <menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="menu_finance_reporting" sequence="100"/> +<!-- <menuitem id="menu_finance_legal_statement1" name="Legal Statements" parent="account.menu_finance_reporting" sequence="200"/>--> +<!-- <menuitem id="menu_generic_report" name="Generic Reports" parent="account.menu_finance_legal_statement" sequence="8"/>--> - <menuitem id="menu_finance_entries" name="Accounting" parent="account.menu_finance" sequence="1" + <menuitem id="menu_finance_entries" name="Accounting" parent="menu_finance" sequence="1" groups="group_account_user"/> - <menuitem id="account.menu_finance_recurrent_entries" name="Recurrent Entries" parent="account.menu_finance_entries" sequence="15"/> + <menuitem id="account.menu_finance_recurrent_entries" name="Recurrent Entries" parent="menu_finance_periodical_processing" sequence="15"/> - <menuitem id="menu_finance_periodical_processing" name="Periodical Processing" parent="account.menu_finance" - sequence="3" - groups="group_account_user"/> - <menuitem id="menu_account_end_year_treatments" name="End of Year Treatments" parent="account.menu_finance_periodical_processing" sequence="20"/> +<!-- <menuitem id="menu_finance_periodical_processing11" name="Periodical Processing" parent="account.menu_finance"--> +<!-- sequence="3"--> +<!-- groups="group_account_user"/>--> + <menuitem id="menu_account_end_year_treatments" name="End of Period" parent="menu_finance_periodical_processing"/> - <menuitem id="menu_finance_statistic_report_statement" name="Statistic Reports" parent="account.menu_finance_reporting" sequence="3"/> + <menuitem id="menu_finance_statistic_report_statement" name="Statistic Reports" parent="menu_finance_reporting" sequence="300"/> </data> </openerp> diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index a2729676fe3..4636428dc0c 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -163,13 +163,13 @@ </record> <record id="action_account_form" model="ir.actions.act_window"> - <field name="name">List of Accounts</field> + <field name="name">Accounts</field> <field name="res_model">account.account</field> <field name="view_type">form</field> <field name="view_mode">tree,form,graph</field> <field name="search_view_id" ref="view_account_search"/> </record> - <menuitem id="account_account_menu" name="Financial Accounts" parent="account.menu_finance_accounting"/> + <menuitem id="account_account_menu" name="Accounts" parent="menu_finance_accounting"/> <menuitem action="action_account_form" id="menu_action_account_form" parent="account_account_menu"/> <record id="view_account_tree" model="ir.ui.view"> @@ -197,7 +197,7 @@ <field name="view_id" ref="view_account_tree"/> <field name="domain">[('parent_id','=',False)]</field> </record> - <menuitem action="action_account_tree" id="menu_action_account_tree" parent="account.account_account_menu"/> +<!-- <menuitem action="action_account_tree" id="menu_action_account_tree" parent="account.account_account_menu"/>--> <!-- Journal @@ -326,12 +326,12 @@ </field> </record> <record id="action_account_journal_form" model="ir.actions.act_window"> - <field name="name">Financial Journals</field> + <field name="name">Journals</field> <field name="res_model">account.journal</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <menuitem action="action_account_journal_form" id="menu_action_account_journal_form" parent="menu_finance_accounting"/> + <menuitem action="action_account_journal_form" id="menu_action_account_journal_form" parent="account_account_menu"/> <record id="view_bank_statement_tree" model="ir.ui.view"> <field name="name">account.bank.statement.tree</field> @@ -415,12 +415,12 @@ </field> </record> <record id="action_bank_statement_tree" model="ir.actions.act_window"> - <field name="name">Entries by Statements</field> + <field name="name">Bank Statements</field> <field name="res_model">account.bank.statement</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <menuitem action="action_bank_statement_tree" id="menu_bank_statement_tree" parent="menu_finance_entries" sequence="7"/> + <menuitem string="Bank Statements" action="action_bank_statement_tree" id="menu_bank_statement_tree" parent="menu_finance_bank_and_cash" sequence="7"/> <record id="action_bank_statement_draft_tree" model="ir.actions.act_window"> <field name="name">Draft statements</field> @@ -517,7 +517,7 @@ <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <menuitem action="action_account_type_form" groups="base.group_extended" id="menu_action_account_type_form" parent="account.account_account_menu"/> + <menuitem action="action_account_type_form" groups="base.group_extended" id="menu_action_account_type_form" parent="menu_low_level"/> <!-- Entries --> @@ -609,7 +609,7 @@ <field name="view_id" ref="view_tax_code_tree"/> </record> <menuitem id="next_id_27" name="Taxes" parent="account.menu_finance_accounting"/> - <menuitem action="action_tax_code_list" id="menu_action_tax_code_list" parent="next_id_27" sequence="12"/> + <menuitem action="action_tax_code_list" id="menu_action_tax_code_list" parent="menu_low_level" sequence="12"/> <!-- @@ -623,7 +623,7 @@ <field name="arch" type="xml"> <tree string="Account Tax"> <field name="name"/> - <field name="price_include"/> + <field name="price_include" groups="base.group_extended"/> <field name="description"/> </tree> </field> @@ -1006,8 +1006,19 @@ <field name="view_id" ref="view_move_tree"/> <field name="search_view_id" ref="view_account_move_filter"/> </record> - <menuitem id="next_id_29" name="Search Entries" parent="account.menu_finance_entries" sequence="40"/> - <menuitem action="action_move_line_form" id="menu_action_move_line_form" parent="next_id_29"/> + + <record id="action_move_to_review" model="ir.actions.act_window"> + <field name="name">Journal Entries to Review</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">account.move</field> + <field name="view_type">form</field> + <field name="view_id" ref="view_move_tree"/> + <field name="search_view_id" ref="view_account_move_filter"/> + <field name="domain">[('to_check','=',True)]</field> + </record> + <menuitem action="action_move_to_review" id="menu_action_move_to_review" parent="periodical_processing_journal_entries_validation"/> +<!-- <menuitem id="next_id_29" name="Search Entries" parent="account.menu_finance_entries" sequence="40"/>--> +<!-- <menuitem action="action_move_line_form" id="menu_action_move_line_form" parent="next_id_29"/>--> <record id="action_move_line_form_encode_by_move" model="ir.actions.act_window"> <field name="name">Journal Entries</field> @@ -1019,6 +1030,30 @@ </record> <menuitem action="action_move_line_form_encode_by_move" id="menu_encode_entries_by_move" parent="menu_finance_entries"/> + + <record id="action_account_moves_sale" model="ir.actions.act_window"> + <field name="name">Journal Items</field> + <field name="res_model">account.move</field> + <field name="view_type">form</field> + <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> + </record> + + <menuitem action="action_account_moves_sale" id="menu_eaction_account_moves_sale" parent="menu_finance_receivables"/> + + <record id="action_account_moves_purchase" model="ir.actions.act_window"> + <field name="name">Transaction Journals</field> + <field name="res_model">account.move</field> + <field name="view_type">form</field> + <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> + </record> + + <menuitem action="action_account_moves_purchase" id="menu_eaction_account_moves_purchase" parent="menu_finance_payables"/> <record id="action_move_line_search" model="ir.actions.act_window"> <field name="name">Entry Lines</field> @@ -1040,7 +1075,30 @@ <field name="view_mode">form</field> <field name="act_window_id" ref="action_move_line_search"/> </record> - <menuitem action="action_move_line_search" id="menu_action_move_line_search" parent="account.next_id_29"/> + <record id="action_move_line_search_view3" model="ir.actions.act_window"> + <field name="name">Cash Register</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">account.move.line</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="view_id" ref="view_move_line_tree"/> + <field name="search_view_id" ref="view_account_move_line_filter"/> + <field name="domain">[('journal_id.type', '=', 'cash')]</field> + </record> + <record id="action_move_line_search_view4" model="ir.actions.act_window"> + <field name="name">Checks Register</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">account.move.line</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="view_id" ref="view_move_line_tree"/> + <field name="search_view_id" ref="view_account_move_line_filter"/> + <field name="domain">[('journal_id.type', '=', 'bank')]</field> + </record> + <menuitem action="action_move_line_search_view3" id="journal_cash_move_lines" parent="menu_finance_bank_and_cash"/> + <menuitem action="action_move_line_search_view4" id="journal_bank_move_lines" parent="menu_finance_bank_and_cash"/> + +<!-- <menuitem action="action_move_line_search" id="menu_action_move_line_search" parent="account.next_id_29"/>--> <menuitem id="menu_finance_charts" name="Charts" parent="account.menu_finance" sequence="4"/> <!-- <wizard id="wizard_account_chart" menu="False" model="account.account" name="account.chart" string="Chart of Accounts"/> @@ -1108,20 +1166,20 @@ <field name="view_mode">form,tree</field> <field name="view_id" ref="view_bank_statement_reconcile_form"/> </record> - <menuitem - id="next_id_30" - name="Bank Reconciliation" - parent="account.menu_finance_periodical_processing" - groups="group_account_user"/> +<!-- <menuitem--> +<!-- id="next_id_30"--> +<!-- name="Bank Reconciliation"--> +<!-- parent="account.menu_finance_periodical_processing"--> +<!-- groups="group_account_user"/>--> - <menuitem action="action_bank_statement_reconciliation_form" id="menu_action_account_bank_reconcile_tree" parent="next_id_30"/> +<!-- <menuitem action="action_bank_statement_reconciliation_form" id="menu_action_account_bank_reconcile_tree" parent="next_id_30"/>--> <!-- <wizard id="action_account_bank_reconcile_tree" menu="False" model="account.move.line" name="account.move.bank.reconcile" string="Bank reconciliation"/> --> <!-- <menuitem action="action_account_bank_reconcile_tree" id="menu_action_account_bank_reconcile_check_tree" parent="account.next_id_30" type="wizard"/> --> <!-- bank reconsilation --> - <menuitem action="action_account_bank_reconcile_tree" - id="menu_action_account_bank_reconcile_check_tree" - parent="account.next_id_30" /> +<!-- <menuitem action="action_account_bank_reconcile_tree"--> +<!-- id="menu_action_account_bank_reconcile_check_tree"--> +<!-- parent="account.next_id_30" />--> <act_window @@ -1244,12 +1302,12 @@ </field> </record> <record id="action_model_form" model="ir.actions.act_window"> - <field name="name">Models Definition</field> + <field name="name">Define Models</field> <field name="res_model">account.model</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <menuitem action="action_model_form" id="menu_action_model_form" parent="menu_finance_configuration"/> + <menuitem action="action_model_form" id="menu_action_model_form" parent="account.menu_finance_recurrent_entries"/> <!-- @@ -1312,7 +1370,7 @@ <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <menuitem action="action_payment_term_form" id="menu_action_payment_term_form" parent="menu_finance_configuration"/> + <menuitem action="action_payment_term_form" id="menu_action_payment_term_form" parent="menu_configuration_misc"/> <!-- # Account Subscriptions @@ -1392,7 +1450,7 @@ <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <menuitem action="action_subscription_form" id="menu_action_subscription_form" parent="account.menu_finance_recurrent_entries"/> +<!-- <menuitem action="action_subscription_form" id="menu_action_subscription_form" parent="account.menu_finance_recurrent_entries"/>--> <record id="action_subscription_form_running" model="ir.actions.act_window"> <field name="name">Running Subscriptions</field> @@ -1525,8 +1583,18 @@ <menuitem id="account_template_folder" name="Templates" - parent="account.menu_finance_accounting" + parent="menu_finance_accounting" groups="base.group_multi_company"/> + <menuitem + id="account_template_taxes" + name="Taxes" + parent="account_template_folder" + groups="base.group_multi_company" sequence="2"/> + <menuitem + id="account_template_accounts" + name="Accounts" + parent="account_template_folder" + groups="base.group_multi_company" sequence="1"/> <record id="view_account_template_form" model="ir.ui.view"> @@ -1577,7 +1645,7 @@ </record> - <menuitem action="action_account_template_form" id="menu_action_account_template_form" parent="account_template_folder"/> + <menuitem action="action_account_template_form" id="menu_action_account_template_form" parent="account_template_accounts"/> <!-- Chart of Accounts Templates --> @@ -1622,7 +1690,7 @@ <field name="view_mode">tree,form</field> </record> - <menuitem action="action_account_chart_template_form" id="menu_action_account_chart_template_form" parent="account_template_folder"/> + <menuitem action="action_account_chart_template_form" id="menu_action_account_chart_template_form" parent="account_template_accounts"/> <!-- Account Tax Templates --> @@ -1698,7 +1766,7 @@ <field name="view_mode">tree,form</field> </record> - <menuitem action="action_account_tax_template_form" id="menu_action_account_tax_template_form" parent="account_template_folder" sequence="13"/> + <menuitem action="action_account_tax_template_form" id="menu_action_account_tax_template_form" parent="account_template_taxes" sequence="13"/> <!-- Account Tax Code Templates --> <record id="view_tax_code_template_tree" model="ir.ui.view"> @@ -1736,7 +1804,7 @@ <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <menuitem action="action_account_tax_code_template_form" id="menu_action_account_tax_code_template_form" parent="account_template_folder" sequence="14"/> + <menuitem action="action_account_tax_code_template_form" id="menu_action_account_tax_code_template_form" parent="account_template_taxes" sequence="14"/> <!-- Wizard for Multi Charts of Accounts --> diff --git a/addons/account/account_wizard.xml b/addons/account/account_wizard.xml index 8b093fb2310..f71c81b48ca 100644 --- a/addons/account/account_wizard.xml +++ b/addons/account/account_wizard.xml @@ -33,7 +33,7 @@ --> <!-- automatic reconcile --> - <menuitem id="next_id_20" name="Reconciliation" parent="menu_finance_periodical_processing"/> +<!-- <menuitem id="next_id_20" name="Reconciliation" parent="menu_finance_periodical_processing"/>--> <!-- <wizard id="wizard_automatic_reconcile" menu="False" model="account.account" name="account.automatic.reconcile" string="Automatic reconciliation"/> <menuitem action="wizard_automatic_reconcile" id="menu_automatic_reconcile" parent="next_id_20" type="wizard"/>--> diff --git a/addons/account/i18n/ca.po b/addons/account/i18n/ca.po index 6a5f47dfb24..87f0c741768 100644 --- a/addons/account/i18n/ca.po +++ b/addons/account/i18n/ca.po @@ -7,14 +7,14 @@ 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-04-18 09:39+0000\n" -"Last-Translator: Albert Cervera i Areny - http://www.NaN-tic.com <albert@nan-" -"tic.com>\n" +"PO-Revision-Date: 2010-06-04 09:39+0000\n" +"Last-Translator: Jordi Esteve (www.zikzakmedia.com) " +"<jesteve@zikzakmedia.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-21 04:06+0000\n" +"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account @@ -61,12 +61,12 @@ msgstr "Nom de model no vàlid en la definició de l'acció." #. module: account #: help:account.journal,currency:0 msgid "The currency used to enter statement" -msgstr "La moneda utilitzada per introduir assentaments" +msgstr "La divisa utilitzada per introduir assentaments" #. module: account #: wizard_view:account_use_models,init_form:0 msgid "Select Message" -msgstr "Selecciona missatge" +msgstr "Seleccioneu missatge" #. module: account #: help:product.category,property_account_income_categ:0 @@ -189,7 +189,7 @@ msgstr "Plans comptables" #. module: account #: model:ir.actions.wizard,name:account.wizard_move_line_select msgid "Move line select" -msgstr "Selecciona línia moviment" +msgstr "Seleccioneu línia moviment" #. module: account #: rml:account.journal.period.print:0 @@ -202,7 +202,7 @@ msgstr "Ref. assentament" #. module: account #: model:ir.model,name:account.model_account_model_line msgid "Account Model Entries" -msgstr "Línia de model d'assentament" +msgstr "Líniees de model d'assentament" #. module: account #: field:account.tax.code,sum_period:0 @@ -315,7 +315,7 @@ msgstr "Pagaments fora de termini" #: wizard_view:account.analytic.account.quantity_cost_ledger.report,init:0 #: wizard_view:account.vat.declaration,init:0 msgid "Select period" -msgstr "Selecciona període" +msgstr "Seleccioneu període" #. module: account #: field:account.invoice,origin:0 @@ -457,7 +457,7 @@ msgstr "Estat" #: model:ir.actions.act_window,name:account.action_invoice_tree13 #: model:ir.ui.menu,name:account.menu_action_invoice_tree13 msgid "Unpaid Supplier Refunds" -msgstr "Factures d'abonament de proveïdor sense pagar" +msgstr "Factures rectificatives (abonament) de proveïdor sense pagar" #. module: account #: view:account.tax:0 @@ -710,7 +710,7 @@ msgstr "Informació addicional" #. module: account #: selection:account.invoice,type:0 msgid "Customer Refund" -msgstr "Factura d'abonament de client" +msgstr "Factura rectificativa (abonament) de client" #. module: account #: wizard_view:account.analytic.account.chart,init:0 @@ -909,7 +909,7 @@ msgstr "Diari de desajust" #: field:account.model.line,amount_currency:0 #: field:account.move.line,amount_currency:0 msgid "Amount Currency" -msgstr "Import canvi" +msgstr "Import divisa" #. module: account #: field:account.chart.template,property_account_expense_categ:0 @@ -938,7 +938,7 @@ msgstr "Exercici fiscal per obrir" #. module: account #: view:account.config.wizard:0 msgid "Select Chart of Accounts" -msgstr "Selecciona pla comptable" +msgstr "Seleccioneu un pla comptable" #. module: account #: field:account.analytic.account,quantity:0 @@ -1242,7 +1242,7 @@ msgstr "" #. module: account #: field:account.account,company_currency_id:0 msgid "Company Currency" -msgstr "Moneda de la companyia" +msgstr "Divisa de la companyia" #. module: account #: model:ir.model,name:account.model_account_fiscal_position_account_template @@ -1353,7 +1353,7 @@ msgstr "Missatge" #. module: account #: model:process.node,note:account.process_node_supplierpaymentorder0 msgid "Select invoices you want to pay and manages advances" -msgstr "Selecciona factures que es volen pagar i gestiona avançaments" +msgstr "Seleccioneu les factures que voleu pagar i gestionar avançaments" #. module: account #: selection:account.account,type:0 @@ -1887,7 +1887,7 @@ msgstr "Data inicial" #. module: account #: model:account.journal,name:account.refund_expenses_journal msgid "x Expenses Credit Notes Journal" -msgstr "x Diari factures d'abonament de despeses" +msgstr "x Diari factures rectificatives (abonament) de despeses" #. module: account #: field:account.analytic.journal,type:0 @@ -1914,7 +1914,7 @@ msgstr "Base imposable" #: field:account.tax,account_collected_id:0 #: field:account.tax.template,account_collected_id:0 msgid "Invoice Tax Account" -msgstr "Compte impostos de factura" +msgstr "Compte impostos de factures" #. module: account #: view:account.move.line:0 @@ -2026,7 +2026,7 @@ msgstr "Informe analític de diari" #: model:ir.actions.act_window,name:account.action_invoice_tree3 #: model:ir.ui.menu,name:account.menu_action_invoice_tree3 msgid "Customer Refunds" -msgstr "Factures d'abonament de client" +msgstr "Factures rectificatives (abonament) de client" #. module: account #: rml:account.vat.declaration:0 @@ -2047,7 +2047,7 @@ msgstr "Nom diari-període" #: field:account.tax.code,name:0 #: field:account.tax.code.template,name:0 msgid "Tax Case Name" -msgstr "Nom impost del cas" +msgstr "Nom codi d'impost" #. module: account #: help:account.journal,entry_posted:0 @@ -2057,7 +2057,7 @@ msgid "" "manual validation." msgstr "" "Marqueu aquesta casella si no voleu que els nous assentaments passin per " -"l'estat 'esborrany' i vagin directament a l'estat 'fixat' sense validar-se " +"l'estat 'Esborrany' i vagin directament a l'estat 'Fixat' sense validar-los " "manualment." #. module: account @@ -2144,7 +2144,7 @@ msgstr "Anterior" #: field:account.model.line,currency_id:0 #: field:account.move.line,currency_id:0 msgid "Currency" -msgstr "Moneda" +msgstr "Divisa" #. module: account #: model:ir.actions.act_window,name:account.act_account_journal_2_account_invoice_opened @@ -2179,7 +2179,8 @@ msgid "Analytic Entry" msgstr "Assentament analític" #. module: account -#: view:res.company:0 field:res.company,overdue_msg:0 +#: view:res.company:0 +#: field:res.company,overdue_msg:0 msgid "Overdue Payments Message" msgstr "Missatge de pagaments fora de termini" @@ -2285,7 +2286,7 @@ msgstr "Diari assentaments d'obertura" #. module: account #: view:account.config.wizard:0 msgid "Create a Fiscal Year" -msgstr "Crea un exercici fiscal" +msgstr "Creeu un exercici fiscal" #. module: account #: field:product.template,taxes_id:0 @@ -2320,7 +2321,8 @@ msgstr "2" #: wizard_view:account.chart,init:0 msgid "(If you do not select Fiscal year it will take all open fiscal years)" msgstr "" -"(Si no es selecciona cap any fiscal s'utilitzen tots els anys fiscals oberts)" +"(Si no es selecciona cap exercici fiscal s'utilitzen tots els exercicis " +"fiscals oberts)" #. module: account #: help:account.invoice.tax,base_code_id:0 @@ -2467,7 +2469,7 @@ msgstr "Data final" #: model:ir.actions.act_window,name:account.action_move_line_tree1 #: model:ir.ui.menu,name:account.menu_action_move_line_search msgid "Entry Lines" -msgstr "Línies de l'extracte" +msgstr "Apunts" #. module: account #: view:account.tax:0 @@ -2526,7 +2528,7 @@ msgstr "Assentaments conciliats" #. module: account #: help:account.bank.statement.reconcile,total_second_amount:0 msgid "The amount in the currency of the journal" -msgstr "La quantitat en la moneda del diari" +msgstr "La quantitat en la divisa del diari" #. module: account #: wizard_field:account.general.ledger.report,checktype,landscape:0 @@ -2836,7 +2838,7 @@ msgstr "Companyies que es refereixen a l'empresa" #. module: account #: field:account.move.line,date:0 msgid "Effective date" -msgstr "Data vigència" +msgstr "Data" #. module: account #: help:account.tax.template,sequence:0 @@ -2961,7 +2963,7 @@ msgstr "1cm 27.7cm 20cm 27.7cm" #: model:ir.actions.act_window,name:account.action_invoice_tree12 #: model:ir.ui.menu,name:account.menu_action_invoice_tree12 msgid "Draft Supplier Refunds" -msgstr "Factures d'abonament de proveïdor esborrany" +msgstr "Factures rectificatives (abonament) de proveïdor esborrany" #. module: account #: model:process.node,name:account.process_node_accountingstatemententries0 @@ -3048,7 +3050,7 @@ msgstr "Taxa de divises de sortida" #: model:ir.actions.act_window,name:account.action_invoice_tree10 #: model:ir.ui.menu,name:account.menu_action_invoice_tree10 msgid "Draft Customer Refunds" -msgstr "Factures d'abonament de client esborrany" +msgstr "Factures rectificatives (abonament) de client esborrany" #. module: account #: field:account.journal.column,readonly:0 @@ -3606,7 +3608,7 @@ msgstr "Impressió" #: model:ir.actions.act_window,name:account.action_invoice_tree4_new #: model:ir.ui.menu,name:account.menu_action_invoice_tree4_new msgid "New Supplier Refund" -msgstr "Nova factura d'abonament de proveïdor" +msgstr "Nova factura rectificativa (abonament) de proveïdor" #. module: account #: view:account.model:0 @@ -3616,7 +3618,7 @@ msgstr "Model d'assentament" #. module: account #: wizard_field:account.general.ledger.report,checktype,amount_currency:0 msgid "With Currency" -msgstr "Amb moneda" +msgstr "Mostra divisa" #. module: account #: view:account.account:0 @@ -3721,12 +3723,12 @@ msgstr "Codificació extracte" #: wizard_view:account.invoice.refund,init:0 #: model:ir.actions.wizard,name:account.wizard_invoice_refund msgid "Credit Note" -msgstr "Factura d'abonament" +msgstr "Factura rectificativa (abonament)" #. module: account #: model:ir.actions.todo,note:account.config_fiscalyear msgid "Define Fiscal Years and Select Charts of Account" -msgstr "Defineix exercicis fiscals i selecciona pla comptable" +msgstr "Definiu els exercicis fiscals i seleccioneu el pla comptable" #. module: account #: wizard_field:account.move.line.reconcile,addendum,period_id:0 @@ -3736,7 +3738,7 @@ msgstr "Període de desajust" #. module: account #: selection:account.config.wizard,period:0 msgid "3 Months" -msgstr "3 mesos" +msgstr "Trimestral" #. module: account #: wizard_view:account.move.journal,init:0 @@ -3800,7 +3802,7 @@ msgstr "Data inicial" #. module: account #: wizard_view:account.general.ledger.report,account_selection:0 msgid "Select Chart" -msgstr "Selecciona pla comptable" +msgstr "Seleccioneu un pla comptable" #. module: account #: selection:account.chart,init,target_move:0 @@ -3867,7 +3869,7 @@ msgstr "Seqüència de l'assentament" #: selection:account.account,type:0 #: selection:account.account.template,type:0 msgid "Closed" -msgstr "Tancat" +msgstr "Tancament" #. module: account #: model:process.node,name:account.process_node_paymententries0 @@ -4022,7 +4024,7 @@ msgstr "Propietats de comptabilitat del client" #. module: account #: view:account.bank.statement:0 msgid "Select entries" -msgstr "Selecciona les entrades" +msgstr "Seleccioneu les entrades" #. module: account #: selection:account.chart,init,target_move:0 @@ -4048,7 +4050,7 @@ msgstr "Compte a pagar" #: field:account.account,currency_id:0 #: field:account.account.template,currency_id:0 msgid "Secondary Currency" -msgstr "Moneda secundària" +msgstr "Divisa secundària" #. module: account #: field:account.account,credit:0 @@ -4083,7 +4085,7 @@ msgstr "" #: field:account.tax,account_paid_id:0 #: field:account.tax.template,account_paid_id:0 msgid "Refund Tax Account" -msgstr "Compte impostos de devolucions" +msgstr "Compte impostos de reintegraments" #. module: account #: field:account.tax.code,child_ids:0 @@ -4186,7 +4188,7 @@ msgstr "Seqüències de diaris separades" #. module: account #: help:account.bank.statement.reconcile,total_second_currency:0 msgid "The currency of the journal" -msgstr "La moneda del diari" +msgstr "La divisa del diari" #. module: account #: view:account.journal.column:0 @@ -4429,7 +4431,7 @@ msgstr "Fixat" #: view:account.tax:0 #: view:account.tax.template:0 msgid "Credit Notes" -msgstr "Factures d'abonament" +msgstr "Factures rectificatives (abonament)" #. module: account #: field:account.config.wizard,date2:0 @@ -4621,7 +4623,7 @@ msgstr "Per data" #: model:ir.actions.act_window,name:account.action_invoice_tree4 #: model:ir.ui.menu,name:account.menu_action_invoice_tree4 msgid "Supplier Refunds" -msgstr "Factures d'abonament de proveïdor" +msgstr "Factures rectificatives (abonament) de proveïdor" #. module: account #: help:account.model.line,date:0 @@ -4951,7 +4953,7 @@ msgstr "Confirmat" #. module: account #: wizard_view:account.account.balance.report,account_selection:0 msgid "Select parent account" -msgstr "Selecciona compte pare" +msgstr "Seleccioneu el compte pare" #. module: account #: field:account.account.template,parent_id:0 @@ -5126,7 +5128,7 @@ msgstr "Compte d'ingressos en plantilla producte" #: help:account.account.template,currency_id:0 msgid "Force all moves for this account to have this secondary currency." msgstr "" -"Força a tots els moviments d'aquest compte que tinguin aquesta moneda " +"Força a tots els moviments d'aquest compte que tinguin aquesta divisa " "secundària." #. module: account @@ -5140,7 +5142,7 @@ msgstr "_Cancel·la" #: wizard_view:account.partner.balance.report,init:0 #: wizard_view:account.third_party_ledger.report,init:0 msgid "Select Date-Period" -msgstr "Selecciona data-període" +msgstr "Seleccioneu data-període" #. module: account #: rml:account.analytic.account.inverted.balance:0 @@ -5169,7 +5171,7 @@ msgstr "Grup de l'impost" #: model:ir.actions.act_window,name:account.action_invoice_tree3_new #: model:ir.ui.menu,name:account.menu_action_invoice_tree3_new msgid "New Customer Refund" -msgstr "Nova factura d'abonament de client" +msgstr "Nova factura rectificativa (abonament) de client" #. module: account #: help:wizard.multi.charts.accounts,seq_journal:0 @@ -5343,7 +5345,7 @@ msgstr "Filtrat per data" #. module: account #: wizard_view:populate_statement_from_inv,init:0 msgid "Choose Journal and Payment Date" -msgstr "Selecciona diari i data de pagament" +msgstr "Seleccioneu diari i data de pagament" #. module: account #: selection:account.analytic.account,state:0 @@ -5367,7 +5369,7 @@ msgstr "Pagat" #: model:ir.actions.act_window,name:account.action_invoice_tree11 #: model:ir.ui.menu,name:account.menu_action_invoice_tree11 msgid "Unpaid Customer Refunds" -msgstr "Factures d'abonament de client sense pagar" +msgstr "Factures rectificatives (abonament) de client sense pagar" #. module: account #: help:account.invoice,residual:0 @@ -5524,7 +5526,7 @@ msgstr "Fi del període" #: view:account.move:0 #: model:ir.model,name:account.model_account_move msgid "Account Entry" -msgstr "Assentament de compte" +msgstr "Assentament comptable" #. module: account #: rml:account.general.journal:0 @@ -5555,7 +5557,7 @@ msgstr "Saldo pendent" #. module: account #: rml:account.invoice:0 msgid "Refund" -msgstr "Factura d'abonament" +msgstr "Factura rectificativa (abonament)" #. module: account #: model:ir.model,name:account.model_account_invoice_tax @@ -5792,7 +5794,7 @@ msgstr "" #: field:account.tax.code,code:0 #: field:account.tax.code.template,code:0 msgid "Case Code" -msgstr "Codi cas" +msgstr "Codi" #. module: account #: selection:account.automatic.reconcile,init,power:0 @@ -5916,7 +5918,7 @@ msgstr "Deixeu-lo buit per a tots els exercicis fiscals oberts" #: rml:account.invoice:0 #: selection:account.invoice,type:0 msgid "Supplier Refund" -msgstr "Factura d'abonament de proveïdor" +msgstr "Factura rectificativa (abonament) de proveïdor" #. module: account #: model:process.transition,note:account.process_transition_entriesreconcile0 @@ -6072,3 +6074,6 @@ msgstr "" #: wizard_button:account.subscription.generate,init,generate:0 msgid "Compute Entry Dates" msgstr "Calcula les dates de l'assentament" + +#~ msgid "account.config.wizard" +#~ msgstr "account.config.assistent" diff --git a/addons/account/i18n/de.po b/addons/account/i18n/de.po index 4f9893960bf..d2659e92d1c 100644 --- a/addons/account/i18n/de.po +++ b/addons/account/i18n/de.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-04-16 09:47+0000\n" +"PO-Revision-Date: 2010-06-03 20:09+0000\n" "Last-Translator: Ferdinand @ ChriCar <Unknown>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-21 04:06+0000\n" +"X-Launchpad-Export-Date: 2010-06-04 03:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account @@ -272,10 +272,6 @@ msgid "" "in which order. You can create your own view for a faster encoding in each " "journal." msgstr "" -"zeigt die Ansicht des Journalberichtes. Open ERP wird gezeigt welche Felder " -"sichtbar sein sollen, welche erforderlich sind oder keine Schreibrechte habe " -"und in der Reihenfolge der Auftragsnummern. Sie können einen eigenen View " -"für eine schnellere Buchungsbearbeitung herstellen." #. module: account #: help:account.invoice,date_due:0 @@ -2176,7 +2172,8 @@ msgid "Analytic Entry" msgstr "Buchung Analysekonto" #. module: account -#: view:res.company:0 field:res.company,overdue_msg:0 +#: view:res.company:0 +#: field:res.company,overdue_msg:0 msgid "Overdue Payments Message" msgstr "Text Zahlungserinnerung" @@ -3314,7 +3311,9 @@ msgstr "Buchen OP Ausgleich" #. module: account #: wizard_view:account.wizard_paid_open,init:0 msgid "(Invoice should be unreconciled if you want to open it)" -msgstr "(Rechnungen müssen ausgeglichen werden)" +msgstr "" +"(Rechnungen dürfen nicht ausgeglichen sein, wenn diese wieder geöffnet " +"werden sollen)" #. module: account #: view:account.invoice:0 @@ -5314,7 +5313,7 @@ msgstr "Benutze Buchungsvorlage" #. module: account #: wizard_button:account.wizard_paid_open,init,end:0 msgid "No" -msgstr "Nummer" +msgstr "Nein" #. module: account #: model:ir.actions.act_window,name:account.act_account_partner_account_move @@ -6062,3 +6061,6 @@ msgstr "Aktivieren, wenn Benutzer das Konto ausgleichen dürfen." #: wizard_button:account.subscription.generate,init,generate:0 msgid "Compute Entry Dates" msgstr "Berechne eingegebene Daten" + +#~ msgid "account.config.wizard" +#~ msgstr "account.config.wizard" diff --git a/addons/account/i18n/it.po b/addons/account/i18n/it.po index d5cb2f7dc84..0181308a55e 100644 --- a/addons/account/i18n/it.po +++ b/addons/account/i18n/it.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-05-13 14:03+0000\n" -"Last-Translator: Carlo - didotech.com <Unknown>\n" +"PO-Revision-Date: 2010-06-04 16:42+0000\n" +"Last-Translator: eLBati - albatos.com <lorenzo.battistini@albatos.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n" +"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account @@ -3047,7 +3047,7 @@ msgstr "" #. module: account #: field:account.invoice.line,uos_id:0 msgid "Unit of Measure" -msgstr "" +msgstr "Unità di misura" #. module: account #: field:account.chart.template,property_account_receivable:0 @@ -3107,7 +3107,7 @@ msgstr "Imposta come bozza" #: help:account.invoice,origin:0 #: help:account.invoice.line,origin:0 msgid "Reference of the document that produced this invoice." -msgstr "" +msgstr "Riferimento al documento che ha prodotto questa fattura." #. module: account #: selection:account.account,type:0 @@ -3608,7 +3608,7 @@ msgstr "Manuale" #. module: account #: view:account.invoice:0 msgid "Compute Taxes" -msgstr "" +msgstr "Calcola tasse" #. module: account #: field:wizard.multi.charts.accounts,code_digits:0 @@ -4596,7 +4596,7 @@ msgstr "" #. module: account #: field:account.tax,price_include:0 msgid "Tax Included in Price" -msgstr "" +msgstr "Tassa compresa nel prezzo" #. module: account #: model:ir.actions.act_window,name:account.action_account_analytic_journal_tree2 diff --git a/addons/account/invoice.py b/addons/account/invoice.py index d8205ababa7..5ef80d40560 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -333,6 +333,7 @@ class account_invoice(osv.osv): raise orm.except_orm(_('Configuration Error!'), _('There is no Accounting Journal of type Sale/Purchase defined!')) else: + raise raise orm.except_orm(_('UnknownError'), str(e)) def confirm_paid(self, cr, uid, ids, context=None): @@ -1131,17 +1132,17 @@ account_invoice() class account_invoice_line(osv.osv): def _amount_line(self, cr, uid, ids, prop, unknow_none,unknow_dict): res = {} - cur_obj=self.pool.get('res.currency') + tax_obj = self.pool.get('account.tax') + cur_obj = self.pool.get('res.currency') for line in self.browse(cr, uid, ids): + price = line.price_unit * (1-(line.discount or 0.0)/100.0) + taxes = tax_obj.compute_all(cr, uid, line.invoice_line_tax_id, price, line.quantity) + res[line.id] = taxes['total'] if line.invoice_id: - res[line.id] = line.price_unit * line.quantity * (1-(line.discount or 0.0)/100.0) cur = line.invoice_id.currency_id res[line.id] = cur_obj.round(cr, uid, cur, res[line.id]) - else: - res[line.id] = round(line.price_unit * line.quantity * (1-(line.discount or 0.0)/100.0),self.pool.get('decimal.precision').precision_get(cr, uid, 'Account')) return res - def _price_unit_default(self, cr, uid, context=None): if context is None: context = {} @@ -1155,7 +1156,7 @@ class account_invoice_line(osv.osv): taxes = l[2].get('invoice_line_tax_id') if len(taxes[0]) >= 3 and taxes[0][2]: taxes = tax_obj.browse(cr, uid, taxes[0][2]) - for tax in tax_obj.compute(cr, uid, taxes, p,l[2].get('quantity'), context.get('address_invoice_id', False), l[2].get('product_id', False), context.get('partner_id', False)): + for tax in tax_obj.compute_all(cr, uid, taxes, p,l[2].get('quantity'), context.get('address_invoice_id', False), l[2].get('product_id', False), context.get('partner_id', False))['taxes']: t = t - tax['amount'] return t return 0 @@ -1170,7 +1171,8 @@ class account_invoice_line(osv.osv): 'product_id': fields.many2one('product.product', 'Product', ondelete='set null'), 'account_id': fields.many2one('account.account', 'Account', required=True, domain=[('type','<>','view'), ('type', '<>', 'closed')], help="The income or expense account related to the selected product."), 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Account')), - 'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal',store=True, type="float", digits_compute= dp.get_precision('Account')), + 'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal', type="float", + digits_compute= dp.get_precision('Account'), store=True), 'quantity': fields.float('Quantity', required=True), 'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Account')), 'invoice_line_tax_id': fields.many2many('account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id', 'Taxes', domain=[('parent_id','=',False)]), @@ -1339,10 +1341,10 @@ class account_invoice_line(osv.osv): continue res.append(mres) tax_code_found= False - for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, + for tax in tax_obj.compute_all(cr, uid, line.invoice_line_tax_id, (line.price_unit * (1.0 - (line['discount'] or 0.0) / 100.0)), line.quantity, inv.address_invoice_id.id, line.product_id, - inv.partner_id): + inv.partner_id)['taxes']: if inv.type in ('out_invoice', 'in_invoice'): tax_code_id = tax['base_code_id'] @@ -1445,7 +1447,7 @@ class account_invoice_tax(osv.osv): company_currency = inv.company_id.currency_id.id for line in inv.invoice_line: - for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, (line.price_unit* (1-(line.discount or 0.0)/100.0)), line.quantity, inv.address_invoice_id.id, line.product_id, inv.partner_id): + for tax in tax_obj.compute_all(cr, uid, line.invoice_line_tax_id, (line.price_unit* (1-(line.discount or 0.0)/100.0)), line.quantity, inv.address_invoice_id.id, line.product_id, inv.partner_id)['taxes']: val={} val['invoice_id'] = inv.id val['name'] = tax['name'] @@ -1507,11 +1509,7 @@ account_invoice_tax() class res_partner(osv.osv): """ Inherits partner and adds invoice information in the partner form """ _inherit = 'res.partner' - _columns = { - 'invoice_ids': fields.one2many('account.invoice.line', 'partner_id', 'Invoices', readonly=True), - } - + 'invoice_ids': fields.one2many('account.invoice.line', 'partner_id', 'Invoices', readonly=True), + } res_partner() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml index e1e43420d6e..72004afa944 100644 --- a/addons/account/partner_view.xml +++ b/addons/account/partner_view.xml @@ -57,7 +57,7 @@ <menuitem action="action_account_fiscal_position_form" id="menu_action_account_fiscal_position_form" - parent="account.menu_finance_accounting" sequence="20"/> + parent="next_id_27" sequence="20"/> <!-- Partners Extension diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index b4a7b67a05a..1d74edb3f3a 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -101,7 +101,7 @@ <field name="search_view_id" ref="account.view_account_analytic_account_search"/> </record> <!--<menuitem id="menu_analytic_account" name="Analytic Accounts" parent="account.menu_analytic_accounting"/>--> - <menuitem action="action_account_analytic_account_form" id="account_analytic_def_account" parent="account.menu_analytic_accounting"/> + <menuitem action="action_account_analytic_account_form" id="account_analytic_def_account" parent="menu_analytic"/> <record id="act_account_renew_view" model="ir.actions.act_window"> <field name="name">Accounts to Renew</field> @@ -114,7 +114,7 @@ </record> <record id="action_account_analytic_account_tree2" model="ir.actions.act_window"> - <field name="name">Analytic Chart of Accounts</field> + <field name="name">Chart of Analytic Accounts</field> <field name="type">ir.actions.act_window</field> <field name="res_model">account.analytic.account</field> <field name="domain">[('parent_id','=',False)]</field> @@ -122,10 +122,10 @@ <field name="view_mode">form,graph</field> <field name="view_id" ref="view_account_analytic_account_tree"/> </record> - <menuitem - action="action_account_analytic_account_tree2" - id="account_analytic_def_chart" - parent="account_analytic_def_account"/> +<!-- <menuitem--> +<!-- action="action_account_analytic_account_tree2"--> +<!-- id="account_analytic_def_chart"--> +<!-- parent="account_analytic_def_account"/>--> <!-- <menuitem action="action_account_analytic_account_tree2" id="account_analytic_chart" parent="account.menu_finance_charts"/>--> <!-- <wizard id="wizard_analytic_account_chart" menu="False" model="account.analytic.account" name="account.analytic.account.chart" string="Analytic Chart of Accounts"/> @@ -206,14 +206,14 @@ <field name="context">{"search_default_user_id":uid}</field> <field name="view_id" ref="view_account_analytic_line_tree"/> </record> - <wizard id="action_account_analytic_line" menu="False" model="account.analytic.line" name="account.analytic.line" string="Entries by Line"/> - <menuitem id="next_id_41" name="Analytic Entries" parent="account.menu_finance_entries"/> +<!-- <wizard id="action_account_analytic_line" menu="False" model="account.analytic.line" name="account.analytic.line" string="Entries by Line"/>--> +<!-- <menuitem id="next_id_41" name="Analytic Entries" parent="account.menu_finance_entries"/>--> <!-- Entries by Line --> - <menuitem icon="STOCK_JUSTIFY_FILL" - action="action_project_account_analytic_line_form" - id="account_entries_analytic_entries" - parent="next_id_41"/> +<!-- <menuitem icon="STOCK_JUSTIFY_FILL"--> +<!-- action="action_project_account_analytic_line_form"--> +<!-- id="account_entries_analytic_entries"--> +<!-- parent="next_id_41"/>--> <record id="action_account_tree1" model="ir.actions.act_window"> <field name="name">Analytic Entries</field> @@ -293,31 +293,49 @@ </field> </record> <record id="action_account_analytic_journal_form" model="ir.actions.act_window"> - <field name="name">Analytic Journal Definition</field> + <field name="name">Analytic Journals</field> <field name="res_model">account.analytic.journal</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <menuitem action="action_account_analytic_journal_form" id="account_def_analytic_journal" parent="account.menu_analytic_accounting"/> + <menuitem action="action_account_analytic_journal_form" id="account_def_analytic_journal" parent="menu_analytic"/> # # Open journal entries # <record id="action_account_analytic_journal_open_form" model="ir.actions.act_window"> - <field name="name">Entries of Open Analytic Journals</field> + <field name="name">Analytic Journal Items</field> <field name="res_model">account.analytic.line</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> <field name="domain">[('journal_id','=',active_id)]</field> </record> - <record id="ir_open_account_journal_analytic" model="ir.values"> - <field eval="'tree_but_open'" name="key2"/> - <field eval="'account.analytic.journal'" name="model"/> - <field name="name">Open Analytic Journal</field> - <field eval="'ir.actions.act_window,%d'%action_account_analytic_journal_open_form" name="value"/> - <field eval="True" name="object"/> + <menuitem action="action_account_analytic_journal_open_form" id="account_analytic_journal_entries" parent="menu_finance_entries"/> + <record id="action_account_analytic_journal_open_form" model="ir.actions.act_window"> + <field name="name">Check Register</field> + <field name="res_model">account.analytic.line</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="domain">[('journal_id','=',active_id)]</field> + </record> +<!-- <menuitem action="action_account_analytic_journal_open_form" id="account_analytic_journal_entries" parent="menu_finance_bank_and_cash"/>--> + <record id="action_account_analytic_journal_open_form" model="ir.actions.act_window"> + <field name="name">Checks Register</field> + <field name="res_model">account.analytic.line</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="domain">[('journal_id','=',active_id)]</field> </record> +<!-- <menuitem action="action_account_analytic_journal_open_form" id="account_analytic_journal_entries" parent="menu_finance_bank_and_cash"/>--> + +<!-- <record id="ir_open_account_journal_analytic" model="ir.values">--> +<!-- <field eval="'tree_but_open'" name="key2"/>--> +<!-- <field eval="'account.analytic.journal'" name="model"/>--> +<!-- <field name="name">Open Analytic Journal</field>--> +<!-- <field eval="'ir.actions.act_window,%d'%action_account_analytic_journal_open_form" name="value"/>--> +<!-- <field eval="True" name="object"/>--> +<!-- </record>--> # # Reporting @@ -331,13 +349,13 @@ <menuitem action="action_account_analytic_journal_tree" id="account_analytic_journal_print" parent="account.next_id_40"/> - <record id="action_account_analytic_journal_tree2" model="ir.actions.act_window"> - <field name="name">Analytic Entries by Journal</field> - <field name="res_model">account.analytic.journal</field> - <field name="view_type">tree</field> - <field name="view_id" ref="view_account_analytic_journal_tree"/> - </record> - <menuitem action="action_account_analytic_journal_tree2" id="account_analytic_journal_entries" parent="account.next_id_41"/> +<!-- <record id="action_account_analytic_journal_tree2" model="ir.actions.act_window">--> +<!-- <field name="name">Analytic Entries by Journal</field>--> +<!-- <field name="res_model">account.analytic.journal</field>--> +<!-- <field name="view_type">tree</field>--> +<!-- <field name="view_id" ref="view_account_analytic_journal_tree"/>--> +<!-- </record>--> +<!-- <menuitem action="action_account_analytic_journal_tree2" id="account_analytic_journal_entries" parent="account.next_id_41"/>--> # # Statistics diff --git a/addons/account/wizard/account_automatic_reconcile_view.xml b/addons/account/wizard/account_automatic_reconcile_view.xml index 9711fc9b941..76b10e8745c 100644 --- a/addons/account/wizard/account_automatic_reconcile_view.xml +++ b/addons/account/wizard/account_automatic_reconcile_view.xml @@ -43,7 +43,7 @@ name="Automatic reconciliation" action="action_account_automatic_reconcile" id="menu_automatic_reconcile" - parent="next_id_20"/> + parent="periodical_processing_reconciliation"/> <record id="account_automatic_reconcile_view1" model="ir.ui.view"> <field name="name">Automatic reconcile unreconcile</field> diff --git a/addons/account/wizard/account_fiscalyear_close_view.xml b/addons/account/wizard/account_fiscalyear_close_view.xml index e8db5193275..20547cde235 100644 --- a/addons/account/wizard/account_fiscalyear_close_view.xml +++ b/addons/account/wizard/account_fiscalyear_close_view.xml @@ -31,7 +31,7 @@ </record> <record id="action_account_fiscalyear_close" model="ir.actions.act_window"> - <field name="name">Generate Fiscal Year Opening Entries</field> + <field name="name">Generate Opening Entries</field> <field name="res_model">account.fiscalyear.close</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> diff --git a/addons/account/wizard/account_move_journal_view.xml b/addons/account/wizard/account_move_journal_view.xml index 7a25932bb98..c3a9e4ad75a 100644 --- a/addons/account/wizard/account_move_journal_view.xml +++ b/addons/account/wizard/account_move_journal_view.xml @@ -32,10 +32,10 @@ <field name="target">new</field> </record> - <menuitem icon="STOCK_JUSTIFY_FILL" - action="action_account_move_journal_line_form" - id="menu_action_move_journal_line_form" - parent="account.menu_finance_entries" sequence="5" /> +<!-- <menuitem icon="STOCK_JUSTIFY_FILL"--> +<!-- action="action_account_move_journal_line_form"--> +<!-- id="menu_action_move_journal_line_form"--> +<!-- parent="account.menu_finance_entries" sequence="5" />--> </data> </openerp>
\ No newline at end of file diff --git a/addons/account/wizard/account_move_line_reconcile_select_view.xml b/addons/account/wizard/account_move_line_reconcile_select_view.xml index dbd25408fe1..795ae925ef9 100644 --- a/addons/account/wizard/account_move_line_reconcile_select_view.xml +++ b/addons/account/wizard/account_move_line_reconcile_select_view.xml @@ -32,7 +32,7 @@ </record> <menuitem action="action_account_reconcile_select" - id="menu_reconcile_select" parent="account.next_id_20" /> + id="menu_reconcile_select" parent="periodical_processing_reconciliation" /> </data> </openerp>
\ No newline at end of file diff --git a/addons/account/wizard/account_move_line_unreconcile_select_view.xml b/addons/account/wizard/account_move_line_unreconcile_select_view.xml index 7d10c02f010..50449b36d2f 100644 --- a/addons/account/wizard/account_move_line_unreconcile_select_view.xml +++ b/addons/account/wizard/account_move_line_unreconcile_select_view.xml @@ -32,7 +32,7 @@ </record> <menuitem action="action_account_unreconcile_select" - id="menu_unreconcile_select" parent="account.next_id_20" /> + id="menu_unreconcile_select" parent="periodical_processing_reconciliation" /> </data> </openerp>
\ No newline at end of file diff --git a/addons/account/wizard/account_open_closed_fiscalyear_view.xml b/addons/account/wizard/account_open_closed_fiscalyear_view.xml index c5269939e0c..421d3a319e4 100644 --- a/addons/account/wizard/account_open_closed_fiscalyear_view.xml +++ b/addons/account/wizard/account_open_closed_fiscalyear_view.xml @@ -29,9 +29,9 @@ <field name="target">new</field> </record> - <menuitem action="action_account_open_closed_fiscalyear" - id="menu_wizard_open_closed_fy" sequence="2" - parent="account.menu_account_end_year_treatments" /> +<!-- <menuitem action="action_account_open_closed_fiscalyear"--> +<!-- id="menu_wizard_open_closed_fy" sequence="2"--> +<!-- parent="account.menu_account_end_year_treatments" />--> </data> </openerp>
\ No newline at end of file diff --git a/addons/account/wizard/account_subscription_generate_view.xml b/addons/account/wizard/account_subscription_generate_view.xml index 252865f322e..cfe91171621 100644 --- a/addons/account/wizard/account_subscription_generate_view.xml +++ b/addons/account/wizard/account_subscription_generate_view.xml @@ -32,7 +32,7 @@ <field name="target">new</field> </record> - <menuitem action="action_account_subscription_generate" id="menu_generate_subscription" parent="account.menu_finance_periodical_processing" /> +<!-- <menuitem action="action_account_subscription_generate" id="menu_generate_subscription" parent="account.menu_finance_periodical_processing" />--> </data> </openerp> diff --git a/addons/account/wizard/account_use_model_view.xml b/addons/account/wizard/account_use_model_view.xml index fec632c2e59..a5720e3a0b4 100644 --- a/addons/account/wizard/account_use_model_view.xml +++ b/addons/account/wizard/account_use_model_view.xml @@ -39,8 +39,8 @@ <field name="model">account.move.line</field> </record> - <menuitem action="action_view_account_use_model" name="Create Entries From Models" - parent="account.menu_finance_recurrent_entries" id="menu_account_use_model"/> +<!-- <menuitem action="action_view_account_use_model" name="Create Entries From Models"--> +<!-- parent="account.menu_finance_recurrent_entries" id="menu_account_use_model"/>--> <record id="view_account_use_model_open_entry" model="ir.ui.view"> <field name="name">account.use.model.open.entry.form</field> diff --git a/addons/account/wizard/account_validate_move_view.xml b/addons/account/wizard/account_validate_move_view.xml index 27ca48662bc..8e006bf171f 100644 --- a/addons/account/wizard/account_validate_move_view.xml +++ b/addons/account/wizard/account_validate_move_view.xml @@ -34,7 +34,7 @@ <menuitem name="Validate Ledger Postings" - parent="account.menu_finance_periodical_processing" + parent="periodical_processing_journal_entries_validation" action="action_validate_account_move" id="menu_validate_account_moves" /> diff --git a/addons/account_analytic_default/account_analytic_default_view.xml b/addons/account_analytic_default/account_analytic_default_view.xml index b94afdc9292..6eda0241eea 100644 --- a/addons/account_analytic_default/account_analytic_default_view.xml +++ b/addons/account_analytic_default/account_analytic_default_view.xml @@ -42,10 +42,10 @@ <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - <menuitem - action="action_analytic_default_form" - id="menu_analytic_defaul_form" - parent="account.menu_analytic_accounting"/> +<!-- <menuitem--> +<!-- action="action_analytic_default_form"--> +<!-- id="menu_analytic_defaul_form"--> +<!-- parent="account.menu_analytic_accounting"/>--> <act_window domain="[('account_id', '=', active_id)]" id="act_account_acount_move_line_open" name="Entries" res_model="account.move.line" src_model="account.account"/> diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml index 55afe582445..656b9105210 100644 --- a/addons/account_analytic_plans/account_analytic_plans_view.xml +++ b/addons/account_analytic_plans/account_analytic_plans_view.xml @@ -129,10 +129,10 @@ src_model="account.analytic.plan" id="account_analytic_instance_model_open"/> - <menuitem - name="Analytic Distribution's models" parent="account.account_def_analytic_journal" - id="menu_account_analytic_plan_instance_action" - action="account_analytic_plan_instance_action"/> +<!-- <menuitem--> +<!-- name="Analytic Distribution's models" parent="account.account_def_analytic_journal"--> +<!-- id="menu_account_analytic_plan_instance_action"--> +<!-- action="account_analytic_plan_instance_action"/>--> <record model="ir.ui.view" id="account_analytic_plan_instance_line_form"> <field name="name">account.analytic.plan.instance.line.form</field> @@ -192,11 +192,16 @@ <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> - - <menuitem - parent="account.account_analytic_def_account" - id="menu_account_analytic_plan_action" - action="account_analytic_plan_form_action"/> + + <menuitem + parent="account.menu_analytic" + name="Multi Plans" + id="menu_account_analytic_multi_plan_action" + /> + <menuitem + parent="menu_account_analytic_multi_plan_action" + id="menu_account_analytic_plan_action" + action="account_analytic_plan_form_action"/> <record model="ir.ui.view" id="account_analytic_plan_line_form"> <field name="name">account.analytic.plan.line.form</field> diff --git a/addons/account_payment/i18n/zh_CN.po b/addons/account_payment/i18n/zh_CN.po index 2dbc570776c..fa12e8b9841 100644 --- a/addons/account_payment/i18n/zh_CN.po +++ b/addons/account_payment/i18n/zh_CN.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.6\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-20 07:13+0000\n" -"Last-Translator: Black Jack <onetimespeed@hotmail.com>\n" +"PO-Revision-Date: 2010-06-04 13:32+0000\n" +"Last-Translator: Eleanor Chen <chenyueg@gmail.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:12+0000\n" +"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_payment @@ -251,12 +251,12 @@ msgstr "无效XML视图结构!" #: wizard_button:populate_payment,search,end:0 #: wizard_button:populate_statement,init,end:0 msgid "_Cancel" -msgstr "取消" +msgstr "取消(_C)" #. module: account_payment #: field:payment.line,create_date:0 msgid "Created" -msgstr "创建" +msgstr "已创建" #. module: account_payment #: view:payment.line:0 diff --git a/addons/account_payment/wizard/account_payment_order.py b/addons/account_payment/wizard/account_payment_order.py index 266dcb535d8..5e37bd79488 100644 --- a/addons/account_payment/wizard/account_payment_order.py +++ b/addons/account_payment/wizard/account_payment_order.py @@ -58,16 +58,16 @@ class payment_order_create(osv.osv_memory): def create_payment(self, cr, uid, ids, context=None): order_obj = self.pool.get('payment.order') line_obj = self.pool.get('account.move.line') - - data = self.read(cr, uid, ids, [], context)[0] - line_ids= data['entries'] + payment_obj = self.pool.get('payment.line') + if context is None: + context = {} + data = self.read(cr, uid, ids, [])[0] + line_ids = data['entries'] if not line_ids: return {} - payment = order_obj.browse(cr, uid, data['active_id'], - context=context) + payment = order_obj.browse(cr, uid, context['active_id'], context=context) t = payment.mode and payment.mode.type.id or None - line2bank = pool.get('account.move.line').line2bank(cr, uid, - line_ids, t, context) + line2bank = line_obj.line2bank(cr, uid, line_ids, t, context) ## Finally populate the current payment with new lines: for line in line_obj.browse(cr, uid, line_ids, context=context): @@ -78,7 +78,7 @@ class payment_order_create(osv.osv_memory): date_to_pay = line.date_maturity elif payment.date_prefered == 'fixed': date_to_pay = payment.date_planned - pool.get('payment.line').create(cr, uid,{ + payment_obj.create(cr, uid,{ 'move_line_id': line.id, 'amount_currency': line.amount_to_pay, 'bank_id': line2bank.get(line.id), @@ -88,13 +88,14 @@ class payment_order_create(osv.osv_memory): 'date': date_to_pay, 'currency': line.invoice and line.invoice.currency_id.id or False, }, context=context) - return {} + return {'nodestroy':True,} def search_entries(self, cr, uid, ids, context=None): order_obj = self.pool.get('payment.order') line_obj = self.pool.get('account.move.line') mod_obj = self.pool.get('ir.model.data') - + if context is None: + context = {} data = self.read(cr, uid, ids, [], context=context)[0] search_due_date = data['duedate'] payment = order_obj.browse(cr, uid, context['active_id'], context=context) diff --git a/addons/account_payment/wizard/account_payment_pay_view.xml b/addons/account_payment/wizard/account_payment_pay_view.xml index 061c152361c..322c0a72e48 100644 --- a/addons/account_payment/wizard/account_payment_pay_view.xml +++ b/addons/account_payment/wizard/account_payment_pay_view.xml @@ -7,12 +7,14 @@ <field name="model">account.payment.make.payment</field> <field name="type">form</field> <field name="arch" type="xml"> - <form string="Make Payment"> - <label string ="Are you sure you want to make payment?" /> - <group colspan="4" col="6"> - <label string ="" colspan="2"/> - <button special="cancel" string="Cancel" icon="gtk-cancel"/> - <button name="launch_wizard" string="Print" type="object" icon="gtk-print" default_focus="1"/> + <form string="Make Payment"> + <group height="80" width="320"> + <separator string="Are you sure you want to make payment?"/> + <newline/> + <group colspan="2" col="4"> + <button special="cancel" string="Cancel" icon="gtk-cancel"/> + <button name="launch_wizard" string="Yes" type="object" icon="gtk-ok" default_focus="1"/> + </group> </group> </form> </field> diff --git a/addons/account_report_india/report/report_balance_sheet.rml b/addons/account_report_india/report/report_balance_sheet.rml index 95a34c2f063..c540e16f58e 100644 --- a/addons/account_report_india/report/report_balance_sheet.rml +++ b/addons/account_report_india/report/report_balance_sheet.rml @@ -186,7 +186,7 @@ <para style="terp_default_9"><font color="white">[[ '. '*(a['level']-1) ]]</font><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) ]][[ a['name'] ]]</font></para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ formatLang(abs(a['balance'])) ]]</para> + <para style="terp_default_Right_9_Bold">[[ a['balance'] and formatLang(abs(a['balance'])) or 0.0 ]]</para> </td> </tr> </blockTable> @@ -196,7 +196,7 @@ <para style="terp_default_Bold_9">Balance:([[ get_currency(data['form']) ]])</para> </td> <td> - <para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_dr()) ]]</u></para> + <para style="terp_default_Right_9_Bold"><u>[[ sum_dr() and formatLang(sum_dr()) or 0.0 ]]</u></para> </td> </tr> </blockTable> @@ -224,7 +224,7 @@ <para style="terp_default_9">[[ a['code'] ]]<font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) ]][[ a['name'] ]]</font></para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ formatLang(abs(a['balance'])) ]]</para> + <para style="terp_default_Right_9_Bold">[[ a['balance'] and formatLang(abs(a['balance'])) or 0.0 ]]</para> </td> </tr> </blockTable> @@ -234,7 +234,7 @@ <para style="terp_default_Bold_9">Balance:([[ get_currency(data['form']) ]])</para> </td> <td> - <para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_cr()) ]]</u></para> + <para style="terp_default_Right_9_Bold"><u>[[ sum_cr() and formatLang(sum_cr()) or 0.0 ]]</u></para> </td> </tr> </blockTable> diff --git a/addons/account_report_india/report/report_balance_sheet_horizontal.rml b/addons/account_report_india/report/report_balance_sheet_horizontal.rml index 09a2f252f80..d9b92da3856 100644 --- a/addons/account_report_india/report/report_balance_sheet_horizontal.rml +++ b/addons/account_report_india/report/report_balance_sheet_horizontal.rml @@ -197,7 +197,7 @@ <para style="terp_default_9"><font color="white">[[ '. '*(a['level']-1) ]]</font><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) ]][[ a['name'] ]]</font></para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ formatLang(abs(a['balance'])) ]]</para> + <para style="terp_default_Right_9_Bold">[[ a['balance'] and formatLang(abs(a['balance'])) or 0.0 ]]</para> </td> <td> <para style="terp_default_9"><font>[[ a['level']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) ]]</font><font>[[ a['code1'] ]]</font></para> @@ -206,7 +206,7 @@ <para style="terp_default_9"><font color="white">[[ '. '*(a['level1']-1) ]]</font><font>[[ a['level1']<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) ]][[ a['name1'] ]]</font></para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ formatLang(abs(a['balance1'])) ]]</para> + <para style="terp_default_Right_9_Bold">[[ a['balance1'] and formatLang(abs(a['balance1'])) or 0.0 ]]</para> </td> </tr> </blockTable> @@ -216,13 +216,13 @@ <para style="terp_default_Bold_9">Balance:([[ get_currency(data['form']) ]])</para> </td> <td> - <para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_dr())) ]]</u></para> + <para style="terp_default_Right_9_Bold"><u>[[ sum_dr() and formatLang(abs(sum_dr())) or 0.0 ]]</u></para> </td> <td> <para style="terp_default_Bold_9">Balance:([[ get_currency(data['form']) ]])</para> </td> <td> - <para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_cr())) ]]</u></para> + <para style="terp_default_Right_9_Bold"><u>[[ sum_cr() and formatLang(abs(sum_cr())) or 0.0 ]]</u></para> </td> </tr> </blockTable> diff --git a/addons/account_report_india/report/report_pl_account.rml b/addons/account_report_india/report/report_pl_account.rml index 77f3fa50ad8..6e72a198115 100644 --- a/addons/account_report_india/report/report_pl_account.rml +++ b/addons/account_report_india/report/report_pl_account.rml @@ -201,7 +201,7 @@ </para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ formatLang(abs(a.balance)) ]]</para> + <para style="terp_default_Right_9_Bold">[[ a.balance and formatLang(abs(a.balance)) or 0.0 ]]</para> </td> </tr> </blockTable> @@ -214,7 +214,7 @@ <para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Profit C.F.B.L.' and final_result()['type'] or removeParentNode('blockTable') ]]</para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ final_result()['type'] == 'Net Profit C.F.B.L.' and formatLang(abs(final_result()['balance'])) or '' ]]</para> + <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Profit C.F.B.L.' and formatLang(abs(final_result()['balance'])) or 0.0 ]]</para> </td> </tr> </blockTable> @@ -224,7 +224,7 @@ <para style="terp_default_Bold_9">Total:([[ get_currency(data['form']) ]])</para> </td> <td> - <para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_dr())) ]]</u></para> + <para style="terp_default_Right_9_Bold"><u>[[ sum_dr() and formatLang(abs(sum_dr())) or 0.0 ]]</u></para> </td> </tr> </blockTable> @@ -256,7 +256,7 @@ </para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ formatLang(abs(a.balance)) ]]</para> + <para style="terp_default_Right_9_Bold">[[ a.balance and formatLang(abs(a.balance)) or 0.0 ]]</para> </td> </tr> </blockTable> @@ -269,7 +269,7 @@ <para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Loss C.F.B.L.' and final_result()['type'] or removeParentNode('blockTable') ]]</para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ final_result()['type'] == 'Net Loss C.F.B.L.' and formatLang(abs(final_result()['balance'])) or '' ]]</para> + <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Loss C.F.B.L.' and formatLang(abs(final_result()['balance'])) or 0.0 ]]</para> </td> </tr> </blockTable> @@ -279,7 +279,7 @@ <para style="terp_default_Bold_9">Total:([[ get_currency(data['form']) ]])</para> </td> <td> - <para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_cr())) ]]</u></para> + <para style="terp_default_Right_9_Bold"><u>[[ sum_cr() and formatLang(abs(sum_cr())) or 0.0 ]]</u></para> </td> </tr> </blockTable> diff --git a/addons/account_report_india/report/report_pl_account_horizontal.rml b/addons/account_report_india/report/report_pl_account_horizontal.rml index 0c2be18da0b..b68d375d3be 100644 --- a/addons/account_report_india/report/report_pl_account_horizontal.rml +++ b/addons/account_report_india/report/report_pl_account_horizontal.rml @@ -214,7 +214,7 @@ </para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ formatLang(abs(a['balance'])) ]]</para> + <para style="terp_default_Right_9_Bold">[[ a['balance'] and formatLang(abs(a['balance'])) or 0.0 ]]</para> </td> <td> <para style="terp_default_9"> @@ -227,7 +227,7 @@ </para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ formatLang(abs(a['balance1'])) ]]</para> + <para style="terp_default_Right_9_Bold">[[ a['balance1'] and formatLang(abs(a['balance1'])) or 0.0 ]]</para> </td> </tr> </blockTable> @@ -240,7 +240,7 @@ <para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Profit C.F.B.L.' and final_result()['type'] or '' ]]</para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ final_result()['type'] == 'Net Profit C.F.B.L.' and formatLang(abs(final_result()['balance'])) or '' ]]</para> + <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Profit C.F.B.L.' and formatLang(abs(final_result()['balance'])) or 0.0 ]]</para> </td> <td> <para style="terp_default_Bold_9"></para> @@ -249,7 +249,7 @@ <para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Loss C.F.B.L.' and final_result()['type'] or '' ]]</para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ final_result()['type'] == 'Net Loss C.F.B.L.' and formatLang(abs(final_result()['balance'])) or '' ]]</para> + <para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Loss C.F.B.L.' and formatLang(abs(final_result()['balance'])) or 0.0 ]]</para> </td> </tr> </blockTable> @@ -260,13 +260,13 @@ <para style="terp_default_Bold_9">Total:([[ get_currency(data['form']) ]])</para> </td> <td> - <para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_dr())) ]]</u></para> + <para style="terp_default_Right_9_Bold"><u>[[ sum_dr() and formatLang(abs(sum_dr())) or 0.0 ]]</u></para> </td> <td> <para style="terp_default_Bold_9">Total:([[ get_currency(data['form']) ]])</para> </td> <td> - <para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_cr())) ]]</u></para> + <para style="terp_default_Right_9_Bold"><u>[[ sum_cr() and formatLang(abs(sum_cr())) or 0.0 ]]</u></para> </td> </tr> </blockTable> diff --git a/addons/account_tax_include/__init__.py b/addons/account_tax_include/__init__.py deleted file mode 100644 index f96eb08f2fe..00000000000 --- a/addons/account_tax_include/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -############################################################################## - -import account_tax_include - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/account_tax_include/__openerp__.py b/addons/account_tax_include/__openerp__.py deleted file mode 100644 index 5bb1a2e2399..00000000000 --- a/addons/account_tax_include/__openerp__.py +++ /dev/null @@ -1,42 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -############################################################################## - - -{ - 'name': 'Invoices and prices with taxes included', - 'version': '1.0', - 'category': 'Generic Modules/Accounting', - 'description': """Allow the user to work tax included prices. -Especially useful for b2c businesses. - -This module implement the modification on the invoice form. -""", - 'author': 'Tiny', - 'website': 'http://www.openerp.com', - 'depends': ['account'], - 'init_xml': [], - 'update_xml': ['account_tax_include_view.xml'], - 'demo_xml': [], - 'installable': True, - 'active': False, - 'certificate': '0070514190381', -} -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account_tax_include/account_tax_include.py b/addons/account_tax_include/account_tax_include.py deleted file mode 100644 index d84a21afff7..00000000000 --- a/addons/account_tax_include/account_tax_include.py +++ /dev/null @@ -1,230 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -############################################################################## -import time - -from osv import fields, osv -import decimal_precision as dp - -class account_invoice(osv.osv): - _inherit = "account.invoice" - _columns = { - 'price_type': fields.selection([('tax_included','Tax included'), - ('tax_excluded','Tax excluded')], - 'Price method', required=True, readonly=True, - states={'draft':[('readonly',False)]}), - } - _defaults = { - 'price_type': 'tax_excluded', - } - - def refund(self, cr, uid, ids, date=None, period_id=None, description=None): - map_old_new = {} - refund_ids = [] - for old_inv_id in ids: - new_id = super(account_invoice,self).refund(cr, uid, ids, date=date, period_id=period_id, description=description) - refund_ids += new_id - map_old_new[old_inv_id] = new_id[0] - - for old_inv_id in map_old_new.keys(): - old_inv_record = self.read(cr, uid, [old_inv_id], ['price_type'])[0]['price_type'] - self.write(cr, uid, [map_old_new[old_inv_id]], {'price_type' : old_inv_record}) - return refund_ids - -account_invoice() - -class account_invoice_line(osv.osv): - _inherit = "account.invoice.line" - - def _amount_line2(self, cr, uid, ids, name, args, context=None): - """ - Return the subtotal excluding taxes with respect to price_type. - """ - res = {} - tax_obj = self.pool.get('account.tax') - cur_obj = self.pool.get('res.currency') - dec_obj = self.pool.get('decimal.precision') - for line in self.browse(cr, uid, ids): - cur = line.invoice_id and line.invoice_id.currency_id or False - res_init = super(account_invoice_line, self)._amount_line(cr, uid, [line.id], name, args, context) - res[line.id] = { - 'price_subtotal': 0.0, - 'price_subtotal_incl': 0.0, - 'data': [] - } - if not line.quantity: - continue - if line.invoice_id: - product_taxes = [] - if line.product_id: - if line.invoice_id.type in ('out_invoice', 'out_refund'): - product_taxes = filter(lambda x: x.price_include, line.product_id.taxes_id) - else: - product_taxes = filter(lambda x: x.price_include, line.product_id.supplier_taxes_id) - - if ((set(product_taxes) == set(line.invoice_line_tax_id)) or not product_taxes) and (line.invoice_id.price_type == 'tax_included'): - res[line.id]['price_subtotal_incl'] = cur and cur_obj.round(cr, uid, cur, res_init[line.id]) or res_init[line.id] - else: - res[line.id]['price_subtotal'] = cur and cur_obj.round(cr, uid, cur, res_init[line.id]) or res_init[line.id] - for tax in tax_obj.compute_inv(cr, uid, product_taxes, res_init[line.id]/line.quantity, line.quantity): - res[line.id]['price_subtotal'] = res[line.id]['price_subtotal'] - round(tax['amount'], dec_obj.precision_get(cr, uid, 'Account')) - else: - res[line.id]['price_subtotal'] = cur and cur_obj.round(cr, uid, cur, res_init[line.id]) or res_init[line.id] - - if res[line.id]['price_subtotal']: - res[line.id]['price_subtotal_incl'] = res[line.id]['price_subtotal'] - for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, res[line.id]['price_subtotal']/line.quantity, line.quantity): - res[line.id]['price_subtotal_incl'] = res[line.id]['price_subtotal_incl'] + tax['amount'] - res[line.id]['data'].append(tax) - else: - res[line.id]['price_subtotal'] = res[line.id]['price_subtotal_incl'] - for tax in tax_obj.compute_inv(cr, uid, line.invoice_line_tax_id, res[line.id]['price_subtotal_incl']/line.quantity, line.quantity): - res[line.id]['price_subtotal'] = res[line.id]['price_subtotal'] - tax['amount'] - res[line.id]['data'].append( tax) - - res[line.id]['price_subtotal']= round(res[line.id]['price_subtotal'], dec_obj.precision_get(cr, uid, 'Account')) - res[line.id]['price_subtotal_incl']= round(res[line.id]['price_subtotal_incl'], dec_obj.precision_get(cr, uid, 'Account')) - return res - - def _price_unit_default(self, cr, uid, context=None): - if context is None: - context = {} - if 'check_total' in context: - t = context['check_total'] - if context.get('price_type', False) == 'tax_included': - for l in context.get('invoice_line', {}): - if len(l) >= 3 and l[2]: - p = l[2].get('price_unit', 0) * (1-l[2].get('discount', 0)/100.0) - t = t - (p * l[2].get('quantity')) - return t - return super(account_invoice_line, self)._price_unit_default(cr, uid, context) - return 0 - - def _get_invoice(self, cr, uid, ids, context): - result = {} - for inv in self.pool.get('account.invoice').browse(cr, uid, ids, context=context): - for line in inv.invoice_line: - result[line.id] = True - return result.keys() - - _columns = { - 'price_subtotal': fields.function(_amount_line2, method=True, string='Subtotal w/o tax', multi='amount', - store={'account.invoice':(_get_invoice,['price_type'],10), 'account.invoice.line': (lambda self,cr,uid,ids,c={}: ids, None,10)}), - 'price_subtotal_incl': fields.function(_amount_line2, method=True, string='Subtotal', multi='amount', - store={'account.invoice':(_get_invoice,['price_type'],10), 'account.invoice.line': (lambda self,cr,uid,ids,c={}: ids, None,10)}), - } - - _defaults = { - 'price_unit': _price_unit_default, - } - - def move_line_get_item(self, cr, uid, line, context=None): - return { - 'type':'src', - 'name':line.name, - 'price_unit':(line.quantity) and (line.price_subtotal / line.quantity) or line.price_subtotal, - 'quantity':line.quantity, - 'price':line.price_subtotal, - 'account_id':line.account_id.id, - 'product_id': line.product_id.id, - 'uos_id':line.uos_id.id, - 'account_analytic_id':line.account_analytic_id.id, - } - - def product_id_change_unit_price_inv(self, cr, uid, tax_id, price_unit, qty, address_invoice_id, product, partner_id, context=None): - if context is None: - context = {} - # if the tax is already included, just return the value without calculations - if context.get('price_type', False) == 'tax_included': - return {'price_unit': price_unit,'invoice_line_tax_id': tax_id} - else: - return super(account_invoice_line, self).product_id_change_unit_price_inv(cr, uid, tax_id, price_unit, qty, address_invoice_id, product, partner_id, context=context) - - def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None): - # note: will call product_id_change_unit_price_inv with context... - - # Temporary trap, for bad context that came from koo: - # if isinstance(context, str): - # print "str context:", context - - ctx = (context and context.copy()) or {} - ctx.update({'price_type': ctx.get('price_type','tax_excluded')}) - return super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id=currency_id, context=ctx) - -account_invoice_line() - -class account_invoice_tax(osv.osv): - _inherit = "account.invoice.tax" - - def compute(self, cr, uid, invoice_id, context=None): - tax_grouped = {} - tax_obj = self.pool.get('account.tax') - cur_obj = self.pool.get('res.currency') - line_obj = self.pool.get('account.invoice.line') - - inv = self.pool.get('account.invoice').browse(cr, uid, invoice_id) - line_ids = map(lambda x: x.id, inv.invoice_line) - - cur = inv.currency_id - company_currency = inv.company_id.currency_id.id - - for line in inv.invoice_line: - data = line_obj._amount_line2(cr, uid, [line.id], [], [], context)[line.id] - for tax in data['data']: - val={} - val['invoice_id'] = inv.id - val['name'] = tax['name'] - val['amount'] = tax['amount'] - val['manual'] = False - val['sequence'] = tax['sequence'] - val['base'] = tax['price_unit'] * line['quantity'] - - if inv.type in ('out_invoice','in_invoice'): - val['base_code_id'] = tax['base_code_id'] - val['tax_code_id'] = tax['tax_code_id'] - val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) - val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) - val['account_id'] = tax['account_collected_id'] or line.account_id.id - else: - val['base_code_id'] = tax['ref_base_code_id'] - val['tax_code_id'] = tax['ref_tax_code_id'] - val['base_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['base'] * tax['ref_base_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) - val['tax_amount'] = cur_obj.compute(cr, uid, inv.currency_id.id, company_currency, val['amount'] * tax['ref_tax_sign'], context={'date': inv.date_invoice or time.strftime('%Y-%m-%d')}, round=False) - val['account_id'] = tax['account_paid_id'] or line.account_id.id - - key = (val['tax_code_id'], val['base_code_id'], val['account_id']) - if not key in tax_grouped: - tax_grouped[key] = val - else: - tax_grouped[key]['amount'] += val['amount'] - tax_grouped[key]['base'] += val['base'] - tax_grouped[key]['base_amount'] += val['base_amount'] - tax_grouped[key]['tax_amount'] += val['tax_amount'] - - for t in tax_grouped.values(): - t['amount'] = cur_obj.round(cr, uid, cur, t['amount']) - t['base_amount'] = cur_obj.round(cr, uid, cur, t['base_amount']) - t['tax_amount'] = cur_obj.round(cr, uid, cur, t['tax_amount']) - - return tax_grouped - -account_invoice_tax() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file diff --git a/addons/account_tax_include/account_tax_include_view.xml b/addons/account_tax_include/account_tax_include_view.xml deleted file mode 100644 index 32aea6802d1..00000000000 --- a/addons/account_tax_include/account_tax_include_view.xml +++ /dev/null @@ -1,79 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<openerp> - <data> - - <record id="account_tax_view_price" model="ir.ui.view"> - <field name="name">account.tax.exlcuded.view.form</field> - <field name="type">form</field> - <field name="model">account.tax</field> - <field name="inherit_id" ref="account.view_tax_form"/> - <field name="arch" type="xml"> - <field name="python_compute" position="after"> - <separator colspan="4" string="Compute Code for Taxes included prices"/> - <field colspan="4" name="python_compute_inv" nolabel="1"/> - </field> - </field> - </record> - - <record id="account_invoice_view_price" model="ir.ui.view"> - <field name="name">account.invoice.vat.exlcuded.view.form</field> - <field name="type">form</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_form"/> - <field name="arch" type="xml"> - <field name="payment_term" position="after"> - <field name="price_type"/> - </field> - </field> - </record> - - <record id="invoice_supplier_form_tax_include" model="ir.ui.view"> - <field name="name">account.invoice.supplier.tax_include</field> - <field name="type">form</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_supplier_form"/> - <field name="arch" type="xml"> - <field colspan="4" default_get="{'check_total': check_total, 'invoice_line': invoice_line, 'address_invoice_id': address_invoice_id, 'partner_id': partner_id, 'price_type': 'price_type' in dir() and price_type or False}" name="invoice_line" nolabel="1" position="before"> - <field name="price_type"/> - </field> - </field> - </record> - - <record id="invoice_supplier_form_tax_include2" model="ir.ui.view"> - <field name="name">account.invoice.supplier.tax_include2</field> - <field name="type">form</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_supplier_form"/> - <field name="arch" type="xml"> - <field name="price_subtotal" position="after"> - <field name="price_subtotal_incl"/> - </field> - </field> - </record> - - <record id="invoice_supplier_form_tax_include3" model="ir.ui.view"> - <field name="name">account.invoice.supplier.tax_include3</field> - <field name="type">form</field> - <field name="model">account.invoice</field> - <field name="inherit_id" ref="account.invoice_supplier_form"/> - <field name="arch" type="xml"> - <field name="product_id" position="replace"> - <field name="product_id" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.address_invoice_id,{'price_type':parent.price_type})"/> - </field> - </field> - </record> - - <record id="view_invoice_line_tree" model="ir.ui.view"> - <field name="name">account.invoice.line.tree</field> - <field name="model">account.invoice.line</field> - <field name="type">tree</field> - <field name="inherit_id" ref="account.view_invoice_line_tree"/> - <field name="arch" type="xml"> - <field name="price_subtotal" position="after"> - <field name="price_subtotal_incl"/> - </field> - </field> - </record> - - </data> -</openerp> diff --git a/addons/account_tax_include/i18n/account_tax_include.pot b/addons/account_tax_include/i18n/account_tax_include.pot deleted file mode 100644 index e19a7fd9712..00000000000 --- a/addons/account_tax_include/i18n/account_tax_include.pot +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01:51+0000\n" -"PO-Revision-Date: 2009-08-28 16:01:51+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" - diff --git a/addons/account_tax_include/i18n/ar.po b/addons/account_tax_include/i18n/ar.po deleted file mode 100644 index 2ea3d31ed0a..00000000000 --- a/addons/account_tax_include/i18n/ar.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-02-03 06:24+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_tax_include/i18n/bg.po b/addons/account_tax_include/i18n/bg.po deleted file mode 100644 index fff9c26bf05..00000000000 --- a/addons/account_tax_include/i18n/bg.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 12:06+0000\n" -"Last-Translator: lem0na <nickyk@gmx.net>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Невалиден XML за преглед на архитектурата" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Начин на изчисляване" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "С включен данък" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Без данък" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_tax_include/i18n/bs.po b/addons/account_tax_include/i18n/bs.po deleted file mode 100644 index ab16e300b28..00000000000 --- a/addons/account_tax_include/i18n/bs.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-02-10 12:26+0000\n" -"Last-Translator: adnan <adnankraljic@yahoo.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Neodgovarajući XML za arhitekturu prikaza!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Cjenovna procedura" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Računi i cijene sa uključenim porezom" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Porez uključen" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Porez nije uključen" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Izračunaj cijene sa porezima" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Sub-ukupno" diff --git a/addons/account_tax_include/i18n/ca.po b/addons/account_tax_include/i18n/ca.po deleted file mode 100644 index 249686fa488..00000000000 --- a/addons/account_tax_include/i18n/ca.po +++ /dev/null @@ -1,53 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-29 06:30+0000\n" -"Last-Translator: Jordi Esteve - http://www.zikzakmedia.com " -"<jesteve@zikzakmedia.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "XML invàlid per a la definició de la vista!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Mètode preu" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Factures i preus amb impostos inclosos" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Impostos inclosos" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Impostos exclosos" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Codi pel càlcul dels preus amb impostos inclosos" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/cs.po b/addons/account_tax_include/i18n/cs.po deleted file mode 100644 index 2cc4bc1bcc0..00000000000 --- a/addons/account_tax_include/i18n/cs.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-04-26 09:10+0000\n" -"Last-Translator: Martin Volf <Unknown>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-28 03:44+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Neplatný XML pro zobrazení architektury" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Metoda určování cen" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Faktury a ceny včetně daní" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Daně zahrnuty" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Daně vyloučeny" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Výpočetní kód pro ceny včetně daně" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Mezisoučet" diff --git a/addons/account_tax_include/i18n/de.po b/addons/account_tax_include/i18n/de.po deleted file mode 100644 index fa5d2ce1610..00000000000 --- a/addons/account_tax_include/i18n/de.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-04-09 13:20+0000\n" -"Last-Translator: Ferdinand @ ChriCar <Unknown>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Fehlerhafter xml Code für diese Ansicht!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Preismethode" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Rechnungen und Preise mit inkludierten Steuern" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Steuer inklusive" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Steuern exklusive" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Berechnungsgrundlage (inkl. Steuer)" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Zwischensumme" diff --git a/addons/account_tax_include/i18n/el.po b/addons/account_tax_include/i18n/el.po deleted file mode 100644 index 6d3910fb43b..00000000000 --- a/addons/account_tax_include/i18n/el.po +++ /dev/null @@ -1,53 +0,0 @@ -# Greek translation for openobject-addons -# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 15:27+0000\n" -"Last-Translator: Makis Nicolaou <mark.nicolaou@gmail.com>\n" -"Language-Team: Greek <el@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Άκυρο XML για την αρχιτεκτονική όψης!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Μέθοδος Τιμής" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Τιμολόγια και τιμές με ενσωμάτωση φόρων" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Συμπερίληψη φόρου" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Εξαιρούνται φόροι" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Κωδικός Υπολογισμού για Φόρους που εμπεριέχονται στις τιμές" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Υποσύνολο" diff --git a/addons/account_tax_include/i18n/en_AU.po b/addons/account_tax_include/i18n/en_AU.po deleted file mode 100644 index 892197cf816..00000000000 --- a/addons/account_tax_include/i18n/en_AU.po +++ /dev/null @@ -1,53 +0,0 @@ -# English (Australia) translation for openobject-addons -# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-05-09 21:19+0000\n" -"Last-Translator: MoLE <Unknown>\n" -"Language-Team: English (Australia) <en_AU@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-10 04:17+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Invalid XML for View Architecture!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Price method" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Invoices and prices with taxes included" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Tax included" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Tax excluded" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Compute Code for Taxes included prices" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/en_GB.po b/addons/account_tax_include/i18n/en_GB.po deleted file mode 100644 index 0341993acca..00000000000 --- a/addons/account_tax_include/i18n/en_GB.po +++ /dev/null @@ -1,53 +0,0 @@ -# English (United Kingdom) translation for openobject-addons -# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-05-09 21:20+0000\n" -"Last-Translator: MoLE <Unknown>\n" -"Language-Team: English (United Kingdom) <en_GB@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-10 04:17+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Invalid XML for View Architecture!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Price method" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Invoices and prices with taxes included" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Tax included" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Tax excluded" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Compute Code for Taxes included prices" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/es.po b/addons/account_tax_include/i18n/es.po deleted file mode 100644 index 4fa9a9219c7..00000000000 --- a/addons/account_tax_include/i18n/es.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-24 20:17+0000\n" -"Last-Translator: Borja López Soilán (Pexego) <borjals@pexego.es>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "¡XML inválido para la definición de la vista!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Método precio" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Facturas y precios con impuestos incluidos" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Impuestos incluidos" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Impuestos excluidos" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Código para el cálculo de precios con impuestos incluidos" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/es_AR.po b/addons/account_tax_include/i18n/es_AR.po deleted file mode 100644 index 4d7230f383b..00000000000 --- a/addons/account_tax_include/i18n/es_AR.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-14 18:28+0000\n" -"Last-Translator: Silvana Herrera <sherrera@thymbra.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "XML inválido para la definición de la vista!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Método de precio" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Facturas y precios con impuestos incluidos" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Impuestos incluidos" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Impuestos no incluidos" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Código del cálculo para precios con impuestos incluídos" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/et.po b/addons/account_tax_include/i18n/et.po deleted file mode 100644 index 6bd6d5cdaa7..00000000000 --- a/addons/account_tax_include/i18n/et.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-11-09 16:28+0000\n" -"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Vigane XML vaate arhitektuurile!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Hinna meetod" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Makse sisaldavad arved ja hinnad" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Maksuga" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Maksuta" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Arvuta kood maksuga hindadele" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Vahesumma" diff --git a/addons/account_tax_include/i18n/fi.po b/addons/account_tax_include/i18n/fi.po deleted file mode 100644 index 6e3c999484d..00000000000 --- a/addons/account_tax_include/i18n/fi.po +++ /dev/null @@ -1,53 +0,0 @@ -# Finnish translation for openobject-addons -# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-17 10:06+0000\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: Finnish <fi@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Virheellinen XML näkymä-arkkitehtuurille!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Hinnan tyyppi" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Laskut ja hinnat veroilla" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Vero sisältyy" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Ilman veroa" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Laske koodi hinnoille joissa on vero mukana" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Välisumma" diff --git a/addons/account_tax_include/i18n/fr.po b/addons/account_tax_include/i18n/fr.po deleted file mode 100644 index c26f075fd75..00000000000 --- a/addons/account_tax_include/i18n/fr.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-11-17 09:23+0000\n" -"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "XML non valide pour l'architecture de la vue" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Méthode de prix" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Factures et prix avec taxes comprises" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Taxe comprise" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Hors-taxe" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Code de calcul pour les prix taxes comprises" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Sous-total" diff --git a/addons/account_tax_include/i18n/gl.po b/addons/account_tax_include/i18n/gl.po deleted file mode 100644 index e677bb72d35..00000000000 --- a/addons/account_tax_include/i18n/gl.po +++ /dev/null @@ -1,54 +0,0 @@ -# translation of account-tax-include-es.po to Galego -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -# Frco. Javier Rial Rodríguez <fjrial@cesga.es>, 2009. -msgid "" -msgstr "" -"Project-Id-Version: account-tax-include-es\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 12:37+0000\n" -"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n" -"Language-Team: Galego <g11n@mancomun.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "¡XML non válido para a definición da vista!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Método prezo" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Facturas e prezos con impostos incluídos" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Imposto incluído" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Imposto excluído" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Código para o cálculo dos impostos en prezos incluídos" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/hr.po b/addons/account_tax_include/i18n/hr.po deleted file mode 100644 index ac67721e45b..00000000000 --- a/addons/account_tax_include/i18n/hr.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-11-17 09:23+0000\n" -"Last-Translator: Dragan Jovanovic <dragan.jovanovic@strojotex.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Nevažeći XML za Arhitekturu Prikaza!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Cjenovna metoda" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Računi i cijene sa uključenim porezom" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Porez uključen" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Nije uključen porez" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Kod za izračun cijena sa uključenim porezima" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Podzbroj" diff --git a/addons/account_tax_include/i18n/hu.po b/addons/account_tax_include/i18n/hu.po deleted file mode 100644 index 2ea3d31ed0a..00000000000 --- a/addons/account_tax_include/i18n/hu.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-02-03 06:24+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_tax_include/i18n/id.po b/addons/account_tax_include/i18n/id.po deleted file mode 100644 index bcb9daf3353..00000000000 --- a/addons/account_tax_include/i18n/id.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-11-09 13:44+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_tax_include/i18n/it.po b/addons/account_tax_include/i18n/it.po deleted file mode 100644 index 0e304d60033..00000000000 --- a/addons/account_tax_include/i18n/it.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-02-03 08:32+0000\n" -"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "XML non valido per Visualizzazione Architettura!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Tasse incluse" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Tasse escluse" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_tax_include/i18n/ko.po b/addons/account_tax_include/i18n/ko.po deleted file mode 100644 index 118579be264..00000000000 --- a/addons/account_tax_include/i18n/ko.po +++ /dev/null @@ -1,53 +0,0 @@ -# Korean translation for openobject-addons -# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 16:43+0000\n" -"Last-Translator: ekodaq <ceo@ekosdaq.com>\n" -"Language-Team: Korean <ko@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "뷰 아키텍처의 XML이 유효하지 않습니다." - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "가격 방식" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "세금이 포함된 인보이스와 가격" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "세금 포함" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "세금 제외" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "세금 포함 가격을 위한 컴퓨터 코드" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "서브토털" diff --git a/addons/account_tax_include/i18n/lt.po b/addons/account_tax_include/i18n/lt.po deleted file mode 100644 index 110d0fdd041..00000000000 --- a/addons/account_tax_include/i18n/lt.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 15:54+0000\n" -"Last-Translator: Donatas Stonys TeraxIT <donatelonow@hotmail.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_tax_include/i18n/nl.po b/addons/account_tax_include/i18n/nl.po deleted file mode 100644 index a5c550807f5..00000000000 --- a/addons/account_tax_include/i18n/nl.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-12-14 21:11+0000\n" -"Last-Translator: Pieter J. Kersten (EduSense BV) <Unknown>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Ongeldige XML voor weergave!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Prijsmethode" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Facturen en prijzen inclusief belastingen" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Inclusief belastingen" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Exclusief belastingen" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Bereken code voor prijzen inclusief belastingen" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Subtotaal" diff --git a/addons/account_tax_include/i18n/nl_BE.po b/addons/account_tax_include/i18n/nl_BE.po deleted file mode 100644 index 1854bbfc9d4..00000000000 --- a/addons/account_tax_include/i18n/nl_BE.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-04-24 15:12+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_tax_include/i18n/oc.po b/addons/account_tax_include/i18n/oc.po deleted file mode 100644 index 5d0f82c83d6..00000000000 --- a/addons/account_tax_include/i18n/oc.po +++ /dev/null @@ -1,53 +0,0 @@ -# Occitan (post 1500) translation for openobject-addons -# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-04-29 14:21+0000\n" -"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n" -"Language-Team: Occitan (post 1500) <oc@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-05-05 03:47+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "XML invalid per l'arquitectura de la vista" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Metòde de prètz" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Facturas e prèses amb taxas inclusas" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Taxa inclusa" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Fòra taxa" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Còde de calcul pels prèses amb taxas compresas" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Sostotal" diff --git a/addons/account_tax_include/i18n/pl.po b/addons/account_tax_include/i18n/pl.po deleted file mode 100644 index aa4daff1f43..00000000000 --- a/addons/account_tax_include/i18n/pl.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-11-21 15:43+0000\n" -"Last-Translator: Andrzej MoST (Marcin Ostajewski) <Unknown>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "XML niewłaściwy dla tej architektury wyświetlania!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Metoda wyceny" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Faktury i ceny zawierające podatki." - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Zawiera podatek" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Nie zawiera podatku" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Wylicz kod dla cen z podatkiem" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Suma częściowa" diff --git a/addons/account_tax_include/i18n/pt.po b/addons/account_tax_include/i18n/pt.po deleted file mode 100644 index 23c89d66568..00000000000 --- a/addons/account_tax_include/i18n/pt.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-11-28 23:29+0000\n" -"Last-Translator: Paulino <Unknown>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "XML inválido para a arquitectura da vista" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Método do preço" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Facturas e preços com imposto incluído" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Imposto incluído" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Imposto excluído" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Código de cálculo para preços com imposto incluído" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/pt_BR.po b/addons/account_tax_include/i18n/pt_BR.po deleted file mode 100644 index 165ddba21ef..00000000000 --- a/addons/account_tax_include/i18n/pt_BR.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 12:28+0000\n" -"Last-Translator: Pedro_Maschio <pedro.bicudo@tgtconsult.com.br>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Invalido XML para Arquitetura da View" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_tax_include/i18n/ro.po b/addons/account_tax_include/i18n/ro.po deleted file mode 100644 index 53f0beb8e17..00000000000 --- a/addons/account_tax_include/i18n/ro.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-11-28 16:40+0000\n" -"Last-Translator: geopop65 <Unknown>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "XML invalid pentru arhitectura machetei de afișare !" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Metoda de pret" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Facturi şi preţuri cu taxele incluse" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Taxe incluse" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Fără taxe" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Calcul cod pentru preţuri cu taxe incluse" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Subtotal" diff --git a/addons/account_tax_include/i18n/ru.po b/addons/account_tax_include/i18n/ru.po deleted file mode 100644 index e61c38be4a1..00000000000 --- a/addons/account_tax_include/i18n/ru.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 13:39+0000\n" -"Last-Translator: Sergei Kostigoff <sergei.kostigoff@gmail.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Неправильный XML для просмотра архитектуры!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Метод расчета цены" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Счета и цены с налогами" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "С налогами" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "До налогов" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Промежуточный итог" diff --git a/addons/account_tax_include/i18n/sk.po b/addons/account_tax_include/i18n/sk.po deleted file mode 100644 index 8518e5bcb1f..00000000000 --- a/addons/account_tax_include/i18n/sk.po +++ /dev/null @@ -1,53 +0,0 @@ -# Slovak translation for openobject-addons -# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. -# -msgid "" -msgstr "" -"Project-Id-Version: openobject-addons\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-06 14:22+0000\n" -"Last-Translator: Peter Kohaut <peter.kohaut@gmail.com>\n" -"Language-Team: Slovak <sk@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Neplatné XML pre zobrazenie architektúry!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Faktúry a ceny zahrnuté s DPH" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Medzisúčet" diff --git a/addons/account_tax_include/i18n/sl.po b/addons/account_tax_include/i18n/sl.po deleted file mode 100644 index defa396c48f..00000000000 --- a/addons/account_tax_include/i18n/sl.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-11-17 09:23+0000\n" -"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Neveljaven XML za arhitekturo pogleda." - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Metoda cene" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Računi in cene z vključenimi davki" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "Davek vključen" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "Davek ni vključen" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "Koda izračuna za davke v cenah" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Delna vsota" diff --git a/addons/account_tax_include/i18n/sq.po b/addons/account_tax_include/i18n/sq.po deleted file mode 100644 index a2b9ac5d219..00000000000 --- a/addons/account_tax_include/i18n/sq.po +++ /dev/null @@ -1,104 +0,0 @@ -# Translation of OpenERP Server. -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 15:23:46+0000\n" -"PO-Revision-Date: 2009-08-28 15:23:46+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" - -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 15:23:46+0000\n" -"PO-Revision-Date: 2009-08-28 15:23:46+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" - diff --git a/addons/account_tax_include/i18n/sv.po b/addons/account_tax_include/i18n/sv.po deleted file mode 100644 index 8991458538f..00000000000 --- a/addons/account_tax_include/i18n/sv.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-02-14 15:44+0000\n" -"Last-Translator: Treecko <Unknown>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Felaktig XML för Vyarkitektur!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_tax_include/i18n/tlh.po b/addons/account_tax_include/i18n/tlh.po deleted file mode 100644 index 901fb52fa52..00000000000 --- a/addons/account_tax_include/i18n/tlh.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0_rc3\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-02-03 06:24+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_tax_include/i18n/tr.po b/addons/account_tax_include/i18n/tr.po deleted file mode 100644 index fae1694aa91..00000000000 --- a/addons/account_tax_include/i18n/tr.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-02-14 21:31+0000\n" -"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Görüntüleme mimarisi için Geçersiz XML" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "Fiyat Yöntemi" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "Vergiler dahil fiyat ve faturalar" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "KDV Dahil" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "KDV Hariç" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "Alt Toplam" diff --git a/addons/account_tax_include/i18n/uk.po b/addons/account_tax_include/i18n/uk.po deleted file mode 100644 index 20833c98611..00000000000 --- a/addons/account_tax_include/i18n/uk.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-09-08 15:16+0000\n" -"Last-Translator: Eugene Babiy <eugene.babiy@gmail.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "Неправильний XML для Архітектури Вигляду!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_tax_include/i18n/vi.po b/addons/account_tax_include/i18n/vi.po deleted file mode 100644 index 164b9c65f98..00000000000 --- a/addons/account_tax_include/i18n/vi.po +++ /dev/null @@ -1,104 +0,0 @@ -# Translation of OpenERP Server. -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:00:38+0000\n" -"PO-Revision-Date: 2009-08-28 16:00:38+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" - -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:00:38+0000\n" -"PO-Revision-Date: 2009-08-28 16:00:38+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" - diff --git a/addons/account_tax_include/i18n/zh_CN.po b/addons/account_tax_include/i18n/zh_CN.po deleted file mode 100644 index b7cad52c049..00000000000 --- a/addons/account_tax_include/i18n/zh_CN.po +++ /dev/null @@ -1,63 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.6\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-20 07:29+0000\n" -"Last-Translator: Black Jack <onetimespeed@hotmail.com>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "无效的视图结构XML文件!" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "价格规则" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "发票和含税价" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "含税" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "不含税" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "含税价格计算代码" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "小计" - -#~ msgid "" -#~ "Allow the user to work tax included prices.\n" -#~ "Especially useful for b2c businesses.\n" -#~ " \n" -#~ "This module implement the modification on the invoice form.\n" -#~ msgstr "" -#~ "允许用户使用含税价格\n" -#~ "特别适用于B2C商务\n" -#~ "\n" -#~ "这模块使发票的格式生效\n" diff --git a/addons/account_tax_include/i18n/zh_TW.po b/addons/account_tax_include/i18n/zh_TW.po deleted file mode 100644 index a2ba31339c4..00000000000 --- a/addons/account_tax_include/i18n/zh_TW.po +++ /dev/null @@ -1,52 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_tax_include -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 5.0.4\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" -"POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-01-30 12:43+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" -"X-Generator: Launchpad (build Unknown)\n" - -#. module: account_tax_include -#: constraint:ir.ui.view:0 -msgid "Invalid XML for View Architecture!" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice,price_type:0 -msgid "Price method" -msgstr "" - -#. module: account_tax_include -#: model:ir.module.module,shortdesc:account_tax_include.module_meta_information -msgid "Invoices and prices with taxes included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax included" -msgstr "" - -#. module: account_tax_include -#: selection:account.invoice,price_type:0 -msgid "Tax excluded" -msgstr "" - -#. module: account_tax_include -#: view:account.tax:0 -msgid "Compute Code for Taxes included prices" -msgstr "" - -#. module: account_tax_include -#: field:account.invoice.line,price_subtotal_incl:0 -msgid "Subtotal" -msgstr "" diff --git a/addons/account_voucher/voucher_view.xml b/addons/account_voucher/voucher_view.xml index 6eb6988480d..0095d950f76 100644 --- a/addons/account_voucher/voucher_view.xml +++ b/addons/account_voucher/voucher_view.xml @@ -108,18 +108,29 @@ </field> </record> - <!-- Receipt Vouchers --> + <!-- Receipt Vouchers --> <record model="ir.actions.act_window" id="action_receipt_vou_voucher_list"> - <field name="name">Voucher Entries</field> + <field name="name">Customer Vouchers</field> <field name="res_model">account.voucher</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> <field name="view_id" eval="view_voucher_tree"/> -<!-- <field name="domain">[('type','like','rec_voucher')]</field>--> -<!-- <field name="context">{'type':'rec_voucher'}</field>--> + <field name="domain">[('journal_id.type','=','sale')]</field> </record> <menuitem id="menu_action_receipt_vou_voucher_list" - action="action_receipt_vou_voucher_list" parent="account.menu_finance_entries" sequence="8"/> + action="action_receipt_vou_voucher_list" parent="account.menu_finance_receivables" sequence="8"/> + + <!-- Purchase Vouchers --> + <record model="ir.actions.act_window" id="action_pay_vou_voucher_list"> + <field name="name">Vendor Vouchers</field> + <field name="res_model">account.voucher</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="view_id" eval="view_voucher_tree"/> + <field name="domain">[('journal_id.type','=','purchase')]</field> + </record> + <menuitem id="menu_action_pay_vou_voucher_list" + action="action_pay_vou_voucher_list" parent="account.menu_finance_payables" sequence="8"/> <!-- <record model="ir.actions.act_window" id="action_receipt_cashreceipt_voucher_list">--> <!-- <field name="name">Cash Receipt</field>--> diff --git a/addons/account_voucher_payment/i18n/ca.po b/addons/account_voucher_payment/i18n/ca.po index daf15f0ea67..baf4157d3ab 100644 --- a/addons/account_voucher_payment/i18n/ca.po +++ b/addons/account_voucher_payment/i18n/ca.po @@ -1,20 +1,20 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_voucher_payment +# Catalan translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2009-05-13 20:11+0000\n" -"PO-Revision-Date: 2010-01-26 11:00+0000\n" -"Last-Translator: Jordi Esteve (www.zikzakmedia.com) " -"<jesteve@zikzakmedia.com>\n" -"Language-Team: \n" +"PO-Revision-Date: 2010-06-04 09:33+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Catalan <ca@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-21 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_voucher_payment diff --git a/addons/account_voucher_payment/i18n/es.po b/addons/account_voucher_payment/i18n/es.po index a3df62eaec2..7cdb7cd2526 100644 --- a/addons/account_voucher_payment/i18n/es.po +++ b/addons/account_voucher_payment/i18n/es.po @@ -1,19 +1,20 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_voucher_payment +# Spanish translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. # msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 5.0.0\n" -"Report-Msgid-Bugs-To: support@openerp.com\n" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2009-05-13 20:11+0000\n" -"PO-Revision-Date: 2010-02-19 05:54+0000\n" -"Last-Translator: Luis Alejandro Rangel Sánchez <xlarsx@gmail.com>\n" -"Language-Team: \n" +"PO-Revision-Date: 2010-06-04 09:33+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Spanish <es@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-21 03:47+0000\n" +"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_voucher_payment diff --git a/addons/auction/i18n/pl.po b/addons/auction/i18n/pl.po index c5219bd77b3..326474f19c4 100644 --- a/addons/auction/i18n/pl.po +++ b/addons/auction/i18n/pl.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-02-03 11:09+0000\n" -"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n" +"PO-Revision-Date: 2010-06-04 21:56+0000\n" +"Last-Translator: ErnestŻyciński <Unknown>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:14+0000\n" +"X-Launchpad-Export-Date: 2010-06-06 03:34+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: auction @@ -39,12 +39,12 @@ msgstr "" #: field:report.seller.auction,seller:0 #: field:report.seller.auction2,seller:0 msgid "Seller" -msgstr "" +msgstr "Sprzedawca" #. module: auction #: constraint:ir.actions.act_window:0 msgid "Invalid model name in the action definition." -msgstr "" +msgstr "Nieprawidłowa nazwa modelu w definicji akcji." #. module: auction #: selection:auction.lots.send.aie,date_ask,numerotation:0 @@ -102,7 +102,7 @@ msgstr "" #: field:report.buyer.auction,buyer:0 #: field:report.buyer.auction2,buyer:0 msgid "Buyer" -msgstr "" +msgstr "Kupujący" #. module: auction #: field:report.auction.view,nobjects:0 @@ -140,7 +140,7 @@ msgstr "" #: wizard_field:auction.lots.make_invoice,init,amount:0 #: wizard_field:auction.lots.make_invoice_buyer,init,amount:0 msgid "Invoiced Amount" -msgstr "" +msgstr "Kwota zafakturowana" #. module: auction #: selection:auction.lot.category,aie_categ:0 @@ -165,7 +165,7 @@ msgstr "" #. module: auction #: field:auction.deposit.cost,amount:0 msgid "Amount" -msgstr "" +msgstr "Kwota" #. module: auction #: model:ir.actions.act_window,name:auction.action_deposit_border @@ -191,12 +191,12 @@ msgstr "" #. module: auction #: field:auction.dates,account_analytic_id:0 msgid "Analytic Account" -msgstr "" +msgstr "Konto analityczne" #. module: auction #: selection:auction.lot.category,aie_categ:0 msgid "Unclassifieds" -msgstr "" +msgstr "Niesklasyfikowane" #. module: auction #: model:ir.ui.menu,name:auction.menu_auction_dates_next_by_auction @@ -232,7 +232,7 @@ msgstr "Rodzaj obiektu" #. module: auction #: wizard_field:auction.lots.sms_send,init,text:0 msgid "SMS Message" -msgstr "" +msgstr "Wiadomość SMS" #. module: auction #: selection:auction.lot.category,aie_categ:0 @@ -243,7 +243,7 @@ msgstr "Sztuka nowoczesna" #: view:auction.lots:0 #: view:report.unclassified.objects:0 msgid "Ref" -msgstr "" +msgstr "Odnośnik" #. module: auction #: field:report.auction.view,nseller:0 diff --git a/addons/auction/i18n/zh_CN.po b/addons/auction/i18n/zh_CN.po index 58ebcb44914..534ec4e0e32 100644 --- a/addons/auction/i18n/zh_CN.po +++ b/addons/auction/i18n/zh_CN.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-20 07:33+0000\n" -"Last-Translator: Black Jack <onetimespeed@hotmail.com>\n" +"PO-Revision-Date: 2010-06-04 12:37+0000\n" +"Last-Translator: Eleanor Chen <chenyueg@gmail.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:14+0000\n" +"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: auction @@ -415,7 +415,7 @@ msgstr "库存数量" #: wizard_button:auction.lots.numerotate,search,end:0 #: wizard_button:auction.lots.numerotate_cont,init,end:0 msgid "Exit" -msgstr "出口" +msgstr "退出" #. module: auction #: field:report.buyer.auction2,net_revenue:0 diff --git a/addons/base_report_designer/i18n/hr.po b/addons/base_report_designer/i18n/hr.po index f63fe3a567e..6adc7468085 100644 --- a/addons/base_report_designer/i18n/hr.po +++ b/addons/base_report_designer/i18n/hr.po @@ -7,25 +7,25 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-24 09:27+0000\n" +"PO-Revision-Date: 2010-06-06 23:30+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:13+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" #. module: base_report_designer #: wizard_field:base_report_designer.modify,init,text:0 msgid "Introduction" -msgstr "" +msgstr "Uvod" #. module: base_report_designer #: wizard_view:base_report_designer.modify,send_form:0 msgid "Upload your modified report" -msgstr "" +msgstr "Pošalji promijenjen izvještaj na Server" #. module: base_report_designer #: wizard_button:base_report_designer.modify,get_form_result,send_form:0 diff --git a/addons/base_setup/base_setup_todo.xml b/addons/base_setup/base_setup_todo.xml index 97c9ea0d301..2d6b400d2c5 100644 --- a/addons/base_setup/base_setup_todo.xml +++ b/addons/base_setup/base_setup_todo.xml @@ -28,9 +28,9 @@ <field name="currency" widget="selection"/><field name="street"/> <field name="zip"/> <field name="street2"/> - <field name="city"/> <field name="country_id"/> <field name="state_id"/> + <field name="city"/> <field name="email"/> <field name="phone"/> <field name="website"/> diff --git a/addons/base_setup/gtk_contact_form.py b/addons/base_setup/gtk_contact_form.py index a9fde39ffde..c62951b13b7 100644 --- a/addons/base_setup/gtk_contact_form.py +++ b/addons/base_setup/gtk_contact_form.py @@ -71,7 +71,6 @@ class base_gtkcontactform(osv.osv_memory): 'other':fields.boolean('Other'), 'ebook':fields.boolean('ebook'), 'updates':fields.boolean('Updates'), - 'contact_me':fields.boolean('Contact Me'), } def execute(self, cr, uid, ids, context=None): if context is None: @@ -81,10 +80,10 @@ class base_gtkcontactform(osv.osv_memory): company_data = self.pool.get('base.setup.company').read(cr, uid, company_id, context=context) company_data = company_data and company_data[0] or {} country = '' - + if company_data.get('country_id', False): country = self.pool.get('res.country').read(cr, uid, company_data['country_id'],['name'], context=context)['name'] - + for res in self.read(cr, uid, ids, context=context): email = res.get('email','') result = "\ncompany: "+ tools.ustr(company_data.get('name','')) diff --git a/addons/base_setup/gtk_contact_form.xml b/addons/base_setup/gtk_contact_form.xml index c5578f9bc9a..41711032bf0 100644 --- a/addons/base_setup/gtk_contact_form.xml +++ b/addons/base_setup/gtk_contact_form.xml @@ -24,9 +24,7 @@ <group string="res_config_contents" position="replace"> <group colspan="4" height="450" width="600"> <group colspan="4"> - <field name="contact_me" nolabel="1"/> - <label align="0.0" string="I accept to be contacted by OpenERP." colspan="3"/> - <field name="ebook" nolabel="1"/> + <field name="ebook" nolabel="1"/> <label align="0.0" string="I want to receive the Open ERP ebook (PDF) by email." colspan="3"/> <field name="updates" nolabel="1"/> <label align="0.0" string="Yes, I would like to receive information updates from OpenERP." colspan="3"/> diff --git a/addons/base_setup/i18n/hr.po b/addons/base_setup/i18n/hr.po index 0774c70a0e7..687d398b8f6 100644 --- a/addons/base_setup/i18n/hr.po +++ b/addons/base_setup/i18n/hr.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-26 01:09+0000\n" +"PO-Revision-Date: 2010-06-06 23:31+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:05+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" @@ -22,7 +22,7 @@ msgstr "" #: wizard_field:base_setup.base_setup,init,city:0 #: wizard_field:base_setup.base_setup,update,city:0 msgid "City" -msgstr "" +msgstr "Grad" #. module: base_setup #: wizard_view:base_setup.base_setup,finish:0 diff --git a/addons/base_vat/i18n/id.po b/addons/base_vat/i18n/id.po index e969ecfa9ad..b6255217c5a 100644 --- a/addons/base_vat/i18n/id.po +++ b/addons/base_vat/i18n/id.po @@ -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-03 03:33+0000\n" +"X-Launchpad-Export-Date: 2010-06-04 03:45+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: base_vat diff --git a/addons/crm/crm_installer_view.xml b/addons/crm/crm_installer_view.xml index e0d84c6eed2..9d92f6f1b95 100644 --- a/addons/crm/crm_installer_view.xml +++ b/addons/crm/crm_installer_view.xml @@ -18,6 +18,13 @@ position="attributes"> <attribute name="string">You can enhance OpenERP's basic CRM support with a few additional OpenERP applications</attribute> </xpath> + <xpath expr='//separator[@string="vsep"]' position='attributes'> + <attribute name='rowspan'>13</attribute> + <attribute name='string'></attribute> + </xpath> + <xpath expr="//button[@string='Install Modules']" position="attributes"> + <attribute name="string">Configure</attribute> + </xpath> <group colspan="8"> <group colspan="2" col="2"> <separator string="Synchronization" colspan="4" /> diff --git a/addons/email_template/email_template_account_view.xml b/addons/email_template/email_template_account_view.xml index 5f11fa033f4..573b03e7027 100755 --- a/addons/email_template/email_template_account_view.xml +++ b/addons/email_template/email_template_account_view.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <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"/> - + <record model="ir.ui.view" id="email_template_account_form"> <field name="name">email_template.account.form</field> <field name="model">email_template.account</field> @@ -74,12 +74,12 @@ <field name="type">search</field> <field name="arch" type="xml"> <search string="Accounts"> - <filter icon="terp-crm" string="My Accounts" name="my" domain="[('user','=',uid)]"/> - <filter icon="terp-crm" string="Personal Accounts" domain="[('company','=','no')]"/> - <filter icon="terp-crm" string="Company Accounts" domain="[('company','=','yes')]"/> + <filter icon="terp-personal" string="My Accounts" name="my" domain="[('user','=',uid)]"/> + <filter icon="terp-personal+" string="Personal Accounts" domain="[('company','=','no')]"/> + <filter icon="terp-go-home" string="Company Accounts" domain="[('company','=','yes')]"/> <separator orientation="vertical"/> - <filter icon="terp-crm" string="Draft" name="draft" domain="[('state','=','draft')]"/> - <filter icon="terp-crm" string="Suspended" domain="[('state','=','suspended')]"/> + <filter icon="terp-document-new" string="Draft" name="draft" domain="[('state','=','draft')]"/> + <filter icon="terp-emblem-important" string="Suspended" domain="[('state','=','suspended')]"/> <separator orientation="vertical"/> <field name="name" select="1"/> <field name="user" select="1"/> diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 8bc1712dbf9..a238f637dad 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -127,8 +127,8 @@ <search string="Events"> <group col="10" colspan="4"> <separator orientation="vertical"/> - <filter icon="terp-calendar" string="Draft" domain="[('state','=','draft')]" help="Draft Events"/> - <filter icon="terp-calendar" string="Confirmed" domain="[('state','=','confirm')]" help="Confirmed Events"/> + <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Events"/> + <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','confirm')]" help="Confirmed Events"/> <separator orientation="vertical"/> <field name="name" string="Event" select="1"/> <field name="user_id" select="1"/> @@ -282,8 +282,8 @@ <search string="Event Registration"> <group col="12" colspan="4"> <separator orientation="vertical"/> - <filter icon="terp-calendar" string="Draft" domain="[('state','=','draft')]" help="Draft Registrations"/> - <filter icon="terp-calendar" string="Confirmed" domain="[('state','in',('open','done'))]" help="Confirmed Registrations"/> + <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Registrations"/> + <filter icon="terp-camera_test" string="Confirmed" domain="[('state','in',('open','done'))]" help="Confirmed Registrations"/> <separator orientation="vertical"/> <field name="event_id" select="1"/> <field name="user_id" select="1"/> diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py index 6419cc8a18d..aa403cc0090 100644 --- a/addons/fetchmail/fetchmail.py +++ b/addons/fetchmail/fetchmail.py @@ -1,22 +1,20 @@ -#!/usr/bin/env python -#-*- coding:utf-8 -*- +# -*- coding: utf-8 -*- ############################################################################## # -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved -# mga@tinyerp.com +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). # # This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# GNU Affero General Public License for more details. # -# You should have received a copy of the GNU General Public License +# You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # ############################################################################## diff --git a/addons/hr_evaluation/i18n/hr.po b/addons/hr_evaluation/i18n/hr.po new file mode 100644 index 00000000000..32aeb52c2e9 --- /dev/null +++ b/addons/hr_evaluation/i18n/hr.po @@ -0,0 +1,277 @@ +# Croatian translation for openobject-addons +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2009-11-25 12:18+0000\n" +"PO-Revision-Date: 2010-06-06 23:51+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Croatian <hr@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-06-07 03:43+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. module: hr_evaluation +#: view:hr_evaluation.type:0 +#: field:hr_evaluation.type,info:0 +msgid "Information" +msgstr "" + +#. module: hr_evaluation +#: constraint:ir.model:0 +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Schedule next evaluation" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +#: field:hr_evaluation.evaluation,info_bad:0 +msgid "Bad Points" +msgstr "" + +#. module: hr_evaluation +#: model:ir.actions.act_window,name:hr_evaluation.open_view_employee_evaluation_next_my_list +msgid "My Next Evaluation" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.type,value_ids:0 +msgid "Values" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +#: field:hr_evaluation.evaluation,info_good:0 +msgid "Good Points" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,state:0 +msgid "State" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,score:0 +#: field:hr_evaluation.quote,score:0 +#: field:hr_evaluation.type,score:0 +#: field:hr_evaluation.type.value,score:0 +msgid "Score" +msgstr "" + +#. module: hr_evaluation +#: selection:hr_evaluation.evaluation,state:0 +msgid "Draft" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Informal Data" +msgstr "" + +#. module: hr_evaluation +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,employee_id:0 +msgid "Employee" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +#: field:hr_evaluation.evaluation,info_improve:0 +msgid "To Improve" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.quote,evaluation_id:0 +msgid "Evaluation" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.type.value,type_id:0 +msgid "Evaluation Type" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Status" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.type:0 +msgid "Apply to categories" +msgstr "" + +#. module: hr_evaluation +#: model:ir.module.module,description:hr_evaluation.module_meta_information +msgid "Ability to create employees evaluation." +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.quote,name:0 +msgid "Quote" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.type,category_ids:0 +msgid "Appliable Role" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,user_id:0 +msgid "Evaluation User" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.type:0 +msgid "Choices Results" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,date:0 +msgid "Date" +msgstr "" + +#. module: hr_evaluation +#: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr +#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_evaluation_form +msgid "Evaluations" +msgstr "" + +#. module: hr_evaluation +#: model:ir.ui.menu,name:hr_evaluation.menu_eval_config +msgid "Configuration" +msgstr "" + +#. module: hr_evaluation +#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_evaluation_next_list +msgid "Next Evaluations" +msgstr "" + +#. module: hr_evaluation +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: hr_evaluation +#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_evaluation_type_form +msgid "Evaluation Criterions" +msgstr "" + +#. module: hr_evaluation +#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_my_old_evaluation_list +msgid "My Preceeding Evaluations" +msgstr "" + +#. module: hr_evaluation +#: model:ir.ui.menu,name:hr_evaluation.menu_resp_hr +msgid "HR Responsible" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.quote,value_id:0 +#: field:hr_evaluation.type.value,name:0 +msgid "Value" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,name:0 +msgid "Summary" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.type,active:0 +msgid "Active" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.type:0 +msgid "Notes" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +#: model:ir.model,name:hr_evaluation.model_hr_evaluation_evaluation +msgid "Employee Evaluation" +msgstr "" + +#. module: hr_evaluation +#: model:ir.model,name:hr_evaluation.model_hr_evaluation_type +msgid "Employee Evaluation Type" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Quotations" +msgstr "" + +#. module: hr_evaluation +#: model:ir.actions.act_window,name:hr_evaluation.open_view_employee_evaluation_next_list +msgid "Next Employee Evaluation" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.quote,type_id:0 +msgid "Type" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.type:0 +#: field:hr_evaluation.type,name:0 +msgid "Evaluation Criterion" +msgstr "" + +#. module: hr_evaluation +#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_employee_evaluation_next_my_list +msgid "My Next Evaluations" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.quote:0 +msgid "Evalution Quote" +msgstr "" + +#. module: hr_evaluation +#: model:ir.module.module,shortdesc:hr_evaluation.module_meta_information +msgid "Human Resources Evaluation" +msgstr "" + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,quote_ids:0 +msgid "Quotes" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +#: selection:hr_evaluation.evaluation,state:0 +msgid "Done" +msgstr "" + +#. module: hr_evaluation +#: model:ir.model,name:hr_evaluation.model_hr_evaluation_quote +msgid "Employee Evaluation Quote" +msgstr "" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +#: field:hr_evaluation.evaluation,info_employee:0 +msgid "Employee Response" +msgstr "" + +#. module: hr_evaluation +#: model:ir.model,name:hr_evaluation.model_hr_evaluation_type_value +msgid "Evaluation Type Value" +msgstr "" diff --git a/addons/hr_expense/__openerp__.py b/addons/hr_expense/__openerp__.py index 83113558c43..08103af1b68 100644 --- a/addons/hr_expense/__openerp__.py +++ b/addons/hr_expense/__openerp__.py @@ -40,7 +40,7 @@ """, 'author': 'Tiny', 'website': 'http://www.openerp.com', - 'depends': ['hr', 'account', 'account_tax_include'], + 'depends': ['hr', 'account'], 'init_xml': [], 'update_xml': [ 'security/ir.model.access.csv', diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index 820d3467660..e0d55bee5fe 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -153,7 +153,6 @@ class hr_expense_expense(osv.osv): 'address_contact_id': exp.employee_id.address_id.id, 'origin': exp.name, 'invoice_line': lines, - 'price_type': 'tax_included', 'currency_id': exp.currency_id.id, 'payment_term': payment_term_id, 'fiscal_position': exp.employee_id.address_id.partner_id.property_account_position.id diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index abce10e80f3..35ffc931831 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -127,18 +127,18 @@ <search string="Expense"> <group> <filter - icon="terp-hr" + icon="terp-document-new" domain="[('state','=','draft')]" string="Draft" help="Draft Expense"/> <separator orientation="vertical"/> <filter - icon="terp-hr" + icon="terp-gtk-go-back-rtl" domain="[('state','=','confirm')]" string="To Validate" help="Confirmed Expense"/> <filter - icon="terp-hr" + icon="terp-gtk-go-back-rtl" domain="[('state','=','accepted')]" string="To Pay" help="Expenses to Invoice"/> @@ -146,18 +146,18 @@ <field name="name" select='1'/> <field name="date" select='1'/> <field name="user_id" select="1" widget="selection" string="User"> - <filter icon="terp-hr" + <filter icon="terp-personal+" domain="[('department_id','=',context.get('department_id',False))]" string="Expenses of My Department"/> </field> <field name="department_id" widget="selection" groups="base.group_extended"/> </group> <newline /> - <group expand="1" string="Group By..."> - <filter string="Department" icon="terp-sale" domain="[]" context="{'group_by':'department_id'}"/> - <filter string="User" icon="terp-sale" domain="[]" context="{'group_by':'user_id'}"/> + <group expand="0" string="Group By..."> + <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/> + <filter string="User" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> <separator orientation="vertical"/> - <filter string="Month" icon="terp-sale" domain="[]" context="{'group_by':'date'}"/> + <filter string="Month" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/> </group> </search> </field> diff --git a/addons/hr_expense/report/hr_expense_report_view.xml b/addons/hr_expense/report/hr_expense_report_view.xml index 6507ff87342..a4aa15e7076 100644 --- a/addons/hr_expense/report/hr_expense_report_view.xml +++ b/addons/hr_expense/report/hr_expense_report_view.xml @@ -51,29 +51,29 @@ <field name="arch" type="xml"> <search string="Expenses Analysis"> <group> - <filter icon="gtk-media-rewind" string=" 365 Days " + <filter icon="terp-go-year" string=" 365 Days " domain="[('date','<=', time.strftime('%%Y-%%m-%%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" help="Expenses during last 7 year"/> - <filter icon="gtk-media-rewind" string=" 30 Days " + <filter icon="terp-go-month" string=" 30 Days " name="month" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]" help="Expenses during last month"/> - <filter icon="gtk-media-rewind" + <filter icon="terp-go-week" string=" 7 Days " separator="1" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" help="Expenses during last 7 days"/> <separator orientation="vertical"/> <filter string="Draft" - icon="terp-hr" + icon="terp-document-new" domain="[('state','=','draft')]" help = "Draft Expenses"/> <filter string="Waiting" - icon="terp-hr" + icon="terp-gtk-media-pause" domain="[('state', '=' ,'confirm')]" help = "Confirm Expenses"/> <filter string="Accepted" - icon="terp-hr" + icon="terp-camera_test" domain="[('state','=','accepted')]" help = "Accepted Expenses"/> <separator orientation="vertical"/> @@ -87,22 +87,22 @@ </field> </group> <newline/> - <group expand="1" string="Group By..."> - <filter string="User" name="User" icon="terp-hr" context="{'group_by':'user_id'}"/> - <filter string="Employee" icon="terp-hr" context="{'group_by':'employee_id'}"/> - <filter string="Company" icon="terp-hr" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> + <group expand="0" string="Group By..."> + <filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/> + <filter string="Employee" icon="terp-personal" context="{'group_by':'employee_id'}"/> + <filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> <separator orientation="vertical"/> - <filter string="Analytic account" icon="terp-hr" context="{'group_by':'analytic_account'}"/> - <filter string="Currency" icon="terp-hr" context="{'group_by':'currency_id'}"/> - <filter string="Department" icon="terp-hr" context="{'group_by':'department_id'}"/> + <filter string="Analytic account" icon="terp-folder-green" context="{'group_by':'analytic_account'}"/> + <filter string="Currency" icon="terp-dolar" context="{'group_by':'currency_id'}"/> + <filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/> <separator orientation="vertical"/> - <filter string="Product" icon="terp-hr" context="{'group_by':'product_id'}"/> - <filter string="State" icon="terp-hr" context="{'group_by':'state'}"/> - <filter string="Force Journal" icon="terp-hr" context="{'group_by':'journal_id'}"/> + <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/> + <filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/> + <filter string="Force Journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/> <separator orientation="vertical"/> - <filter string="Day" icon="terp-hr" context="{'group_by':'day'}"/> - <filter string="Month" icon="terp-hr" context="{'group_by':'month'}"/> - <filter string="Year" icon="terp-hr" context="{'group_by':'year'}"/> + <filter string="Day" icon="terp-go-month" context="{'group_by':'day'}"/> + <filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/> + <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/> </group> <newline/> <group expand="0" string="Extended filters..." groups="base.group_extended"> diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index 74546ff1388..fc9626d831d 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -8,27 +8,27 @@ <field name="arch" type="xml"> <search string="Search Leave"> <group col='8' colspan='4'> - <filter icon="terp-hr" domain="[('state','=','draft')]" string="To Confirm"/> - <filter icon="terp-hr" domain="[('state','=','confirm')]" string="To Validate"/> - <filter icon="terp-hr" domain="[('state','=','validate')]" string="Validated" + <filter icon="terp-gtk-go-back-rtl" domain="[('state','=','draft')]" string="To Confirm"/> + <filter icon="terp-gtk-go-back-rtl" domain="[('state','=','confirm')]" string="To Validate"/> + <filter icon="terp-camera_test" domain="[('state','=','validate')]" string="Validated" default="context.get('report', False)"/> <separator orientation="vertical"/> <field name="user_id" widget="selection"/> <field name="department_id" widget="selection"> - <filter icon="terp-hr" help="My Department Holidays" + <filter icon="terp-personal+" help="My Department Holidays" domain="[('department_id.manager_id','=',uid)]" /> </field> <field name="holiday_status_id" widget="selection"/> </group> <newline /> - <group expand="1" string="Group By..."> - <filter string="Department" icon="terp-sale" domain="[]" context="{'group_by':'department_id'}"/> - <filter string="Manager" icon="terp-sale" domain="[]" context="{'group_by':'manager_id'}"/> - <filter string="User" icon="terp-sale" domain="[]" context="{'group_by':'user_id'}"/> + <group expand="0" string="Group By..."> + <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/> + <filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'manager_id'}"/> + <filter string="User" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> <separator orientation="vertical"/> - <filter string="State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/> - <filter string="Type" icon="terp-sale" domain="[]" context="{'group_by':'holiday_status_id'}" + <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> + <filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'holiday_status_id'}" default="context.get('report', False)"/> </group> </search> diff --git a/addons/hr_holidays/report/available_holidays_view.xml b/addons/hr_holidays/report/available_holidays_view.xml index 34f14271758..5fd9a9c0199 100644 --- a/addons/hr_holidays/report/available_holidays_view.xml +++ b/addons/hr_holidays/report/available_holidays_view.xml @@ -48,21 +48,21 @@ <field name="arch" type="xml"> <search string="Leaves"> <group> - <filter icon="terp-hr" string="Employee" + <filter icon="terp-personal" string="Employee" domain="[('category_id', '=', False)]" help="Leaves by empolyee"/> - <filter icon="terp-hr" string="Category" + <filter icon="terp-stock_symbol-selection" string="Category" domain="[('employee_id', '=', False)]" help="Leaves by category"/> <separator orientation="vertical"/> - <filter icon="terp-hr" string="This Year" + <filter icon="terp-go-year" string="This Year" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" help="Leaves in this year"/> - <filter icon="terp-hr" string="This Month" + <filter icon="terp-go-month" string="This Month" name="month" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]" help="Leaves in this month"/> - <filter icon="gtk-media-rewind" + <filter icon="terp-go-week" string=" 7 Days " separator="1" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" @@ -71,7 +71,7 @@ <field name="employee_id"/> <field name="user_id" widget="selection"> - <filter icon="terp-hr" + <filter icon="terp-personal" string="My Leaves" domain="[('user_id','=',uid)]"/> </field> @@ -82,15 +82,15 @@ <field name="department_id" widget="selection"/> </group> <newline/> - <group expand="1" string="Group By..." colspan="10" col="12"> - <filter string="User" name="User" icon="terp-hr" context="{'group_by':'user_id'}"/> + <group expand="0" string="Group By..." colspan="10" col="12"> + <filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/> <separator orientation="vertical"/> - <filter string="Type" icon="terp-hr" context="{'group_by':'holiday_status_id'}"/> - <filter string="Department" icon="terp-hr" context="{'group_by':'department_id'}"/> + <filter string="Type" icon="terp-stock_symbol-selection" context="{'group_by':'holiday_status_id'}"/> + <filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/> <separator orientation="vertical"/> - <filter string="Day" icon="terp-hr" context="{'group_by':'day'}"/> - <filter string="Month" icon="terp-hr" context="{'group_by':'month'}"/> - <filter string="Year" icon="terp-hr" context="{'group_by':'year'}"/> + <filter string="Day" icon="terp-go-month" context="{'group_by':'day'}"/> + <filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/> + <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/> </group> </search> </field> diff --git a/addons/hr_holidays/report/hr_holidays_report_view.xml b/addons/hr_holidays/report/hr_holidays_report_view.xml index b6afe32fb25..24ea6745270 100644 --- a/addons/hr_holidays/report/hr_holidays_report_view.xml +++ b/addons/hr_holidays/report/hr_holidays_report_view.xml @@ -45,36 +45,36 @@ <field name="arch" type="xml"> <search string="Leaves"> <group> - <filter icon="terp-hr" string="Employee" + <filter icon="terp-personal" string="Employee" domain="[('category_id', '=', False)]" help="Leaves by empolyee"/> - <filter icon="terp-hr" string="Category" + <filter icon="terp-stock_symbol-selection" string="Category" domain="[('employee_id', '=', False)]" help="Leaves by category"/> <separator orientation="vertical"/> - <filter icon="terp-hr" string="This Year" + <filter icon="terp-go-year" string="This Year" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" help="Leaves in this year"/> - <filter icon="terp-hr" string="This Month" + <filter icon="terp-go-month" string="This Month" name="month" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]" help="Leaves in this month"/> - <filter icon="gtk-media-rewind" + <filter icon="terp-go-week" string=" 7 Days " separator="1" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" help="Leaves during last 7 days"/> <separator orientation="vertical"/> <filter string="Draft" - icon="terp-hr" + icon="terp-document-new" domain="[('state','=','draft')]" help = "Draft Leaves"/> <filter string="Waiting Validation" - icon="terp-hr" + icon="terp-gtk-media-pause" domain="[('state', '=' ,'confirm')]" help = "In progress Leaves"/> <filter string="Validated" - icon="terp-hr" + icon="terp-camera_test" domain="[('state','=','validate')]" help = "Pending Leaves"/> <separator orientation="vertical"/> @@ -83,20 +83,20 @@ </field> </group> <newline/> - <group expand="1" string="Group By..." colspan="10" col="12"> - <filter string="User" name="User" icon="terp-hr" context="{'group_by':'user_id'}"/> + <group expand="0" string="Group By..." colspan="10" col="12"> + <filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/> <separator orientation="vertical"/> - <filter string="Type" icon="terp-hr" context="{'group_by':'holiday_status_id'}"/> - <filter string="Department" icon="terp-hr" context="{'group_by':'department_id'}"/> - <filter string="State" icon="terp-hr" context="{'group_by':'state'}"/> + <filter string="Type" icon="terp-stock_symbol-selection" context="{'group_by':'holiday_status_id'}"/> + <filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/> + <filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/> <separator orientation="vertical"/> - <filter string="Day" icon="terp-hr" context="{'group_by':'day'}"/> - <filter string="Month" icon="terp-hr" context="{'group_by':'date'}"/> - <filter string="Year" icon="terp-hr" context="{'group_by':'year'}"/> + <filter string="Day" icon="terp-go-month" context="{'group_by':'day'}"/> + <filter string="Month" icon="terp-go-month" context="{'group_by':'date'}"/> + <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/> </group> <newline/> <group expand="0" string="Extended options..." colspan="10" col="12"> - <filter icon="terp-hr" + <filter icon="terp-gtk-stop" string="Refused" name="done" domain="[('state','=','refuse')]"/> @@ -105,7 +105,7 @@ <separator orientation="vertical"/> <field name="holiday_status_id" widget="selection"/> <newline/> - <filter icon="terp-hr" + <filter icon="terp-gtk-stop" string="Cancelled" domain="[('state','=','cancel')]"/> <separator orientation="vertical"/> diff --git a/addons/hr_payroll/__init__.py b/addons/hr_payroll/__init__.py new file mode 100644 index 00000000000..9ea0d7eb8c4 --- /dev/null +++ b/addons/hr_payroll/__init__.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# d$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +import hr_payroll +import report +import wizard
\ No newline at end of file diff --git a/addons/hr_payroll/__openerp__.py b/addons/hr_payroll/__openerp__.py new file mode 100644 index 00000000000..5828ce15389 --- /dev/null +++ b/addons/hr_payroll/__openerp__.py @@ -0,0 +1,59 @@ +#-*- coding:utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# d$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## +{ + 'name': 'Human Resource Payroll', + 'version': '1.0', + 'category': 'Generic Modules/Human Resources', + 'description': """Generic Payroll system + * Employee Details + * Employee Contracts + * Passport based Contract + * Allowances / Deductions + * Allow to configure Basic / Grows / Net Salary + * Employee Payslip + * Monthly Payroll Register + * Integrated with Holiday Management + """, + 'author':'Tiny/Axelor', + 'website':'http://www.openerp.com', + 'depends': [ + 'hr', + 'account', + 'hr_contract', + 'hr_holidays', + 'hr_expense' + ], + 'init_xml': [ + ], + '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' + ], + 'demo_xml': [ + ], + 'installable': True, + 'active': False, +} diff --git a/addons/hr_payroll/hr_paroll_report.xml b/addons/hr_payroll/hr_paroll_report.xml new file mode 100755 index 00000000000..1355a42ff5b --- /dev/null +++ b/addons/hr_payroll/hr_paroll_report.xml @@ -0,0 +1,57 @@ +<?xml version="1.0"?> +<openerp> + <data> + <report + auto="False" + id="salary_payslip" + model="hr.payslip" + name="payslip.pdf" + rml="hr_payroll/report/payslip.rml" + string="Employee PaySlip" /> + + <report + auto="False" + id="payroll_advice" + model="hr.payroll.advice" + name="payroll.advice" + rml="hr_payroll/report/report_payroll_advice.rml" + string="Bank Payment Advice" /> + + <report + auto="False" + id="year_salary_report" + model="hr.payslip" + name="year.salary" + rml="hr_payroll/report/report_year_report.rml" + menu = "False" + string="Year Salary Report" /> + + <report + auto="False" + id="year_payroll_register" + model="hr.payroll.register" + name="hr.payroll.register.sheet" + rml="hr_payroll/report/payroll_register.rml" + menu = "True" + string="Print Statement" /> + + <report + auto="False" + id="year_employees_detail" + model="hr.payslip" + name="employees.salary" + rml="hr_payroll/report/report_employees_detail.rml" + menu = "False" + string="Employees Salary Detail" /> + + <report + auto="False" + id="salary_structure_register" + model="hr.employee" + name="salary.structure" + rml="hr_payroll/report/report_emp_salary_structure.rml" + menu = "True" + string="Print Salary Structure" /> + + </data> +</openerp> diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py new file mode 100644 index 00000000000..d6653b0d456 --- /dev/null +++ b/addons/hr_payroll/hr_payroll.py @@ -0,0 +1,1881 @@ +#-*- coding:utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# d$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +import time +import netsvc +from osv import osv +from osv import fields +from tools import config +from tools.translate import _ + +class hr_contract_wage_type(osv.osv): + """ + Wage types + Basic = Basic Salary + Grows = Basic + Allowances + New = Grows - Deductions + """ + + _inherit = 'hr.contract.wage.type' + _columns = { + 'type' : fields.selection([('basic','Basic'), ('gross','Gross'), ('net','Net')], 'Type', required=True), + } +hr_contract_wage_type() + +class hr_passport(osv.osv): + """ + Employee Passport + Passport based Contratacts for Employees + """ + + _name = 'hr.passport' + _description = 'Passport Detail' + + _columns = { + 'employee_id':fields.many2one('hr.employee', 'Employee', required=True), + 'name':fields.char('Passport No', size=64, required=True, readonly=False), + 'country_id':fields.many2one('res.country', 'Country of Issue', required=True), + 'address_id':fields.many2one('res.partner.address', 'Address', required=False), + 'date_issue': fields.date('Passport Issue Date', required=True), + 'date_expire': fields.date('Passport Expire Date', required=True), + 'contracts_ids':fields.one2many('hr.contract', 'passport_id', 'Contracts', required=False, readonly=True), + 'note': fields.text('Description'), + } +hr_passport() + +class hr_payroll_structure(osv.osv): + """ + Salary structure used to defined + * Basic + * Allowlance + * Deductions + """ + + _name = 'hr.payroll.structure' + _description = 'Salary Structure' + + _columns = { + 'name':fields.char('Name', size=256, required=True, readonly=False), + 'code':fields.char('Code', size=64, required=True, readonly=False), + 'line_ids':fields.one2many('hr.payslip.line', 'function_id', 'Salary Structure', required=False), + 'account_id':fields.many2one('account.analytic.account', 'Analytic Account', required=False), + 'company_id':fields.many2one('res.company', 'Company', required=False), + 'note': fields.text('Description'), + } + _defaults = { + 'company_id': lambda self, cr, uid, context: \ + self.pool.get('res.users').browse(cr, uid, uid, + context=context).company_id.id, + } + + def copy(self, cr, uid, id, default=None, context=None): + """ + Create a new record in hr_payroll_structure model from existing one + @param cr: cursor to database + @param user: id of current user + @param id: list of record ids on which copy method executes + @param default: dict type contains the values to be override during copy of object + @param context: context arguments, like lang, time zone + + @return: returns a id of newly created record + """ + code = self.browse(cr, uid, id).code + default = { + 'code':code+"(copy)", + 'company_id':self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id + } + res_id = super(hr_payroll_structure, self).copy(cr, uid, id, default, context) + return res_id + +hr_payroll_structure() + +class hr_contract(osv.osv): + """ + Employee contract based on the visa, work permits + allowas to configure different Salary structure + """ + + _inherit = 'hr.contract' + _description = 'Employee Contract' + + _columns = { + 'permit_no':fields.char('Work Permit No', size=256, required=False, readonly=False), + 'passport_id':fields.many2one('hr.passport', 'Passport', required=False), + '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'), + } +hr_contract() + +class payroll_register(osv.osv): + ''' + Payroll Register + ''' + _name = 'hr.payroll.register' + _description = 'Payroll Register' + + def _calculate(self, cr, uid, ids, field_names, arg, context): + res = {} + allounce = 0.0 + deduction = 0.0 + net = 0.0 + grows = 0.0 + for register in self.browse(cr, uid, ids, context): + for slip in register.line_ids: + allounce += slip.allounce + deduction += slip.deduction + net += slip.net + grows += slip.grows + + res[register.id] = { + 'allounce':allounce, + 'deduction':deduction, + 'net':net, + 'grows':grows + } + return res + + _columns = { + 'name':fields.char('Name', size=64, required=True, readonly=False), + 'date': fields.date('Date', required=True), + 'number':fields.char('Number', size=64, required=False, readonly=True), + 'line_ids':fields.one2many('hr.payslip', 'register_id', 'Payslips', required=False), + 'state':fields.selection([ + ('new','New Slip'), + ('draft','Wating for Verification'), + ('hr_check','Wating for HR Verification'), + ('accont_check','Wating for Account Verification'), + ('confirm','Confirm Sheet'), + ('done','Paid Salary'), + ('cancel','Reject'), + ],'State', select=True, readonly=True), + 'journal_id': fields.many2one('account.journal', 'Expanse Journal', required=True), + 'bank_journal_id': fields.many2one('account.journal', 'Bank Journal', required=True), + 'active':fields.boolean('Active', required=False), +# 'advice_ids':fields.one2many('hr.payroll.advice', 'register_id', 'Bank Advice'), + 'company_id':fields.many2one('res.company', 'Company', required=False), + 'period_id': fields.many2one('account.period', 'Force Period', domain=[('state','<>','done')], help="Keep empty to use the period of the validation(Payslip) date."), + 'grows': fields.function(_calculate, method=True, store=True, multi='dc', string='Gross Salary', type='float', digits=(16, int(config['price_accuracy']))), + 'net': fields.function(_calculate, method=True, store=True, multi='dc', string='Net Salary', digits=(16, int(config['price_accuracy']))), + 'allounce': fields.function(_calculate, method=True, store=True, multi='dc', string='Allowance', digits=(16, int(config['price_accuracy']))), + 'deduction': fields.function(_calculate, method=True, store=True, multi='dc', string='Deduction', digits=(16, int(config['price_accuracy']))), + 'note': fields.text('Description'), + } + + _defaults = { + 'date': lambda *a: time.strftime('%Y-%m-%d'), + 'state': lambda *a: 'new', + 'active': lambda *a: True, + 'company_id': lambda self, cr, uid, context: \ + self.pool.get('res.users').browse(cr, uid, uid, + context=context).company_id.id, + } + + def compute_sheet(self, cr, uid, ids, context={}): + emp_pool = self.pool.get('hr.employee') + slip_pool = self.pool.get('hr.payslip') + func_pool = self.pool.get('hr.payroll.structure') + slip_line_pool = self.pool.get('hr.payslip.line') + wf_service = netsvc.LocalService("workflow") + + vals = self.read(cr, uid, ids)[0] + + emp_ids = emp_pool.search(cr, uid, []) + + for emp in emp_pool.browse(cr, uid, emp_ids): + old_slips = slip_pool.search(cr, uid, [('employee_id','=',emp.id), ('date','=',vals['date'])]) + if old_slips: + slip_pool.write(cr, uid, old_slips, {'register_id':ids[0]}) + for sid in old_slips: + wf_service.trg_validate(uid, 'hr.payslip', sid, 'compute_sheet', cr) + continue + + sql_req= ''' + SELECT 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, (emp.id, vals['date'], vals['date'])) + contract_info = cr.dictfetchone() + + if not contract_info: + continue + + function = contract_info['struct_id'] + lines = [] + if function: + func = func_pool.read(cr, uid, function, ['line_ids']) + lines = slip_line_pool.browse(cr, uid, func['line_ids']) + + res = { + 'employee_id':emp.id, + 'basic':contract_info['wage'], + 'register_id':ids[0], + 'name':vals['name'], + 'date':vals['date'], + 'journal_id':vals['journal_id'][0], + 'bank_journal_id':vals['bank_journal_id'][0] + } + slip_id = slip_pool.create(cr, uid, res) + + old_slip_id = slip_line_pool.search(cr, uid, [('slip_id','=',slip_id)]) + slip_line_pool.unlink(cr, uid, old_slip_id) + + for line in lines: + slip_line_pool.copy(cr, uid, line.id, {'slip_id':slip_id, 'employee_id':False, 'function_id':False}, {}) + + for line in emp.line_ids: + slip_line_pool.copy(cr, uid, line.id, {'slip_id':slip_id, 'employee_id':False, 'function_id':False}, {}) + + wf_service.trg_validate(uid, 'hr.payslip', slip_id, 'compute_sheet', cr) + + number = self.pool.get('ir.sequence').get(cr, uid, 'salary.register') + self.write(cr, uid, ids, {'state':'draft', 'number':number}) + return True + + def verify_sheet(self, cr, uid, ids, context={}): + slip_pool = self.pool.get('hr.payslip') + + for id in ids: + sids = slip_pool.search(cr, uid, [('register_id','=',id)]) + wf_service = netsvc.LocalService("workflow") + for sid in sids: + wf_service.trg_validate(uid, 'hr.payslip', sid, 'verify_sheet', cr) + + self.write(cr, uid, ids, {'state':'hr_check'}) + return True + + def verify_twice_sheet(self, cr, uid, ids, context={}): + slip_pool = self.pool.get('hr.payslip') + + for id in ids: + sids = slip_pool.search(cr, uid, [('register_id','=',id), ('state','=','hr_check')]) + wf_service = netsvc.LocalService("workflow") + for sid in sids: + wf_service.trg_validate(uid, 'hr.payslip', sid, 'verify_twice_sheet', cr) + + self.write(cr, uid, ids, {'state':'accont_check'}) + return True + + def final_verify_sheet(self, cr, uid, ids, context={}): + slip_pool = self.pool.get('hr.payslip') + advice_pool = self.pool.get('hr.payroll.advice') + advice_line_pool = self.pool.get('hr.payroll.advice.line') + + for id in ids: + sids = slip_pool.search(cr, uid, [('register_id','=',id), ('state','=','accont_check')]) + wf_service = netsvc.LocalService("workflow") + for sid in sids: + wf_service.trg_validate(uid, 'hr.payslip', sid, 'final_verify_sheet', cr) + + + for reg in self.browse(cr, uid, ids): + accs = {} + for slip in reg.line_ids: + pid = False + if accs.get(slip.employee_id.property_bank_account.code, False) == False: + advice = { + 'name': 'Payment Advice from %s / Bank Account %s' % (self.pool.get('res.users').browse(cr, uid, uid).company_id.name, slip.employee_id.property_bank_account.name), + 'number': self.pool.get('ir.sequence').get(cr, uid, 'payment.advice'), + 'register_id':reg.id, + 'account_id':slip.employee_id.property_bank_account.id + } + pid = advice_pool.create(cr, uid, advice) + accs[slip.employee_id.property_bank_account.code] = pid + else: + pid = accs[slip.employee_id.property_bank_account.code] + + pline = { + 'advice_id':pid, + 'name':slip.employee_id.otherid, + 'employee_id':slip.employee_id.id, + 'amount':slip.other_pay + slip.net, + 'bysal':slip.net + } + id = advice_line_pool.create(cr, uid, pline) + + #, 'advice_ids':[(6, 0, [pid])] + self.write(cr, uid, ids, {'state':'confirm'}) + return True + + def process_sheet(self, cr, uid, ids, context={}): + slip_pool = self.pool.get('hr.payslip') + for id in ids: + sids = slip_pool.search(cr, uid, [('register_id','=',id), ('state','=','confirm')]) + wf_service = netsvc.LocalService("workflow") + for sid in sids: + wf_service.trg_validate(uid, 'hr.payslip', sid, 'process_sheet', cr) + + self.write(cr, uid, ids, {'state':'done'}) + return True + +payroll_register() + +class payroll_advice(osv.osv): + ''' + Bank Advice Note + ''' + _name = 'hr.payroll.advice' + _description = 'Bank Advice Note' + + _columns = { + 'register_id':fields.many2one('hr.payroll.register', 'Payroll Register', required=False), + 'name':fields.char('Name', size=2048, required=True, readonly=False), + 'note': fields.text('Description'), + 'date': fields.date('Date'), + 'state':fields.selection([ + ('draft','Draft Sheet'), + ('confirm','Confirm Sheet'), + ('cancel','Reject'), + ],'State', select=True, readonly=True), + 'number':fields.char('Number', size=64, required=False, readonly=True), + 'line_ids':fields.one2many('hr.payroll.advice.line', 'advice_id', 'Employee Salary', required=False), + 'chaque_nos':fields.char('Chaque Nos', size=256, required=False, readonly=False), + 'account_id': fields.many2one('account.account', 'Account', required=True), + 'company_id':fields.many2one('res.company', 'Company', required=False), + } + + _defaults = { + 'date': lambda *a: time.strftime('%Y-%m-%d'), + 'state': lambda *a: 'draft', + 'company_id': lambda self, cr, uid, context: \ + self.pool.get('res.users').browse(cr, uid, uid, + context=context).company_id.id, + } + + def confirm_sheet(self, cr, uid, ids, context={}): + self.write(cr, uid, ids, {'state':'confirm'}) + return True + + def set_to_draft(self, cr, uid, ids, context={}): + self.write(cr, uid, ids, {'state':'draft'}) + return True + + def cancel_sheet(self, cr, uid, ids, context={}): + self.write(cr, uid, ids, {'state':'cancel'}) + return True + +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 + ''' + _name = 'hr.payroll.advice.line' + _description = 'Bank Advice Lines' + + _columns = { + 'advice_id':fields.many2one('hr.payroll.advice', 'Bank Advice', required=False), + 'name':fields.char('Bank Account A/C', size=64, required=True, readonly=False), + 'employee_id':fields.many2one('hr.employee', 'Employee', required=True), + 'amount': fields.float('Amount', digits=(16, int(config['price_accuracy']))), + 'bysal': fields.float('By Salary', digits=(16, int(config['price_accuracy']))), + 'flag':fields.char('D/C', size=8, required=True, readonly=False), + } + _defaults = { + 'flag': lambda *a: 'C', + } + + def onchange_employee_id(self, cr, uid, ids, ddate, employee_id, context={}): + vals = {} + slip_pool = self.pool.get('hr.payslip') + if employee_id: + dates = prev_bounds(ddate) + sids = False + sids = slip_pool.search(cr, uid, [('paid','=',False),('state','=','confirm'),('date','>=',dates[0]), ('employee_id','=',employee_id), ('date','<=',dates[1])]) + if sids: + slip = slip_pool.browse(cr, uid, sids[0]) + vals['name'] = slip.employee_id.otherid + vals['amount'] = slip.net + slip.other_pay + vals['bysal'] = slip.net + return { + 'value':vals + } +payroll_advice_line() + +class contrib_register(osv.osv): + ''' + Contribution Register + ''' + _name = 'hr.contibution.register' + _description = 'Contribution Register' + + def _total_contrib(self, cr, uid, ids, field_names, arg, context={}): + line_pool = self.pool.get('hr.contibution.register.line') + period_id = self.pool.get('account.period').search(cr,uid,[('date_start','<=',time.strftime('%Y-%m-%d')),('date_stop','>=',time.strftime('%Y-%m-%d'))])[0] + fiscalyear_id = self.pool.get('account.period').browse(cr, uid, period_id).fiscalyear_id + res = {} + for cur in self.browse(cr, uid, ids): + current = line_pool.search(cr, uid, [('period_id','=',period_id),('register_id','=',cur.id)]) + years = line_pool.search(cr, uid, [('period_id.fiscalyear_id','=',fiscalyear_id.id), ('register_id','=',cur.id)]) + + e_month = 0.0 + c_month = 0.0 + for i in line_pool.browse(cr, uid, current): + e_month += i.emp_deduction + c_month += i.comp_deduction + + e_year = 0.0 + c_year = 0.0 + for j in line_pool.browse(cr, uid, years): + e_year += i.emp_deduction + c_year += i.comp_deduction + + res[cur.id]={ + 'monthly_total_by_emp':e_month, + 'monthly_total_by_comp':c_month, + 'yearly_total_by_emp':e_year, + 'yearly_total_by_comp':c_year + } + + return res + + _columns = { + 'company_id':fields.many2one('res.company', 'Company', required=False), + 'account_id': fields.many2one('account.account', 'Account', required=True), + 'analytic_account_id':fields.many2one('account.analytic.account', 'Analytic Account', required=False), + 'name':fields.char('Name', size=256, required=True, readonly=False), + 'register_line_ids':fields.one2many('hr.contibution.register.line', 'register_id', 'Register Line', readonly=True), + 'yearly_total_by_emp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Employee', digits=(16, int(config['price_accuracy']))), + 'yearly_total_by_comp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Company', digits=(16, int(config['price_accuracy']))), + 'monthly_total_by_emp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Employee', digits=(16, int(config['price_accuracy']))), + 'monthly_total_by_comp': fields.function(_total_contrib, method=True, multi='dc', store=True, string='Total By Company', digits=(16, int(config['price_accuracy']))), + 'note': fields.text('Description'), + } + _defaults = { + 'company_id': lambda self, cr, uid, context: \ + self.pool.get('res.users').browse(cr, uid, uid, + context=context).company_id.id, + } +contrib_register() + +class contrib_register_line(osv.osv): + ''' + Contribution Register Line + ''' + _name = 'hr.contibution.register.line' + _description = 'Contribution Register Line' + + def _total(self, cr, uid, ids, field_names, arg, context): + res={} + for line in self.browse(cr, uid, ids, context): + res[line.id] = line.emp_deduction + line.comp_deduction + return res + + _columns = { + 'name':fields.char('Name', size=256, required=True, readonly=False), + 'register_id':fields.many2one('hr.contibution.register', 'Register', required=False), + 'code':fields.char('Code', size=64, required=False, readonly=False), + 'employee_id':fields.many2one('hr.employee', 'Employee', required=True), + 'period_id': fields.many2one('account.period', 'Period'), + 'emp_deduction': fields.float('Employee Deduction', digits=(16, int(config['price_accuracy']))), + 'comp_deduction': fields.float('Company Deduction', digits=(16, int(config['price_accuracy']))), + 'total': fields.function(_total, method=True, store=True, string='Total', digits=(16, int(config['price_accuracy']))), + } +contrib_register_line() + +class payment_category(osv.osv): + ''' + Open ERP Model + ''' + _name = 'hr.allounce.deduction.categoty' + _description = 'Allowance Deduction Categoty' + + _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'), + ('other','Others'), + ],'Type', select=True), + 'contribute_per':fields.float('Contribution', digits=(16, int(config['price_accuracy'])), help='Define Company contribution ratio 1.00=100% contribution, If Employee Contribute 5% then company will and here 0.50 defined then company will contribute 50% on employee 5% contribution'), + 'contribute':fields.boolean('Contribe by Company ?', help='Is company contribute on this deduction, like Provident Fund'), + 'include_in_salary':fields.boolean('Included in Salary ?', help='If company contribute on this deduction then should company contribution is also deducted from Employee Salary'), + 'gratuity':fields.boolean('Use for Gratuity ?', required=False), + 'line_ids':fields.one2many('hr.allounce.deduction.categoty.line', 'category_id', 'Calculations', required=False), + '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'), + 'condition':fields.char('Condition', size=1024, required=True, readonly=False, help='Applied this head for calculation if condition is true'), + 'sequence': fields.integer('Sequence', required=True, help='Use to arrange calculation sequence'), + 'register_id':fields.property( + 'hr.contibution.register', + type='many2one', + relation='hr.contibution.register', + string="Contribution Register", + method=True, + view_load=True, + help="Contribution register based on company", + required=False + ), + 'note': fields.text('Description'), + 'user_id':fields.char('User', size=64, required=False, readonly=False), + 'state':fields.char('Label', size=64, required=False, readonly=False), + 'company_id':fields.many2one('res.company', 'Company', required=False), + 'amount_type':fields.selection([ +# ('per','Percentage (%)'), + ('fix','Fixed Amount'), + ('func','Function Calculation'), + ],'Amount Type', select=True), + 'account_id':fields.property( + 'account.account', + type='many2one', + relation='account.account', + string="Account", + method=True, + view_load=True, + help="Expanse account where company expanse will be encoded", + required=False + ), + } + _defaults = { + 'condition': lambda *a: 'True', + 'base': lambda *a:'basic', + 'sequence': lambda *a:5, + 'amount_type': lambda *a:'fix', + 'company_id': lambda self, cr, uid, context: \ + self.pool.get('res.users').browse(cr, uid, uid, + context=context).company_id.id, + } + + def execute_function(self, cr, uid, id, value, context): + """ + self: pointer to self object + cr: cursor to database + uid: user id of current executer + """ + + line_pool = self.pool.get('hr.allounce.deduction.categoty.line') + res = 0 + ids = line_pool.search(cr, uid, [('category_id','=',id), ('to_val','>=',value),('from_val','<=',value)]) + if not ids: + ids = line_pool.search(cr, uid, [('category_id','=',id), ('from','<=',value)]) + if not ids: + res = 0 + else: + res = line_pool.browse(cr, uid, ids)[0].value + return res + +payment_category() + +class payment_category_line(osv.osv): + ''' + Allowance Deduction Categoty + ''' + _name = 'hr.allounce.deduction.categoty.line' + _description = 'Allowance Deduction Categoty' + _order = 'sequence' + + _columns = { + 'category_id':fields.many2one('hr.allounce.deduction.categoty', 'Category', required=False), + 'name':fields.char('Name', size=64, required=False, readonly=False), + 'umo_id':fields.many2one('product.uom', 'Unite', required=False), + 'from_val': fields.float('From', digits=(16, int(config['price_accuracy']))), + 'to_val': fields.float('To', digits=(16, int(config['price_accuracy']))), + 'amount_type':fields.selection([ + ('fix','Fixed Amount'), + ],'Amount Type', select=True), + 'sequence':fields.integer('Sequence'), + 'value': fields.float('Value', digits=(16, int(config['price_accuracy']))), + } +payment_category_line() + +class hr_holidays_status(osv.osv): + _inherit = "hr.holidays.status" + + _columns = { + 'company_id':fields.many2one('res.company', 'Company', required=False), + 'type':fields.selection([ + ('paid','Paid Holiday'), + ('unpaid','Un-Paid Holiday'), + ('halfpaid','Half-Pay Holiday') + ], 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')]), + 'code':fields.char('Code', size=64, required=False, readonly=False), + } + _defaults = { + 'type': lambda *args: 'unpaid', + 'company_id': lambda self, cr, uid, context: \ + self.pool.get('res.users').browse(cr, uid, uid, + context=context).company_id.id, + } +hr_holidays_status() + +class hr_expense_expense(osv.osv): + _inherit = "hr.expense.expense" + _description = "Expense" + _columns = { + 'category_id':fields.many2one('hr.allounce.deduction.categoty', 'Payroll Head', domain=[('type','=','other')]), + } +hr_expense_expense() + +class hr_payslip(osv.osv): + ''' + Pay Slip + ''' + _name = 'hr.payslip' + _description = 'Pay Slip' + + def _calculate(self, cr, uid, ids, field_names, arg, context): + res = {} + for rs in self.browse(cr, uid, ids, context): + allow = 0.0 + deduct = 0.0 + others = 0.0 + + obj = {'basic':rs.basic} + + for line in rs.line_ids: + amount = 0.0 + + if line.amount_type == 'per': + amount = line.amount * eval(line.category_id.base, obj) + elif line.amount_type in ('fix', 'func'): + amount = line.amount + + cd = line.category_id.code.lower() + obj[cd] = amount + + contrib = 0.0 + if line.category_id.include_in_salary: + contrib = line.company_contrib + + if line.type == 'allounce': + allow += amount + others += contrib + amount -= contrib + elif line.type == 'deduction': + deduct += amount + others -= contrib + amount += contrib + elif line.type == 'advance': + others += amount + elif line.type == 'loan': + others += amount + elif line.type == 'otherpay': + others += amount + + 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), + 'other_pay':others, + 'total_pay': round(rs.basic + allow - deduct + others) + } + res[rs.id] = record + + return res + + _columns = { + 'deg_id':fields.many2one('hr.payroll.structure', 'Designation', required=False), + 'register_id':fields.many2one('hr.payroll.register', 'Register', required=False), + 'journal_id': fields.many2one('account.journal', 'Expanse Journal', required=True), + 'bank_journal_id': fields.many2one('account.journal', 'Bank Journal', required=True), + 'name':fields.char('Name', size=64, required=False, readonly=True, states={'draft': [('readonly', False)]}), + 'number':fields.char('Number', size=64, required=False, readonly=True), + 'employee_id':fields.many2one('hr.employee', 'Employee', required=True), + 'date': fields.date('Date'), + 'state':fields.selection([ + ('new','New Slip'), + ('draft','Wating for Verification'), + ('hr_check','Wating for HR Verification'), + ('accont_check','Wating for Account Verification'), + ('confirm','Confirm Sheet'), + ('done','Paid Salary'), + ('cancel','Reject'), + ],'State', select=True, readonly=True), + 'basic_before_leaves': fields.float('Basic Salary', readonly=True, digits=(16, 2)), + 'leaves': fields.float('Leaved Deduction', readonly=True, digits=(16, 2)), + 'basic': fields.float('Basic Salary - Leaves', readonly=True, digits=(16, 2)), + 'grows': fields.function(_calculate, method=True, store=True, multi='dc', string='Gross Salary', type='float', digits=(16, 2)), + 'net': fields.function(_calculate, method=True, store=True, multi='dc', string='Net Salary', digits=(16, 2)), + 'allounce': fields.function(_calculate, method=True, store=True, multi='dc', string='Allowance', digits=(16, 2)), + 'deduction': fields.function(_calculate, method=True, store=True, multi='dc', string='Deduction', digits=(16, 2)), + 'other_pay': fields.function(_calculate, method=True, store=True, multi='dc', string='Others', digits=(16, 2)), + 'total_pay': fields.function(_calculate, method=True, store=True, multi='dc', string='Total Payment', digits=(16, 2)), + 'line_ids':fields.one2many('hr.payslip.line', 'slip_id', 'Payslip Line', required=False, readonly=True, states={'draft': [('readonly', False)]}), + 'move_ids':fields.one2many('hr.payslip.account.move', 'slip_id', 'Accounting vouchers', required=False), + 'move_line_ids':fields.many2many('account.move.line', 'payslip_lines_rel', 'slip_id', 'line_id', 'Accounting Lines', readonly=True), + 'move_payment_ids':fields.many2many('account.move.line', 'payslip_payment_rel', 'slip_id', 'payment_id', 'Payment Lines', readonly=True), + 'company_id':fields.many2one('res.company', 'Company', required=False), + 'period_id': fields.many2one('account.period', 'Force Period', domain=[('state','<>','done')], help="Keep empty to use the period of the validation(Payslip) date."), + 'holiday_days': fields.integer('No of Leaves', readonly=True), + 'worked_days': fields.integer('Worked Day', readonly=True), + '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) + } + _defaults = { + 'date': lambda *a: time.strftime('%Y-%m-%d'), + 'state': lambda *a: 'new', + 'company_id': lambda self, cr, uid, context: \ + self.pool.get('res.users').browse(cr, uid, uid, + context=context).company_id.id, + } + + def copy(self, cr, uid, id, default=None, context=None): + company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id + default = { + 'line_ids': False, + 'move_ids': False, + 'move_line_ids': False, + 'move_payment_ids': False, + 'company_id':company_id, + 'period_id': False, + 'basic_before_leaves':0, + 'basic':0 + } + res_id = super(hr_payslip, self).copy(cr, uid, id, default, context) + return res_id + + def create_voucher(self, cr, uid, ids, name, voucher, sequence=5): + slip_move = self.pool.get('hr.payslip.account.move') + for slip in ids: + res = { + 'slip_id':slip, + 'move_id':voucher, + 'sequence':sequence, + 'name':name + } + slip_move.create(cr, uid, res) + + def set_to_draft(self, cr, uid, ids, context={}): + self.write(cr, uid, ids, {'state':'draft'}) + return True + + def cancel_sheet(self, cr, uid, ids, context={}): + move_pool = self.pool.get('account.move') + + for slip in self.browse(cr, uid, ids, context): + if slip.move_id: + if slip.move_id.state == 'posted': + move_pool.button_cancel(cr, uid [slip.move_id.id], context) + move_pool.unlink(cr, uid, [slip.move_id.id]) + + if slip.adj_move_id: + if slip.adj_move_id.state == 'posted': + move_pool.button_cancel(cr, uid [slip.adj_move_id.id], context) + move_pool.unlink(cr, uid, [slip.adj_move_id.id]) + + if slip.other_move_id: + if slip.other_move_id.state == 'posted': + move_pool.button_cancel(cr, uid [slip.other_move_id.id], context) + move_pool.unlink(cr, uid, [slip.other_move_id.id]) + + self.write(cr, uid, ids, {'state':'cancel'}) + return True + + def process_sheet(self, cr, uid, ids, context={}): + move_pool = self.pool.get('account.move') + movel_pool = self.pool.get('account.move.line') + invoice_pool = self.pool.get('account.invoice') + + for slip in self.browse(cr,uid,ids): + line_ids = [] + partner = False + partner_id = False + exp_ids = [] + + partner = slip.employee_id.address_home_id.partner_id + partner_id = partner.id + + fiscal_year_ids = self.pool.get('account.fiscalyear').search(cr, uid, []) + if not fiscal_year_ids: + raise osv.except_osv(_('Warning !'), _('Please define fiscal year for perticular contract')) + fiscal_year_objs = self.pool.get('account.fiscalyear').read(cr, uid, fiscal_year_ids, ['date_start','date_stop']) + year_exist = False + for fiscal_year in fiscal_year_objs: + if ((fiscal_year['date_start'] <= slip.date) and (fiscal_year['date_stop'] >= slip.date)): + year_exist = True + if not year_exist: + raise osv.except_osv(_('Warning !'), _('Fiscal Year is not defined for slip date %s'%slip.date)) + search_period = self.pool.get('account.period').search(cr,uid,[('date_start','<=',slip.date),('date_stop','>=',slip.date)]) + if not search_period: + raise osv.except_osv(_('Warning !'), _('Period is not defined for slip date %s'%slip.date)) + period_id = search_period[0] + name = 'Payment of Salary to %s' % (slip.employee_id.name) + move = { + 'journal_id': slip.bank_journal_id.id, + 'period_id': period_id, + 'date': slip.date, + 'type':'bank_pay_voucher', + 'ref':slip.number, + 'narration': name + } + move_id = move_pool.create(cr, uid, move) + self.create_voucher(cr, uid, [slip.id], name, move_id) + + name = "To %s account" % (slip.employee_id.name) + ded_rec = { + 'move_id':move_id, + 'name': name, + #'partner_id': partner_id, + 'date': slip.date, + 'account_id': slip.employee_id.property_bank_account.id, + 'debit': 0.0, + 'credit' : slip.total_pay, + 'journal_id' : slip.journal_id.id, + 'period_id' :period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, ded_rec)] + name = "By %s account" % (slip.employee_id.property_bank_account.name) + cre_rec = { + 'move_id':move_id, + 'name': name, + 'partner_id': partner_id, + 'date': slip.date, + 'account_id': partner.property_account_payable.id, + 'debit': slip.total_pay, + 'credit' : 0.0, + 'journal_id' : slip.journal_id.id, + 'period_id' :period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, cre_rec)] + + other_pay = slip.other_pay + #Process all Reambuse Entries + for line in slip.line_ids: + if line.type == 'otherpay' and line.expanse_id.invoice_id: + if not line.expanse_id.invoice_id.move_id: + raise osv.except_osv(_('Warning !'), _('Please Confirm all Expanse Invoice appear for Reimbursement')) + invids = [line.expanse_id.invoice_id.id] + amount = line.total + acc_id = slip.bank_journal_id.default_credit_account_id and slip.bank_journal_id.default_credit_account_id.id + period_id = slip.period_id.id + journal_id = slip.bank_journal_id.id + name = '[%s]-%s' % (slip.number, line.name) + invoice_pool.pay_and_reconcile(cr, uid, invids, amount, acc_id, period_id, journal_id, False, period_id, False, context, name) + other_pay -= amount + #TODO: link this account entries to the Payment Lines also Expanse Entries to Account Lines + l_ids = movel_pool.search(cr, uid, [('name','=',name)]) + line_ids += l_ids + + l_ids = movel_pool.search(cr, uid, [('invoice','=',line.expanse_id.invoice_id.id)]) + exp_ids += l_ids + + #Process for Other payment if any + other_move_id = False + if slip.other_pay > 0: + narration = 'Payment of Other Payeble amounts to %s' % (slip.employee_id.name) + move = { + 'journal_id': slip.bank_journal_id.id, + 'period_id': period_id, + 'date': slip.date, + 'type':'bank_pay_voucher', + 'ref':slip.number, + 'narration': narration + } + other_move_id = move_pool.create(cr, uid, move) + self.create_voucher(cr, uid, [slip.id], narration, move_id) + + name = "To %s account" % (slip.employee_id.name) + ded_rec = { + 'move_id':other_move_id, + 'name':name, + 'date':slip.date, + 'account_id':slip.employee_id.property_bank_account.id, + 'debit': 0.0, + 'credit': other_pay, + 'journal_id':slip.journal_id.id, + 'period_id':period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, ded_rec)] + name = "By %s account" % (slip.employee_id.property_bank_account.name) + cre_rec = { + 'move_id':other_move_id, + 'name':name, + 'partner_id':partner_id, + 'date':slip.date, + 'account_id':partner.property_account_payable.id, + 'debit': other_pay, + 'credit':0.0, + 'journal_id':slip.journal_id.id, + 'period_id':period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, cre_rec)] + + rec = { + 'state':'done', + 'move_payment_ids':[(6, 0, line_ids)], + 'paid':True + } + self.write(cr, uid, [slip.id], rec) + for exp_id in exp_ids: + self.write(cr, uid, [slip.id], {'move_line_ids':[(4, exp_id)]}) + + return True + + def account_check_sheet(self, cr, uid, ids, context={}): + self.write(cr, uid, ids, {'state':'accont_check'}) + return True + + def hr_check_sheet(self, cr, uid, ids, context={}): + self.write(cr, uid, ids, {'state':'hr_check'}) + return True + + def verify_sheet(self, cr, uid, ids, context={}): + + move_pool = self.pool.get('account.move') + movel_pool = self.pool.get('account.move.line') + exp_pool = self.pool.get('hr.expense.expense') + + for slip in self.browse(cr,uid,ids): + total_deduct = 0.0 + + line_ids = [] + partner = False + partner_id = False + + if not slip.employee_id.address_home_id: + raise osv.except_osv(_('Integrity Error !'), _('Please defined the Employee Home Address Along with Partners !!')) + + if not slip.employee_id.address_home_id.partner_id: + raise osv.except_osv(_('Integrity Error !'), _('Please defined the Partner in Home Address !!')) + + partner = slip.employee_id.address_home_id.partner_id + partner_id = slip.employee_id.address_home_id.partner_id.id + + period_id = False + + if slip.period_id: + period_id = slip.period_id.id + else: + fiscal_year_ids = self.pool.get('account.fiscalyear').search(cr, uid, []) + if not fiscal_year_ids: + raise osv.except_osv(_('Warning !'), _('Please define fiscal year for perticular contract')) + fiscal_year_objs = self.pool.get('account.fiscalyear').read(cr, uid, fiscal_year_ids, ['date_start','date_stop']) + year_exist = False + for fiscal_year in fiscal_year_objs: + if ((fiscal_year['date_start'] <= slip.date) and (fiscal_year['date_stop'] >= slip.date)): + year_exist = True + if not year_exist: + raise osv.except_osv(_('Warning !'), _('Fiscal Year is not defined for slip date %s'%slip.date)) + search_period = self.pool.get('account.period').search(cr,uid,[('date_start','<=',slip.date),('date_stop','>=',slip.date)]) + if not search_period: + raise osv.except_osv(_('Warning !'), _('Period is not defined for slip date %s'%slip.date)) + period_id = search_period[0] + + move = { + #'name': slip.name, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'date': slip.date, + 'ref':slip.number, + 'narration': slip.name + } + move_id = move_pool.create(cr, uid, move) + self.create_voucher(cr, uid, [slip.id], slip.name, move_id) + + line = { + 'move_id':move_id, + 'name': "By Basic Salary / " + slip.employee_id.name, + 'date': slip.date, + 'account_id': slip.employee_id.salary_account.id, + 'debit': slip.basic, + 'credit': 0.0, + 'quantity':slip.working_days, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'analytic_account_id': False, + 'ref':slip.number + } + + #Setting Analysis Account for Basic Salary + if slip.employee_id.analytic_account: + line['analytic_account_id'] = slip.employee_id.analytic_account.id + + move_line_id = movel_pool.create(cr, uid, line) + line_ids += [move_line_id] + + line = { + 'move_id':move_id, + 'name': "To Basic Paysble Salary / " + slip.employee_id.name, + 'partner_id': partner_id, + 'date': slip.date, + 'account_id': slip.employee_id.employee_account.id, + 'debit': 0.0, + 'quantity':slip.working_days, + 'credit': slip.basic, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, line)] + + for line in slip.line_ids: + name = "[%s] - %s / %s" % (line.code, line.name, slip.employee_id.name) + amount = line.total + + if line.type == 'leaves': + continue + + rec = { + 'move_id':move_id, + 'name': name, + 'date': slip.date, + 'account_id': line.account_id.id, + 'debit': 0.0, + 'credit' : 0.0, + 'journal_id' : slip.journal_id.id, + 'period_id' :period_id, + 'analytic_account_id':False, + 'ref':slip.number, + 'quantity':1 + } + + #Setting Analysis Account for Salary Slip Lines + if line.analytic_account_id: + rec['analytic_account_id'] = line.analytic_account_id.id + else: + rec['analytic_account_id'] = slip.deg_id.account_id.id + + if line.type == 'allounce' or line.type == 'otherpay': + rec['debit'] = amount + if not partner.property_account_payable: + raise osv.except_osv(_('Integrity Error !'), _('Please Configure Partners Payable Account!!')) + ded_rec = { + 'move_id':move_id, + 'name': name, + 'partner_id': partner_id, + 'date': slip.date, + 'account_id': partner.property_account_payable.id, + 'debit': 0.0, + 'quantity':1, + 'credit' : amount, + 'journal_id' : slip.journal_id.id, + 'period_id' :period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, ded_rec)] + elif line.type == 'deduction' or line.type == 'otherdeduct': + if not partner.property_account_receivable: + raise osv.except_osv(_('Integrity Error !'), _('Please Configure Partners Receivable Account!!')) + rec['credit'] = amount + total_deduct += amount + ded_rec = { + 'move_id':move_id, + 'name': name, + 'partner_id': partner_id, + 'date': slip.date, + 'quantity':1, + 'account_id': partner.property_account_receivable.id, + 'debit': amount, + 'credit' : 0.0, + 'journal_id' : slip.journal_id.id, + 'period_id' :period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, ded_rec)] + + line_ids += [movel_pool.create(cr, uid, rec)] + + if line.company_contrib > 0: + company_contrib = line.company_contrib +# if line.category_id.amount_type == 'per': +# company_contrib = (amount * line.category_id.contribute_per) + + narration = """Company Contribution of %s Encode same as a Company Expanse @ %s""" % (line.name, company_contrib) + move = { + #'name': slip.name, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'date': slip.date, + 'ref':slip.number, + 'narration': narration + } + company_contrib_move_id = move_pool.create(cr, uid, move) + name = "[%s] - %s / %s - Company Contribution" % (line.code, line.name, slip.employee_id.name) + self.create_voucher(cr, uid, [slip.id], name, company_contrib_move_id) + + ded_deb = { + 'move_id':company_contrib_move_id, + 'name': name, + 'date': slip.date, + 'quantity':1, + 'account_id': line.category_id.account_id.id, + 'debit': company_contrib, + 'credit' : 0.0, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, ded_deb)] + ded_cre = { + 'move_id':company_contrib_move_id, + 'name': name, + 'date': slip.date, + 'quantity':1, + 'account_id': line.category_id.register_id.account_id.id, + 'debit': 0.0, + 'credit' : company_contrib, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, ded_cre)] + + if line.category_id.include_in_salary: + narration = """Company Contribution of %s Deducted from Employee %s""" % (line.name, company_contrib) + move = { + #'name': slip.name, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'date': slip.date, + 'ref':slip.number, + 'narration': narration + } + include_in_salary_move_id = move_pool.create(cr, uid, move) + self.create_voucher(cr, uid, [slip.id], narration, include_in_salary_move_id) + + total_deduct += company_contrib + ded_deb = { + 'move_id':include_in_salary_move_id, + 'name': name, + 'partner_id': partner_id, + 'date': slip.date, + 'quantity':1, + 'account_id': partner.property_account_receivable.id, + 'debit': company_contrib, + 'credit' : 0.0, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, ded_deb)] + ded_cre = { + 'move_id':include_in_salary_move_id, + 'name': name, + 'date': slip.date, + 'quantity':1, + 'account_id': line.category_id.account_id.id, + 'debit': 0.0, + 'credit' : company_contrib, + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, ded_cre)] + + #make an entry line to contribution register + if line.category_id.register_id: + ctr = { + 'register_id':line.category_id.register_id.id, + 'name':line.name, + 'code':line.code, + 'employee_id':slip.employee_id.id, + 'period_id':period_id, + 'emp_deduction':amount, + } + if line.category_id.contribute: + ctr['comp_deduction'] = amount + + company = 0.0 + employee = 0.0 + if line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'per': + new_amount = (amount * (line.category_id.contribute_per / (1+line.category_id.contribute_per))) + company = new_amount + employee = amount - company + + elif line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'fix': + company = line.category_id.contribute_per + employee = amount - company + + elif line.category_id.contribute and line.category_id.include_in_salary and line.category_id.amount_type == 'func': + company = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, line.slip_id.basic, context) + employee = amount + + elif line.category_id.contribute and not line.category_id.include_in_salary and line.category_id.amount_type == 'per': + company = amount * line.category_id.contribute_per + employee = amount + + elif line.category_id.contribute and not line.category_id.include_in_salary and line.category_id.amount_type == 'fix': + company = line.category_id.contribute_per + employee = amount + + elif line.category_id.contribute and not line.category_id.include_in_salary and line.category_id.amount_type == 'func': + company = self.pool.get('hr.allounce.deduction.categoty').execute_function(cr, uid, line.category_id.id, line.slip_id.basic, context) + employee = amount + + ctr['emp_deduction'] = employee + ctr['comp_deduction'] = company + + self.pool.get('hr.contibution.register.line').create(cr, uid, ctr) + + adj_move_id = False + if total_deduct > 0: + move = { + 'journal_id': slip.journal_id.id, + 'period_id': period_id, + 'date': slip.date, + 'ref':slip.number, + 'narration': 'Adjustment : %s' % (slip.name) + } + adj_move_id = move_pool.create(cr, uid, move) + name = "Adjustment Entry - %s" % (slip.employee_id.name) + self.create_voucher(cr, uid, [slip.id], name, adj_move_id) + + ded_rec = { + 'move_id':adj_move_id, + 'name': name, + 'partner_id': partner_id, + 'date': slip.date, + 'account_id': partner.property_account_receivable.id, + 'debit': 0.0, + 'quantity':1, + 'credit' : total_deduct, + 'journal_id' : slip.journal_id.id, + 'period_id' :period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, ded_rec)] + cre_rec = { + 'move_id':adj_move_id, + 'name': name, + 'partner_id': partner_id, + 'date': slip.date, + 'account_id': partner.property_account_payable.id, + 'debit': total_deduct, + 'quantity':1, + 'credit' : 0.0, + 'journal_id' : slip.journal_id.id, + 'period_id' :period_id, + 'ref':slip.number + } + line_ids += [movel_pool.create(cr, uid, cre_rec)] + + rec = { + 'state':'confirm', + 'move_line_ids':[(6, 0,line_ids)], + } + if not slip.period_id: + rec['period_id'] = period_id + + dates = prev_bounds(slip.date) + exp_ids = exp_pool.search(cr, uid, [('date_valid','>=',dates[0]), ('date_valid','<=',dates[1]), ('state','=','invoiced')]) + if exp_ids: + acc = self.pool.get('ir.property').get(cr, uid, 'property_account_expense_categ', 'product.category') + for exp in exp_pool.browse(cr, uid, exp_ids): + exp_res = { + 'name':exp.name, + 'amount_type':'fix', + 'type':'otherpay', + 'category_id':exp.category_id.id, + 'amount':exp.amount, + 'slip_id':slip.id, + 'expanse_id':exp.id, + 'account_id':acc + } + self.pool.get('hr.payslip.line').create(cr, uid, exp_res) + + self.write(cr, uid, [slip.id], rec) + + return True + + def compute_sheet(self, cr, uid, ids, context={}): + emp_pool = self.pool.get('hr.employee') + slip_pool = self.pool.get('hr.payslip') + func_pool = self.pool.get('hr.payroll.structure') + 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 + + 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() + + if not contract_id: + continue + + contract = self.pool.get('hr.contract').browse(cr, uid, contract_id['id']) + + sal_type = contract.wage_type_id.type + + function = contract.function.id + + lines = [] + if function: + func = func_pool.read(cr, uid, function, ['line_ids']) + lines = slip_line_pool.browse(cr, uid, func['line_ids']) + + old_slip_id = slip_line_pool.search(cr, uid, [('slip_id','=',slip.id)]) + slip_line_pool.unlink(cr, uid, old_slip_id) + + ad = [] + lns = {} + all_per = 0.0 + ded_per = 0.0 + all_fix = 0.0 + ded_fix = 0.0 + + obj = {'basic':0.0} + if contract.wage_type_id.type == 'gross': + obj['gross'] = contract.wage + if contract.wage_type_id.type == 'net': + obj['net'] = contract.wage + if contract.wage_type_id.type == 'basic': + obj['basic'] = contract.wage + + c_type = { + + } + for line in lines: + cd = line.code.lower() + obj[cd] = line.amount + + 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 + 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.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 == '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) + + 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 + elif line.type == 'deduction': + ded_per += amt + ded_fix += com_value + 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, + 'slip_id':slip.id, + 'employee_id':False, + 'function_id':False, + 'base':base + } + 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': + sal += ded_fix + sal -= all_fix + per = 0.0 + if sal_type == 'net': + per = (all_per - ded_per) + else: + per = all_per + if per <=0 : + per *= -1 + final = (per * 100) + 100 + basic = (sal * 100) / final + else: + basic = contract.wage + + 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 + + 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 + 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"))) + + updt = { + 'deg_id':function, + 'number':number, + 'basic': round(basic), + '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) + + return True + +hr_payslip() + +class account_move_link_slip(osv.osv): + ''' + Account Move Link to Pay Slip + ''' + _name = 'hr.payslip.account.move' + _description = 'Account Move Link to Pay Slip' + _columns = { + 'name':fields.char('Name', size=256, required=True, readonly=False), + 'move_id':fields.many2one('account.move', 'Expanse Entries', required=False, readonly=True), + 'slip_id':fields.many2one('hr.payslip', 'Pay Slip', required=False), + 'sequence': fields.integer('Sequence'), + } +account_move_link_slip() + +class line_condition(osv.osv): + ''' + Line Condition + ''' + _name = 'hr.payslip.line.condition' + _description = 'Line Condition' + + _columns = { + 'name':fields.char('Name', size=64, required=False, readonly=False), + 'date_start': fields.date('Start Date'), + 'date_end': fields.date('End Date'), + 'state':fields.selection([ + ('total','Override By'), + ('add','Add to Structure') + ],'Condition', select=True, readonly=False), + } +line_condition() + +class hr_payslip_line(osv.osv): + ''' + Payslip Line + ''' + _name = 'hr.payslip.line' + _description = 'Payslip Line' + +# def _calculate(self, cr, uid, ids, field_names, arg, context): +# res = {} +# obj = {} +# for line in self.browse(cr, uid, ids, context): +# obj['basic'] = line.slip_id.basic +# amount = 0.0 +# +# if line.amount_type == 'per' and line.base: +# print 'XXXXXXXXXXXXXXXX : ', obj +# amount = line.amount * eval(line.base, obj) +# elif line.amount_type in ('fix', 'func'): +# amount = line.amount + +# cd = line.category_id.code.lower() +# obj[cd] = amount +# print 'XXXXXXXXXXXXXXXXXX : ', cd +# +# res[line.id] = amount +# print 'XXXXXXXXXXXX : ', obj +# return res + + def onchange_category(self, cr, uid, ids, category_id): + seq = 0 + if category_id: + seq = self.pool.get('hr.allounce.deduction.categoty').browse(cr, uid, category_id).sequence + + return {'value':{'sequence':seq}} + + def onchange_amount(self, cr, uid, ids, amount, typ): + amt = amount + if typ and typ == 'per': + if int(amt) > 0: + amt = amt / 100 + return {'value':{'amount':amt}} + + _columns = { + 'slip_id':fields.many2one('hr.payslip', 'Pay Slip', required=False), + 'condition_id':fields.many2one('hr.payslip.line.condition', 'Condition', required=False), + 'function_id':fields.many2one('hr.payroll.structure', 'Function', required=False), + 'employee_id':fields.many2one('hr.employee', 'Employee', required=False), + 'name':fields.char('Name', size=256, required=True, readonly=False), + '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'), + ('deduction','Deduction'), + ('leaves','Leaves'), + ('advance','Advance'), + ('loan','Loan'), + ('installment','Loan Installment'), + ('otherpay','Other Payment'), + ('otherdeduct','Other Deduction'), + ],'Type', select=True, required=True), + 'category_id':fields.many2one('hr.allounce.deduction.categoty', 'Category', required=True), + 'amount_type':fields.selection([ + ('per','Percentage (%)'), + ('fix','Fixed Amount'), + ('func','Function Value'), + ],'Amount Type', select=True), + 'amount': fields.float('Amount / Percentage', digits=(16, 4)), + 'analytic_account_id':fields.many2one('account.analytic.account', 'Analytic Account', required=False), + 'account_id':fields.many2one('account.account', 'General Account', required=True), + 'total': fields.float('Sub Total', readonly=True, digits=(16, int(config['price_accuracy']))), + #'total': fields.function(_calculate, method=True, type='float', string='Label', store=True), + 'company_contrib': fields.float('Company Contribution', readonly=True, digits=(16, int(config['price_accuracy']))), + 'expanse_id': fields.many2one('hr.expense.expense', 'Expense'), + 'sequence': fields.integer('Sequence'), + 'note':fields.text('Description'), + 'line_ids':fields.one2many('hr.payslip.line.line', 'slipline_id', 'Calculations', required=False) + } + _order = 'sequence' + + def execute_function(self, cr, uid, id, value, context): + line_pool = self.pool.get('hr.payslip.line.line') + res = 0 + ids = line_pool.search(cr, uid, [('slipline_id','=',id), ('from_val','<=',value), ('to_val','>=',value)]) + + if not ids: + ids = line_pool.search(cr, uid, [('slipline_id','=',id), ('from_val','<=',value)]) + + if not ids: + return 0 + + res = line_pool.browse(cr, uid, ids)[-1].value + return res + +hr_payslip_line() + +class hr_payslip_line_line(osv.osv): + ''' + Function Line + ''' + _name = 'hr.payslip.line.line' + _description = 'Function Line' + _order = 'sequence' + + _columns = { + 'slipline_id':fields.many2one('hr.payslip.line', 'Slip Line', required=False), + 'name':fields.char('Name', size=64, required=False, readonly=False), + 'umo_id':fields.many2one('product.uom', 'Unite', required=False), + 'from_val': fields.float('From', digits=(16, int(config['price_accuracy']))), + 'to_val': fields.float('To', digits=(16, int(config['price_accuracy']))), + 'amount_type':fields.selection([ + ('fix','Fixed Amount'), + ],'Amount Type', select=True), + 'sequence':fields.integer('Sequence'), + 'value': fields.float('Value', digits=(16, int(config['price_accuracy']))), + } +hr_payslip_line_line() + +class hr_employee(osv.osv): + ''' + Employee + ''' + _inherit = 'hr.employee' + _description = 'Employee' + + _columns = { + 'pan_no':fields.char('PAN No', size=64, required=False, readonly=False), + 'esp_account':fields.char('EPS Account', size=64, required=False, readonly=False), + 'pf_account':fields.char('PF Account', size=64, required=False, readonly=False), + 'pg_joining': fields.date('PF Join Date'), + 'esi_account':fields.char('ESI Account', size=64, required=False, readonly=False), + 'hospital_id':fields.many2one('res.partner.address', 'ESI Hospital', required=False), + 'passport_id':fields.many2one('hr.passport', 'Passport', required=False), + 'otherid':fields.char('Other Id', size=64, required=False), + 'line_ids':fields.one2many('hr.payslip.line', 'employee_id', 'Salary Structure', required=False), + 'slip_ids':fields.one2many('hr.payslip', 'employee_id', 'Payslips', required=False, readonly=True), + 'property_bank_account': fields.property( + 'account.account', + type='many2one', + relation='account.account', + string="Bank Account", + method=True, + view_load=True, + help="Select Bank Account from where Salary Expanse will be Paid", + required=True), + 'salary_account':fields.property( + 'account.account', + type='many2one', + relation='account.account', + string="Salary Account", + method=True, + view_load=True, + help="Expanse account when Salary Expanse will be recorded", + required=True), + 'employee_account':fields.property( + 'account.account', + type='many2one', + relation='account.account', + string="Employee Account", + method=True, + view_load=True, + help="Employee Payable Account", + required=True), + 'analytic_account':fields.property( + 'account.analytic.account', + type='many2one', + relation='account.analytic.account', + string="Analytic Account", + method=True, + view_load=True, + help="Analytic Account for Salary Analysis", + required=False), + } +hr_employee() + diff --git a/addons/hr_payroll/hr_payroll_data.xml b/addons/hr_payroll/hr_payroll_data.xml new file mode 100644 index 00000000000..61bd7e624f8 --- /dev/null +++ b/addons/hr_payroll/hr_payroll_data.xml @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data> + <record id="HRA" model="hr.allounce.deduction.categoty"> + <field name="code">HRA</field> + <field name="type">allow</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="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="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="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="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="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="name">Traveling Allowance</field> + </record> + + <record id="DA" model="hr.allounce.deduction.categoty"> + <field name="code">DA</field> + <field name="type">allow</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="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="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="name">Welfare</field> + </record> + + <record id="TDS" model="hr.allounce.deduction.categoty"> + <field name="code">TDS</field> + <field name="type">deduct</field> + <field name="name">Tax Deduct at Source</field> + </record> + + <record id="ESI" model="hr.allounce.deduction.categoty"> + <field name="code">ESI</field> + <field name="type">deduct</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> + </data> +</openerp> diff --git a/addons/hr_payroll/hr_payroll_sequence.xml b/addons/hr_payroll/hr_payroll_sequence.xml new file mode 100644 index 00000000000..e1c27bbad27 --- /dev/null +++ b/addons/hr_payroll/hr_payroll_sequence.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data noupdate="1"> + <record id="seq_type_salary_slip" model="ir.sequence.type"> + <field name="name">Salary Slip</field> + <field name="code">salary.slip</field> + </record> + <record id="seq_salary_slip" model="ir.sequence"> + <field name="name">Salary Slip</field> + <field name="code">salary.slip</field> + <field name="prefix">SLIP/</field> + <field name="padding">3</field> + </record> + + <record id="seq_type_salary_register" model="ir.sequence.type"> + <field name="name">Salary Register</field> + <field name="code">salary.register</field> + </record> + <record id="seq_salary_register" model="ir.sequence"> + <field name="name">Salary Register</field> + <field name="code">salary.register</field> + <field name="prefix">REG/</field> + <field name="padding">3</field> + </record> + + <record id="seq_type_payment_advice" model="ir.sequence.type"> + <field name="name">Payment Advice</field> + <field name="code">payment.advice</field> + </record> + <record id="seq_payment_advice" model="ir.sequence"> + <field name="name">Payment Advice</field> + <field name="code">payment.advice</field> + <field name="prefix">PAY/</field> + <field name="padding">3</field> + </record> + </data> +</openerp> diff --git a/addons/hr_payroll/hr_payroll_view.xml b/addons/hr_payroll/hr_payroll_view.xml new file mode 100644 index 00000000000..30e793df2a6 --- /dev/null +++ b/addons/hr_payroll/hr_payroll_view.xml @@ -0,0 +1,1015 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data> + <!-- Root Menus --> + <menuitem id="menu_hr_root_payroll" parent="hr.menu_hr_root" name="Payroll"/> + <menuitem id="payroll_configure" parent="hr.menu_hr_configuration" name="Payroll"/> + + <!-- Passport Views --> + <record id="hr_passport_form" model="ir.ui.view"> + <field name="name">hr.passport.form</field> + <field name="model">hr.passport</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Passport"> + <group col="6" colspan="4"> + <field name="name" select="1" colspan="4"/> + <field name="employee_id" select="1"/> + </group> + <group col="2" colspan="2"> + <separator string="Country & Address" colspan="4"/> + <field name="country_id" select="1"/> + <field name="address_id" select="1"/> + </group> + <group col="2" colspan="2"> + <separator string="Valid From" colspan="2"/> + <field name="date_issue" select="1"/> + <field name="date_expire" select="1"/> + </group> + <notebook colspan="4"> + <page string="Description"> + <separator string="Description" colspan="2"/> + <field name="note" colspan="4" nolabel="1"/> + </page> + <page string="Contracts"> + <field name="contracts_ids" colspan="4" nolabel="1"/> + </page> + </notebook> + </form> + </field> + </record> + <record id="hr_passport_tree" model="ir.ui.view"> + <field name="name">hr.passport.tree</field> + <field name="model">hr.passport</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Passport"> + <field name="name" select="1"/> + <field name="employee_id" select="1"/> + <field name="country_id" select="1"/> + <field name="date_expire" select="1"/> + <field name="date_expire" select="1"/> + </tree> + </field> + </record> + <record id="action_hr_passport_tree" model="ir.actions.act_window"> + <field name="name">All Passports</field> + <field name="res_model">hr.passport</field> + <field name="view_type">form</field> + <field name="view_id" ref="hr_passport_tree"/> + </record> + <menuitem id="passport_configure" parent="hr.menu_hr_configuration" name="Passport"/> + <menuitem + id="menu_action_hr_passport_tree" + action="action_hr_passport_tree" + parent="passport_configure" + /> + <!-- End Passport Views --> + + <!-- Employee View --> + <record id="hr_contract.hr_hr_employee_view_form2" model="ir.ui.view"> + <field name="name">hr.hr.employee.view.form2</field> + <field name="model">hr.employee</field> + <field name="inherit_id" ref="hr.view_employee_form"/> + <field name="arch" type="xml"> + <notebook position="inside"> + <page string="Contracts"> + <field colspan="4" mode="form,tree" name="contract_ids" nolabel="1"> + <tree string="Contracts"> + <field name="name"/> + <field name="job_id"/> + <field name="date_start"/> + <field name="date_end"/> + <field name="working_hours"/> + <field name="wage_type_id"/> + <field name="wage"/> + </tree> + <form string="Contract"> + <group colspan="4" col="6"> + <field name="name" select="1"/> + <field name="job_id"/> + <newline/> + <field name="wage"/> + <field name="wage_type_id" widget="selection"/> + <field name="type_id" widget="selection"/> + </group> + <notebook colspan="4"> + <page string="Main Data"> + <group col="2" colspan="2"> + <separator colspan="2" string="Duration"/> + <field name="date_start" select="1"/> + <field name="date_end" select="1"/> + <field name="working_hours"/> + </group> + <group col="2" colspan="2"> + <separator colspan="2" string="Advantages"/> + <field name="struct_id" select="1"/> + <field name="advantages_net"/> + <field name="advantages_gross"/> + <field name="advantages" nolabel="1" colspan="2"/> + </group> + </page> + <page string="Work Permit"> + <group col="2" colspan="2"> + <separator colspan="2" string="Passport"/> + <field name="passport_id"/> + </group> + <group col="2" colspan="2"> + <separator colspan="2" string="Valid for"/> + <field name="visa_no"/> + <field name="permit_no"/> + <field name="visa_expire"/> + </group> + </page> + </notebook> + <separator colspan="4" string="Notes"/> + <field colspan="4" name="notes" nolabel="1"/> + </form> + </field> + </page> + <page string="Miscelleanous"> + <group colspan="2" col="2"> + <separator string="Personal Info" colspan="2"/> + <field name="pan_no" select="1"/> + <field name="bank_account"/> + <field name="place_of_birth"/> + <field name="children"/> + </group> + <group colspan="2" col="2"> + <separator string="Job Info" colspan="2"/> + <field name="manager" select="1"/> + <field name="vehicle" select="1"/> + <field name="vehicle_distance" select="1"/> + <field name="medic_exam" select="1"/> + </group> + <group col="2" colspan="2"> + <separator colspan="2" string="ESI Information"/> + <field name="esi_account" string="Account"/> + <field name="hospital_id" string="Hospital"/> + <field name="medic_exam" select="1" string="Medical Examination"/> + <field name="esp_account" select="1"/> + </group> + <group col="2" colspan="2"> + <separator colspan="2" string="Providend Fund"/> + <field name="pf_account" string="Account"/> + <field name="pg_joining" string="Join Date"/> + </group> + </page> + <page string="Salary Structure"> + <field name="line_ids" nolabel="1" colspan="4" string="Salary Structure"> + <tree string="Salary Structure" editable="bottom"> + <field name="sequence"/> + <field name="analytic_account_id"/> + <field name="name"/> + <field name="code"/> + <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"/> + </tree> + </field> + </page> + <page string="Accounting"> + <field name="property_bank_account"/> + <field name="salary_account"/> + <field name="employee_account"/> + <field name="analytic_account"/> + <field name="slip_ids" colspan="4" nolabel="1"/> + </page> + </notebook> + </field> + </record> + + <record id="view_employee_passport_form" model="ir.ui.view"> + <field name="name">hr.employee.passport.form</field> + <field name="model">hr.employee</field> + <field name="type">form</field> + <field name="inherit_id" ref="hr.view_employee_form"/> + <field name="arch" type="xml"> + <field name="otherid" position="after"> + <field name="passport_id"/> + </field> + </field> + </record> + <!-- End Employee View --> + + <!-- Contract View --> + <record id="hr_contract.hr_contract_view_form" model="ir.ui.view"> + <field name="name">hr.contract.view.form</field> + <field name="model">hr.contract</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Contract"> + <group colspan="4" col="6"> + <field name="name" select="1"/> + <field name="employee_id" select="1"/> + <field name="job_id"/> + <field name="wage"/> + <field name="wage_type_id" widget="selection"/> + <field name="type_id" widget="selection"/> + </group> + <notebook colspan="4"> + <page string="Main Data"> + <group col="2" colspan="2"> + <separator colspan="2" string="Duration"/> + <field name="date_start" select="1"/> + <field name="date_end" select="1"/> + <field name="working_hours"/> + </group> + <group col="2" colspan="2"> + <separator colspan="2" string="Advantages"/> + <field name="struct_id" select="1"/> + <field name="advantages_net"/> + <field name="advantages_gross"/> + <field name="advantages" nolabel="1" colspan="2"/> + </group> + </page> + <page string="Work Permit"> + <group col="2" colspan="2"> + <separator colspan="2" string="Passport"/> + <field name="passport_id"/> + </group> + <group col="2" colspan="2"> + <separator colspan="2" string="Valid for"/> + <field name="visa_no"/> + <field name="permit_no"/> + <field name="visa_expire"/> + </group> + </page> + </notebook> + <separator colspan="4" string="Notes"/> + <field colspan="4" name="notes" nolabel="1"/> + </form> + </field> + </record> + <!-- End Contract View--> + + <!-- + <record id="hr_hr_employee_view_form3" model="ir.ui.view"> + <field name="name">hr.hr.employee.view.form3</field> + <field name="model">hr.employee</field> + <field name="inherit_id" ref="hr_contract.hr_hr_employee_view_form2"/> + <field name="arch" type="xml"> + <field name="contract_ids" position="replace"> + <field colspan="4" name="contract_ids" nolabel="1"> + <tree string="Contracts"> + <field name="name"/> + <field name="function"/> + <field name="date_start"/> + <field name="date_end"/> + <field name="working_hours_per_day"/> + <field name="wage_type_id"/> + <field name="wage"/> + </tree> + <form string="Contract"> + <separator colspan="4" string="Generalities"/> + <field colspan="4" name="name" select="1"/> + <newline/> + <separator colspan="4" string="Contract Duration"/> + <field name="function"/> + <field name="working_hours_per_day"/> + <field name="working_days_per_week"/> + <newline/> + <field name="date_start" select="1"/> + <field name="date_end" select="1"/> + <separator colspan="4" string="Salary"/> + <field name="wage_type_id"/> + <field name="wage"/> + <separator colspan="4" string="Notes"/> + <field colspan="4" name="notes" nolabel="1"/> + <separator colspan="4" string="Passport and Visa"/> + <field name="permit_no"/> + <field name="passport_id"/> + <field name="visa_no"/> + <field name="visa_expire"/> + </form> + </field> + </field> + </field> + </record> + + <record id="hr_hr_employee_view_form4" model="ir.ui.view"> + <field name="name">hr.hr.employee.view.form4</field> + <field name="model">hr.employee</field> + <field name="inherit_id" ref="hr_hr_employee_view_form3"/> + <field name="arch" type="xml"> + <page string="Miscelleanous" position="replace"> + <page string="Miscelleanous / Statutory" position="replace"> + <group col="2" colspan="2"> + <separator colspan="2" string="Miscelleanous"/> + <field name="manager" select="1"/> + <field name="medic_exam" select="1"/> + <field name="audiens_num"/> + <field name="place_of_birth"/> + <field name="marital_status"/> + <field name="children"/> + </group> + <group col="2" colspan="2"> + <separator colspan="2" string="Statutory Information"/> + <field name="pan_no" select="1"/> + <field name="esp_account" select="1"/> + <field name="pf_account"/> + <field name="pg_joining"/> + <field name="esi_account"/> + <field name="hospital_id"/> + </group> + <separator colspan="4" string="Special Allowance and Deductions for Employee"/> + <field name="line_ids" nolabel="1" colspan="4"> + <tree string="Salary Structure" editable="bottom"> + <field name="sequence"/> + <field name="analytic_account_id"/> + <field name="name"/> + <field name="code"/> + <field name="amount_type"/> + <field name="amount" on_change="onchange_amount(amount, amount_type)"/> + <field name="condition_id"> + <form string="Condition"> + <field name="name"/> + <field name="date_start"/> + <field name="date_end"/> + <field name="state"/> + </form> + </field> + <field name="type"/> + <field name="category_id" on_change="onchange_category(category_id)"/> + <field name="account_id"/> + </tree> + </field> + </page> + </page> + </field> + </record> + + <record id="hr_hr_employee_view_form5" model="ir.ui.view"> + <field name="name">hr.hr.employee.view.form5</field> + <field name="model">hr.employee</field> + <field name="inherit_id" ref="hr_hr_employee_view_form4"/> + <field name="arch" type="xml"> + <page string="Miscelleanous / Statutory" position="after"> + <page string="Accounting Information"> + <field name="property_bank_account"/> + <field name="salary_account"/> + <field name="employee_account"/> + <field name="analytic_account"/> + <field name="slip_ids" colspan="4" nolabel="1"/> + </page> + </page> + </field> + </record> + + <record id="view_employee_form5" model="ir.ui.view"> + <field name="name">hr.employee.form5</field> + <field name="model">hr.employee</field> + <field name="type">form</field> + <field name="inherit_id" ref="hr.view_employee_form"/> + <field name="arch" type="xml"> + <field name="otherid" position="after"> + <field name="passport_id"/> + </field> + </field> + </record> + --> + <!-- + Holiday Status inheritancy + --> + <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> + <field name="inherit_id" ref="hr_holidays.edit_holiday_status_form"/> + <field name="type">form</field> + <field name="arch" type="xml"> + <field name="color_name" position="after"> + <group col="2" colspan="2"> + <separator colspan="4" string="Payroll Accounting"/> + <field name="company_id" select="2"/> + <field name="code"/> + <field name="analytic_account_id"/> + <field name="account_id"/> + </group> + <group col="2" colspan="2"> + <separator colspan="4" string="Payroll Configurtion"/> + <field name="type"/> + <field name="head_id"/> + </group> + </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> + + <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="sequence"/> + <field name="analytic_account_id"/> + <field name="name"/> + <field name="code"/> + <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"/> + </tree> + </field> + </record> + <record id="view_hr_payslip_line_form" model="ir.ui.view"> + <field name="name">hr.payslip.line.form</field> + <field name="model">hr.payslip.line</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Payslip Line"> + <group col="6" colspan="4"> + <field name="name" colspan="4" select="1"/> + <field name="code" select="1"/> + <field name="slip_id" select="1"/> + <field name="employee_id"/> + <field name="function_id"/> + </group> + <group col="2" colspan="2"> + <separator colspan="4" string="Calculations"/> + <field name="category_id" on_change="onchange_category(category_id)"/> + <field name="type"/> + <field name="amount_type"/> + <field name="amount" on_change="onchange_amount(amount, amount_type)" attrs="{'readonly':[('amount_type','=','func')]}"/> + <field name="sequence"/> + </group> + <group col="2" colspan="2"> + <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> + <notebook colspan="4"> + <page string="Function"> + <field name="line_ids" colspan="4" nolabel="1" attrs="{'readonly':[('amount_type','!=','func')]}"> + <tree string="Function Arguments" editable="bottom"> + <field name="name"/> + <field name="sequence"/> + <field name="from_val"/> + <field name="to_val"/> + <field name="amount_type"/> + <field name="value"/> + </tree> + </field> + </page> + <page string="Description"> + <separator colspan="4" string="Description"/> + <field name="note" colspan="4" nolabel="1"/> + </page> + </notebook> + </form> + </field> + </record> + + <record id="view_hr_payslip_tree" model="ir.ui.view"> + <field name="name">hr.payslip.tree</field> + <field name="model">hr.payslip</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Payslip"> + <field name="number"/> + <field name="employee_id"/> + <field name="name"/> + <field name="date"/> + <field name="grows"/> + <field name="net"/> + <field name="state"/> + </tree> + </field> + </record> + + <record id="view_hr_payslip_form" model="ir.ui.view"> + <field name="name">hr.payslip.form</field> + <field name="model">hr.payslip</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Payslip"> + <group col="6" colspan="4"> + <field name="employee_id"/> + <field name="name"/> + <field name="number" select="1"/> + <field name="journal_id"/> + <field name="bank_journal_id" domain="[('type','=','cash')]"/> + <field name="date"/> + </group> + <notebook colspan="4"> + <page string="Salary Detail"> + <field name="line_ids" colspan="4" nolabel="1"/> + <group col="6" colspan="4"> + <field name="working_days"/> + <field name="holiday_days"/> + <field name="worked_days"/> + + <field name="basic_before_leaves"/> + <field name="leaves"/> + <field name="basic"/> + + <field name="allounce"/> + <field name="deduction"/> + <field name="other_pay"/> + + <field name="grows"/> + <field name="net"/> + <field name="total_pay"/> + </group> + </page> + <page string="Accounting Details"> + <group col="2" colspan="3"> + <separator colspan="4" string="Accounting Informations"/> + <field name="move_ids" colspan="2" nolabel="1" readonly="1"> + <tree string="Accounting Vouchers"> + <field name="sequence"/> + <field name="name"/> + <field name="move_id"/> + </tree> + <form string="Accounting Vouchers"> + <field name="sequence"/> + <field name="name"/> + <field name="move_id"/> + </form> + </field> + </group> + <group col="2" colspan="1"> + <separator colspan="4" string="Other Informations"/> + <field name="paid" readonly="1"/> + <field name="company_id"/> + <field name="register_id"/> + <field name="deg_id"/> + <field name="contract_id" domain="[('employee_id','=',employee_id)]"/> + </group> + <separator colspan="4" string="Description"/> + <field name="note" colspan="4" nolabel="1"/> + </page> + <page string="Account Lines"> + <field name="move_line_ids" colspan="4" nolabel="1"/> + </page> + <page string="Payment Lines"> + <field name="move_payment_ids" colspan="4" nolabel="1"/> + </page> + </notebook> + <group col="9" colspan="4"> + <field name="state"/> + <button string="Compute Sheet" name="compute_sheet" states="new" /> + <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"/> + <button string="Pay Salary" name="process_sheet" states="confirm"/> + <button string="Cancel" name="cancel_sheet" states="draft,hr_check,accont_check,confirm"/> + <button string="Set to Draft" name="set_to_draft" states="cancel"/> + </group> + </form> + </field> + </record> + <record id="action_view_hr_payslip_form" model="ir.actions.act_window"> + <field name="name">Employee Payslip</field> + <field name="res_model">hr.payslip</field> + <field name="view_type">form</field> + <field name="view_id" ref="view_hr_payslip_tree"/> + </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">Employee Functions</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" + /> + + <record id="hr_allounce_deduction_categoty_form" model="ir.ui.view"> + <field name="name">hr.allounce.deduction.categoty.form</field> + <field name="model">hr.allounce.deduction.categoty</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Allowance / Deduction Category"> + <group col="6" colspan="6"> + <field name="name" select="1"/> + <field name="code" select="1"/> + <field name="type" select="1"/> + <group col="2" colspan="4"> + <separator colspan="4" string="Dynamic Computation"/> + <field name="base"/> + <field name="condition"/> + <field name="sequence"/> + </group> + <group col="2" colspan="2"> + <separator colspan="2" string="Contributions Configuration"/> + <field name="contribute"/> + <field name="amount_type" attrs="{'required': [('contribute','=',True)]}"/> + <field name="contribute_per" attrs="{'required': [('contribute','=',True)], 'readonly':[(('amount_type','=','func'))]}"/> + <field name="register_id" attrs="{'required': [('contribute','=',True)]}"/> + <field name="include_in_salary" /> + <field name="account_id" attrs="{'required': [('contribute','=',True), ('include_in_salary','=',True)]}"/> + </group> + </group> + <notebook colspan="4"> + <page string="Function" attrs="{'invisible': [('amount_type','!=','func')]}"> + <field name="line_ids" colspan="4" nolabel="1"> + <tree string="Function Arguments" editable="bottom"> + <field name="name"/> + <field name="sequence"/> + <field name="from_val"/> + <field name="to_val"/> + <field name="amount_type"/> + <field name="value"/> + </tree> + </field> + </page> + <page string="Description"> + <separator colspan="4" string="Description"/> + <field name="note" colspan="4" nolabel="1"/> + </page> + </notebook> + </form> + </field> + </record> + <record id="hr_allounce_deduction_categoty_tree" model="ir.ui.view"> + <field name="name">hr.allounce.deduction.categoty.tree</field> + <field name="model">hr.allounce.deduction.categoty</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Allowance / Deduction Category"> + <field name="name"/> + <field name="code"/> + <field name="type"/> + </tree> + </field> + </record> + <record id="hr_allounce_deduction_tree" model="ir.actions.act_window"> + <field name="name">Allowance/Deduction 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"/> + </record> + <menuitem + id="menu_hr_allounce_deduction_tree" + action="hr_allounce_deduction_tree" + parent="payroll_configure" + /> + + <!-- Contract Form--> +<!-- <record id="hr_contract.hr_contract_view_form" model="ir.ui.view">--> +<!-- <field name="name">hr.contract.view.form</field>--> +<!-- <field name="model">hr.contract</field>--> +<!-- <field name="type">form</field>--> +<!-- <field name="arch" type="xml">--> +<!-- <form string="Contract">--> +<!-- <field name="employee_id"/>--> +<!-- <separator colspan="4" string="General Information"/>--> +<!-- <field colspan="4" name="name" select="1"/>--> +<!-- <newline/>--> +<!-- <separator colspan="4" string="Contract Duration"/>--> +<!-- <field name="function"/>--> +<!-- <field name="working_hours_per_day"/>--> +<!-- <field name="working_days_per_week"/>--> +<!-- <field name="date_start" select="1"/>--> +<!-- <field name="date_end" select="1"/>--> +<!-- --> +<!-- <separator colspan="4" string="Salary"/>--> +<!-- <field name="wage_type_id"/>--> +<!-- <field name="wage"/>--> +<!-- --> +<!-- <separator colspan="4" string="Notes"/>--> +<!-- <field colspan="4" name="notes" nolabel="1"/>--> +<!-- --> +<!-- <separator colspan="4" string="Passport and Visa"/>--> +<!-- <field name="permit_no"/>--> +<!-- <field name="passport_id"/>--> +<!-- <field name="visa_no"/>--> +<!-- <field name="visa_expire"/>--> +<!-- </form>--> +<!-- </field>--> +<!-- </record>--> +<!-- <record id="action_hr_contract" model="ir.actions.act_window">--> +<!-- <field name="name">Employee Contract</field>--> +<!-- <field name="res_model">hr.contract</field>--> +<!-- <field name="view_type">form</field>--> +<!-- <field name="view_mode">form,tree</field>--> +<!-- </record>--> +<!-- <menuitem --> +<!-- action="action_hr_contract" --> +<!-- name="Employee Contract" --> +<!-- id="hr_menu_contract" --> +<!-- parent="payroll_configure"--> +<!-- />--> + + <record id="view_hr_bank_advice_tree" model="ir.ui.view"> + <field name="name">hr.payroll.advice.tree</field> + <field name="model">hr.payroll.advice</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Bank Advice"> + <field name="name" select="1"/> + <field name="date" select="1"/> + <field name="number" select="1"/> + <field name="company_id"/> + </tree> + </field> + </record> + + <record id="view_hr_bank_advice_form" model="ir.ui.view"> + <field name="name">hr.payroll.advice.form</field> + <field name="model">hr.payroll.advice</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Bank Advice"> + <group col="6" colspan="4"> + <field name="name" colspan="4" select="1"/> + <field name="account_id" select="1"/> + <newline/> + <field name="date" select="1"/> + <field name="number" select="1"/> + <field name="register_id"/> + </group> + <notebook colspan="4"> + <page string="Paymeny Lines"> + <field name="line_ids" colspan="4" nolabel="1"> + <tree string="Payment Lines" editable="bottom"> + <field name="employee_id" on_change="onchange_employee_id(parent.date, employee_id)"/> + <field name="name"/> + <field name="amount"/> + <field name="bysal"/> + <field name="flag"/> + </tree> + </field> + <field name="company_id"/> + <field name="chaque_nos"/> + </page> + <page string="Letter Content"> + <separator colspan="4" string="Letter Details"/> + <field name="note" colspan="4" nolabel="1"/> + </page> + </notebook> + <group col="6" colspan="6"> + <field name="state"/> + <button name="confirm_sheet" string="Confirm Sheet" states="draft" type="object"/> + <button name="set_to_draft" string="Set to Draft" states="cancel,confirm" type="object"/> + <button name="cancel_sheet" string="Cancel Sheet" states="draft" type="object"/> + </group> + </form> + </field> + </record> + <record id="action_view_hr_bank_advice_tree" model="ir.actions.act_window"> + <field name="name">Payment Advice</field> + <field name="res_model">hr.payroll.advice</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + <field name="view_id" ref="view_hr_bank_advice_tree"/> + </record> + <menuitem + action="action_view_hr_bank_advice_tree" + id="hr_menu_payment_advice" + parent="menu_hr_root_payroll" + /> + + <record id="view_hr_payroll_register_tree" model="ir.ui.view"> + <field name="name">hr.payroll.register.tree</field> + <field name="model">hr.payroll.register</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Payroll Register"> + <field name="number"/> + <field name="name"/> + <field name="date"/> + <field name="journal_id"/> + <field name="bank_journal_id"/> + <field name="state"/> + </tree> + </field> + </record> + <record id="view_hr_payroll_register_form" model="ir.ui.view"> + <field name="name">hr.payroll.register.form</field> + <field name="model">hr.payroll.register</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Payroll Register"> + <group col="6" colspan="4"> + <field name="name" select="1"/> + <field name="date" select="1"/> + <field name="number" select="1"/> + <field name="journal_id"/> + <field name="bank_journal_id"/> + <field name="active"/> + </group> + <notebook colspan="4"> + <page string="Payslips"> + <field name="line_ids" colspan="4" nolabel="1"> + <tree string="Payslip"> + <field name="number"/> + <field name="employee_id"/> + <field name="name"/> + <field name="date"/> + <field name="basic"/> + <field name="allounce"/> + <field name="grows"/> + <field name="deduction"/> + <field name="net"/> + <field name="state"/> + </tree> + </field> + <group col="2" colspan="2"> + <separator colspan="4" string="Allowance / Deduction"/> + <field name="allounce"/> + <field name="deduction"/> + </group> + <group col="2" colspan="2"> + <separator colspan="4" string="Salary Information"/> + <field name="grows"/> + <field name="net"/> + </group> + </page> + </notebook> + <group col="8" colspan="4"> + <field name="state"/> + <button string="Compute" name="compute_sheet" states="new" type="object"/> + <button string="Verify Sheet" name="verify_sheet" states="draft" type="object"/> + <button string="Complete HR Checking" name="verify_twice_sheet" type="object" states="hr_check"/> + <button string="Complete Accountant Checking" name="final_verify_sheet" states="accont_check" type="object"/> + <button string="Pay Salary" name="process_sheet" states="confirm" type="object"/> + <button string="Cancel" name="cancel_sheet" states="draft,hr_check,accont_check,confirm" type="object"/> + <button string="Set to Draft" name="set_to_draft" states="cancel" type="object"/> + </group> + </form> + </field> + </record> + <record id="action_view_hr_payroll_register_form" model="ir.actions.act_window"> + <field name="name">Payroll Register</field> + <field name="res_model">hr.payroll.register</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + </record> + <menuitem + action="action_view_hr_payroll_register_form" + id="hr_menu_payroll_register" + parent="menu_hr_root_payroll" + /> + + <!-- + Contribution Register + --> + <record id="hr_contibution_register_tree" model="ir.ui.view"> + <field name="name">hr.contibution.register.tree</field> + <field name="model">hr.contibution.register</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="Contribution Registers"> + <field name="name" select="1"/> + <field name="company_id" select="1"/> + <field name="monthly_total_by_emp"/> + <field name="monthly_total_by_comp"/> + <field name="yearly_total_by_emp"/> + <field name="yearly_total_by_comp"/> + </tree> + </field> + </record> + <record id="hr_contibution_register_form" model="ir.ui.view"> + <field name="name">hr.contibution.register.form</field> + <field name="model">hr.contibution.register</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Contribution"> + <field name="name" select="1"/> + <field name="account_id"/> + <field name="analytic_account_id"/> + <field name="company_id" select="1"/> + <notebook colspan="4"> + <page string="Contribution Lines"> + <field colspan="4" name="register_line_ids" nolabel="1" select="1"> + <tree string="Register Lines" editable="top"> + <field name="code"/> + <field name="employee_id"/> + <field name="period_id"/> + <field name="emp_deduction"/> + <field name="comp_deduction"/> + <field name="total"/> + </tree> + </field> + </page> + <page string="Description"> + <separator colspan="4" string="Description"/> + <field name="note" colspan="4" nolabel="1"/> + </page> + </notebook> + <group col="2" colspan="2"> + <separator colspan="4" string="Year"/> + <field name="yearly_total_by_emp"/> + <field name="yearly_total_by_comp"/> + </group> + <group col="2" colspan="2"> + <separator colspan="2" string="Month"/> + <field name="monthly_total_by_emp"/> + <field name="monthly_total_by_comp"/> + </group> + </form> + </field> + </record> + <record id="action_contibution_register_form" model="ir.actions.act_window"> + <field name="name">Contibution Register</field> + <field name="res_model">hr.contibution.register</field> + <field name="view_type">form</field> + <field name="view_id" ref="hr_contibution_register_tree"/> + </record> + <menuitem + id="menu_action_hr_contibution_register_form" + action="action_contibution_register_form" + parent="payroll_configure" + /> + <record id="hr_contibution_register_line_form" model="ir.ui.view"> + <field name="name">hr.contibution.register.line.form</field> + <field name="model">hr.contibution.register.line</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="Contribution"> + <field name="name"/> + <field name="code"/> + <field name="employee_id"/> + <field name="period_id"/> + <field name="emp_deduction"/> + <field name="comp_deduction"/> + <field name="total"/> + </form> + </field> + </record> + + <record id="hr_payslip_line_condition_tree" model="ir.ui.view"> + <field name="name">hr.payslip.line.condition.tree</field> + <field name="model">hr.payslip.line.condition</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <form string="Condition"> + <field name="name"/> + <field name="date_start"/> + <field name="date_end"/> + <field name="state"/> + </form> + </field> + </record> + </data> +</openerp> + diff --git a/addons/hr_payroll/hr_payroll_wizard.xml b/addons/hr_payroll/hr_payroll_wizard.xml new file mode 100644 index 00000000000..acc1646a8b5 --- /dev/null +++ b/addons/hr_payroll/hr_payroll_wizard.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" ?> +<openerp> + <data> + <menuitem id="menu_hr_payroll_reporting" parent="hr.menu_hr_reporting" name="Payroll"/> + <wizard id="wizard_print_year_salary" + menu="False" + model="hr.payslip" + name="wizard.year.salary" + string="Year Salary Detail"/> + <menuitem id="menu_wizard_print_year_salary" + icon="STOCK_PRINT" + action="wizard_print_year_salary" + parent="menu_hr_payroll_reporting" + name="Employee Year Salary" + type="wizard"/> + + <wizard id="wizard_print_employees_detail" + menu="False" + model="hr.payslip" + name="wizard.employees.detail" + string="Employees Salary Detail"/> + <menuitem id="menu_wizard_print_employees_detail" + icon="STOCK_PRINT" + action="wizard_print_employees_detail" + parent="menu_hr_payroll_reporting" + name="Employees Salary Detail" + type="wizard"/> + + <wizard id="wizard_payroll_analysis" + menu="False" + model="account.analytic.account" + name="payroll.analysis" + string="Create Analytic Structure"/> + <menuitem id="menu_wizard_payroll_analysis" + action="wizard_payroll_analysis" + parent="payroll_configure" + name="Create Analytic Structure" + type="wizard"/> + </data> +</openerp> diff --git a/addons/hr_payroll/hr_payroll_workflow.xml b/addons/hr_payroll/hr_payroll_workflow.xml new file mode 100644 index 00000000000..0e5ccfe091f --- /dev/null +++ b/addons/hr_payroll/hr_payroll_workflow.xml @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data> + <record id="wkf" model="workflow"> + <field name="name">hr.payslip.basic</field> + <field name="osv">hr.payslip</field> + <field name="on_create">True</field> + </record> + + <record id="act_new" model="workflow.activity"> + <field name="wkf_id" ref="wkf"/> + <field name="flow_start">True</field> + <field name="name">new</field> + </record> + + <record id="act_draft" model="workflow.activity"> + <field name="wkf_id" ref="wkf"/> + <field name="name">draft</field> + <field name="action">compute_sheet()</field> + <field name="split_mode">OR</field> + <field name="kind">function</field> + </record> + + <record id="act_hr_check" model="workflow.activity"> + <field name="wkf_id" ref="wkf"/> + <field name="name">hr_check</field> + <field name="action">hr_check_sheet()</field> + <field name="kind">function</field> + </record> + + <record id="act_account_check" model="workflow.activity"> + <field name="wkf_id" ref="wkf"/> + <field name="name">account_check</field> + <field name="action">account_check_sheet()</field> + <field name="kind">function</field> + </record> + + <record id="act_confirm" model="workflow.activity"> + <field name="wkf_id" ref="wkf"/> + <field name="name">confirm</field> + <field name="action">verify_sheet()</field> + <field name="kind">function</field> + </record> + + <record id="act_cancel" model="workflow.activity"> + <field name="wkf_id" ref="wkf"/> + <field name="name">cancel</field> + <field name="action">cancel_sheet()</field> + <field name="kind">function</field> + </record> + + <record id="act_done" model="workflow.activity"> + <field name="wkf_id" ref="wkf"/> + <field name="name">done</field> + <field name="action">process_sheet()</field> + <field name="kind">function</field> + <field name="flow_stop">True</field> + </record> + + <record id="t1" model="workflow.transition"> + <field name="act_from" ref="act_new"/> + <field name="act_to" ref="act_draft"/> + <field name="signal">compute_sheet</field> + </record> + + <record id="t2" model="workflow.transition"> + <field name="act_from" ref="act_draft"/> + <field name="act_to" ref="act_hr_check"/> + <field name="condition">basic>=10000</field> + <field name="signal">verify_sheet</field> + </record> + + <record id="t3" model="workflow.transition"> + <field name="act_from" ref="act_hr_check"/> + <field name="act_to" ref="act_account_check"/> + <field name="signal">verify_twice_sheet</field> + </record> + + <record id="t4" model="workflow.transition"> + <field name="act_from" ref="act_draft"/> + <field name="act_to" ref="act_account_check"/> + <field name="condition">basic<10000</field> + <field name="signal">verify_sheet</field> + </record> + + <record id="t5" model="workflow.transition"> + <field name="act_from" ref="act_account_check"/> + <field name="act_to" ref="act_confirm"/> + <field name="signal">final_verify_sheet</field> + </record> + + <record id="t6" model="workflow.transition"> + <field name="act_from" ref="act_confirm"/> + <field name="act_to" ref="act_done"/> + <field name="signal">process_sheet</field> + </record> + + <record id="t7" model="workflow.transition"> + <field name="act_from" ref="act_draft"/> + <field name="act_to" ref="act_cancel"/> + <field name="signal">cancel_sheet</field> + </record> + + <record id="t8" model="workflow.transition"> + <field name="act_from" ref="act_hr_check"/> + <field name="act_to" ref="act_cancel"/> + <field name="signal">cancel_sheet</field> + </record> + + <record id="t9" model="workflow.transition"> + <field name="act_from" ref="act_account_check"/> + <field name="act_to" ref="act_cancel"/> + <field name="signal">cancel_sheet</field> + </record> + + <record id="t10" model="workflow.transition"> + <field name="act_from" ref="act_confirm"/> + <field name="act_to" ref="act_cancel"/> + <field name="signal">cancel_sheet</field> + </record> + + <record id="t11" model="workflow.transition"> + <field name="act_from" ref="act_done"/> + <field name="act_to" ref="act_cancel"/> + <field name="signal">cancel_sheet</field> + </record> + + <record id="t12" model="workflow.transition"> + <field name="act_from" ref="act_cancel"/> + <field name="act_to" ref="act_draft"/> + <field name="signal">set_to_draft</field> + </record> + </data> +</openerp> diff --git a/addons/hr_payroll/i18n/fr_BE.po b/addons/hr_payroll/i18n/fr_BE.po new file mode 100644 index 00000000000..a4466114f51 --- /dev/null +++ b/addons/hr_payroll/i18n/fr_BE.po @@ -0,0 +1,1435 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * hr_payroll +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.6\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-11-25 13:16:10+0000\n" +"PO-Revision-Date: 2009-11-25 13:16:10+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "E-mail Address" +msgstr "" + +#. module: hr_payroll +#: view:hr.holidays.status:0 +msgid "(Based on type Payroll will calculate basic salary)" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,net:0 +#: field:hr.payslip,net:0 +msgid "Net Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,working_days:0 +msgid "Working Days" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "New Slip" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Axis Bank" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,esp_account:0 +msgid "EPS Account" +msgstr "" + +#. module: hr_payroll +#: help:hr.employee,analytic_account:0 +msgid "Analytic Account for Salary Analysis" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Allowances with Basic:" +msgstr "" + +#. module: hr_payroll +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "Department" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Deductions:" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,gratuity:0 +msgid "Use for Gratuity ?" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Employee No" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Salary Payment Register" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,paid:0 +msgid "Paid ? " +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.year_salary_report +msgid "Year Salary Report" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Paid Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,flag:0 +msgid "D/C" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,company_id:0 +#: field:hr.payslip,company_id:0 +#: wizard_field:payroll.analysis,init,company_id:0 +msgid "Company" +msgstr "" + +#. module: hr_payroll +#: help:hr.employee,employee_account:0 +msgid "Employee Payable Account" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Letter Details" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "," +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Set to Draft" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "The Manager" +msgstr "" + +#. module: hr_payroll +#: selection:hr.holidays.status,type:0 +msgid "Half-Pay Holiday" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,other_pay:0 +msgid "Others" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,slip_id:0 +#: model:ir.model,name:hr_payroll.model_hr_payslip +#: rml:payslip.pdf:0 +msgid "Pay Slip" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Calculations Rules" +msgstr "" + +#. module: hr_payroll +#: model:ir.module.module,description:hr_payroll.module_meta_information +msgid "\n" +" The Payroll system - India, Manages and depends on,\n" +" * HR Details\n" +" * HR Contracts\n" +" * HR Payslip\n" +" * HR Paysheet\n" +" * HR Attendance\n" +" * HR Holidays\n" +" " +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +#: rml:salary.structure:0 +msgid "Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.holidays.status,account_id:0 +msgid "Account" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Payment From" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Miscelleanous / Statutory" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Leaves" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,register_id:0 +msgid "Register" +msgstr "" + +#. module: hr_payroll +#: selection:wizard.year.salary,init,salary_on:0 +msgid "Next Month Date" +msgstr "" + +#. module: hr_payroll +#: help:hr.payroll.register,period_id:0 +#: help:hr.payslip,period_id:0 +msgid "Keep empty to use the period of the validation(Payslip) date." +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,value:0 +msgid "Value" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Name of the Employee" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,permit_no:0 +msgid "Work Permit No" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,amount:0 +#: rml:payroll.advice:0 +msgid "Amount" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,line_ids:0 +#: view:hr.payslip.line:0 +#: model:ir.model,name:hr_payroll.model_hr_payslip_line +msgid "Payslip Line" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,country_id:0 +msgid "Country of Issue" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Please Confirm all Expanse Invoice appear for Reimbursement" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Other Deduction" +msgstr "" + +#. module: hr_payroll +#: selection:hr.holidays.status,type:0 +msgid "Paid Holiday" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Employees Salary Details" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,date_expire:0 +msgid "Passport Expire Date" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Special Allowance and Deductions for Employee" +msgstr "" + +#. module: hr_payroll +#: selection:hr.holidays.status,type:0 +msgid "Un-Paid Holiday" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,period_id:0 +#: field:hr.payslip,period_id:0 +msgid "Force Period" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Amount (in words) :" +msgstr "" + +#. module: hr_payroll +#: field:hr.holidays.status,type:0 +msgid "Payment" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,analytic_account:0 +#: field:hr.employee.grade,account_id:0 +#: field:hr.holidays.status,analytic_account_id:0 +#: field:hr.payslip.line,analytic_account_id:0 +#: rml:salary.structure:0 +msgid "Analytic Account" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Expanse To" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,base:0 +msgid "Based on" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "Bank" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,move_id:0 +msgid "Expanse Entries" +msgstr "" + +#. module: hr_payroll +#: model:ir.module.module,shortdesc:hr_payroll.module_meta_information +msgid "Human Resource Payroll" +msgstr "" + +#. module: hr_payroll +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,esi_account:0 +msgid "ESI Account" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_passport +msgid "Passport Detail" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Please defined the Employee Home Address Along with Partners !!" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,total:0 +msgid "Sub Total" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,visa_no:0 +msgid "Visa No" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,from:0 +msgid "From" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,bysal:0 +msgid "By Salary" +msgstr "" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_year_salary +msgid "Employee Year Salary" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.salary_payslip +msgid "Employee PaySlip" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +#: rml:payroll.advice:0 +msgid "Authorised Signature" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,umo_id:0 +msgid "Unite" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Salary Detail" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Notes:" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "End Date" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Accounting Information" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "Amount Information" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,passport_id:0 +#: field:hr.employee,passport_id:0 +#: view:hr.passport:0 +msgid "Passport" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,employee_id:0 +#: field:hr.payroll.advice.line,employee_id:0 +#: field:hr.payslip,employee_id:0 +#: field:hr.payslip.line,employee_id:0 +msgid "Employee" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Start Date" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_payroll_advice_line +msgid "Bank Advice Lines" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,type:0 +#: field:hr.payslip.line,type:0 +#: wizard_field:payroll.analysis,init,type:0 +#: rml:salary.structure:0 +msgid "Type" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "#" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Miscelleanous" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Integrity Error !" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Verify Sheet" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,pan_no:0 +msgid "PAN No" +msgstr "" + +#. module: hr_payroll +#: wizard_button:wizard.employees.detail,init,report:0 +#: wizard_button:wizard.year.salary,init,report:0 +msgid "Print" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Accounting Informations" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Contributions Configuration" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,grows:0 +#: field:hr.payslip,grows:0 +msgid "Gross Salary" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Total Earnings" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Other Payment" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,basic:0 +msgid "Basic Salary - Leaves" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "C/D" +msgstr "" + +#. module: hr_payroll +#: selection:payroll.analysis,init,type:0 +msgid "By Employee Function" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,line_ids:0 +msgid "Employee Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,chaque_nos:0 +msgid "Chaque Nos" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.wizard,name:hr_payroll.wizard_print_year_salary +msgid "Year Salary Detail" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty.line,amount_type:0 +#: selection:hr.payslip.line,amount_type:0 +msgid "Fixed Amount" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Wating for Verification" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Account Lines" +msgstr "" + +#. module: hr_payroll +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Pay Salary" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Gross SAL" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Please defined the Partner in Home Address !!" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +#: rml:payslip.pdf:0 +msgid "For the month of" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Payslip" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 +#: field:hr.payroll.register,deduction:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,deduction:0 +#: selection:hr.payslip.line,type:0 +msgid "Deduction" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_payroll_advice +msgid "Bank Advice Note" +msgstr "" + +#. module: hr_payroll +#: view:hr.passport:0 +msgid "Passport List" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,payment_id:0 +msgid "Payment Entries" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "YTD" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,expanse_id:0 +msgid "Expense" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,based_on:0 +msgid "Fided Value" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Loan Installment" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Complete HR Checking" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Yours Sincerely" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Allowances" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "SI. No." +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Net Amount" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,based_on:0 +#: field:hr.payroll.advice,state:0 +#: field:hr.payroll.register,state:0 +#: field:hr.payslip,state:0 +msgid "State" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Salary Structure:" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.year_employees_detail +#: model:ir.actions.wizard,name:hr_payroll.wizard_print_employees_detail +#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_employees_detail +msgid "Employees Salary Detail" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_employee_grade +msgid "Function of the Employee" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: selection:hr.payroll.advice,state:0 +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Confirm Sheet" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Wating for Account Verification" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Others:" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +#: field:hr.passport,contracts_ids:0 +msgid "Contracts" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Passport and Visa" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Employee Code" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,amount_type:0 +#: field:hr.payslip.line,amount_type:0 +#: rml:salary.structure:0 +msgid "Amount Type" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,category_id:0 +#: field:hr.payslip.line,category_id:0 +#: rml:salary.structure:0 +msgid "Category" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,move_line_ids:0 +msgid "Accounting Lines" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,bank_journal_id:0 +#: field:hr.payslip,bank_journal_id:0 +msgid "Bank Journal" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Total SAL" +msgstr "" + +#. module: hr_payroll +#: constraint:ir.model:0 +msgid "The Object name must start with x_ and not contain any special character !" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,hospital_id:0 +msgid "ESI Hospital" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,slip_ids:0 +#: view:hr.payroll.register:0 +#: field:hr.payroll.register,line_ids:0 +msgid "Payslips" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Earnings" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.advice,state:0 +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Reject" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_hr_passport_tree +#: model:ir.ui.menu,name:hr_payroll.menu_action_hr_passport_tree +msgid "All Passports" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:hr.payroll.register.sheet:0 +#: rml:payslip.pdf:0 +msgid "Employee Name" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,salary_account:0 +msgid "Salary Account" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty.line,amount_type:0 +#: selection:hr.payslip.line,amount_type:0 +msgid "Percentage (%)" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,register_id:0 +#: view:hr.payroll.register:0 +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_register_form +#: model:ir.model,name:hr_payroll.model_hr_payroll_register +#: model:ir.ui.menu,name:hr_payroll.hr_menu_payroll_register +msgid "Payroll Register" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:hr.payroll.register.sheet:0 +#: rml:payroll.advice:0 +#: rml:salary.structure:0 +#: rml:year.salary:0 +msgid "For" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,journal_id:0 +#: field:hr.payslip,journal_id:0 +msgid "Expanse Journal" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_hr_contract +#: model:ir.ui.menu,name:hr_payroll.hr_menu_contract +msgid "Employee Contract" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,contribute:0 +msgid "Contribe by Company ?" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "Employee Function" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,working_days_per_week:0 +msgid "Working Days / Week" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,worked_days:0 +msgid "Worked Day" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Complete Accountant Checking" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Title" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,based_on:0 +msgid "On Attendance" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_employee_grade_form +#: model:ir.ui.menu,name:hr_payroll.menu_hr_allounce_deduction_tree +msgid "Allowance/Deduction Heads" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Compute Sheet" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,active:0 +msgid "Active" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,employee_account:0 +msgid "Employee Account" +msgstr "" + +#. module: hr_payroll +#: rml:year.salary:0 +msgid "Yearly Salary Details" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,condition:0 +msgid "Condition" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Wating for HR Verification" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,pf_account:0 +msgid "PF Account" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +msgid "Compute" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: view:hr.payslip:0 +#: field:hr.payslip,move_payment_ids:0 +msgid "Payment Lines" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: field:hr.payslip,deg_id:0 +#: rml:payslip.pdf:0 +#: rml:salary.structure:0 +msgid "Designation" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "HR Manager" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,based_on:0 +#: field:hr.payslip,basic_before_leaves:0 +#: rml:payslip.pdf:0 +msgid "Basic Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,code:0 +msgid "Categoty Code" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +msgid "Salary Information" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty +#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty_line +msgid "Allowance Deduction Categoty" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Authorized Signature" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Allowance / Deduction Category" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.advice,state:0 +msgid "Draft Sheet" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,date:0 +#: field:hr.payroll.register,date:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,date:0 +msgid "Date" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Basic SAL" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,visa_expire:0 +msgid "Visa Expire Date" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "Phone No." +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,include_in_salary:0 +msgid "Included in Salary ?" +msgstr "" + +#. module: hr_payroll +#: field:hr.expense.expense,category_id:0 +#: field:hr.holidays.status,head_id:0 +msgid "Payroll Head" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: field:hr.payroll.advice.line,advice_id:0 +msgid "Bank Advice" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,account_id:0 +#: rml:salary.structure:0 +msgid "General Account" +msgstr "" + +#. module: hr_payroll +#: field:hr.holidays.status,code:0 +#: field:hr.payslip.line,code:0 +#: rml:salary.structure:0 +msgid "Code" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_bank_advice_tree +#: model:ir.ui.menu,name:hr_payroll.hr_menu_payment_advice +#: rml:payroll.advice:0 +msgid "Payment Advice" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,to:0 +msgid "To" +msgstr "" + +#. module: hr_payroll +#: wizard_button:payroll.analysis,init,process:0 +msgid "Process" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Loan" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: hr_payroll +#: wizard_field:wizard.year.salary,init,salary_on:0 +msgid "Salary On" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,number:0 +#: field:hr.payroll.register,number:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,number:0 +msgid "Number" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Contract Detail:" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "General Information" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Paymeny Lines" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +#: field:hr.employee,line_ids:0 +#: view:hr.employee.grade:0 +#: field:hr.employee.grade,line_ids:0 +#: rml:salary.structure:0 +msgid "Salary Structure" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +#: wizard_button:payroll.analysis,init,end:0 +#: wizard_button:wizard.employees.detail,init,end:0 +#: wizard_button:wizard.year.salary,init,end:0 +msgid "Cancel" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,amount:0 +#: rml:salary.structure:0 +msgid "Amount / Percentage" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Accounting Details" +msgstr "" + +#. module: hr_payroll +#: selection:wizard.year.salary,init,salary_on:0 +msgid "Current Month Date" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Contract Duration" +msgstr "" + +#. module: hr_payroll +#: wizard_view:payroll.analysis,init:0 +msgid "Process Form" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,name:0 +msgid "Passport No" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "Account Information" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Generalities" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "for period" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +msgid "Allowance / Deduction" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "E-mail" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.year_payroll_register +msgid "Print Statement" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +#: field:hr.allounce.deduction.categoty,line_ids:0 +msgid "Calculations" +msgstr "" + +#. module: hr_payroll +#: wizard_view:wizard.year.salary,init:0 +msgid "Salary Deposit Date Option?" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Other Informations" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Dynamic Computation" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee.grade,function_id:0 +#: field:hr.payslip.line,function_id:0 +msgid "Function" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Dear Sir/Madam," +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "PAN No." +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,note:0 +msgid "Description" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,pg_joining:0 +msgid "PF Join Date" +msgstr "" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_reporting +#: model:ir.ui.menu,name:hr_payroll.menu_hr_root_payroll +msgid "Payroll" +msgstr "" + +#. module: hr_payroll +#: wizard_view:wizard.employees.detail,init:0 +#: wizard_view:wizard.year.salary,init:0 +msgid "Year Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,name:0 +msgid "Categoty Name" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.wizard,name:hr_payroll.wizard_payroll_analysis +#: model:ir.ui.menu,name:hr_payroll.menu_wizard_payroll_analysis +msgid "Create Analytic Structure" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:payslip.pdf:0 +#: rml:salary.structure:0 +msgid "Address" +msgstr "" + +#. module: hr_payroll +#: help:hr.employee,property_bank_account:0 +msgid "Select Bank Account from where Salary Expanse will be Paid" +msgstr "" + +#. module: hr_payroll +#: help:hr.employee,salary_account:0 +msgid "Expanse account when Salary Expanse will be recorded" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Notes" +msgstr "" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.payroll_configure +msgid "Configure Payroll" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Cancel Sheet" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Advance" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Special Allowances and Deductions For Employee:" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,name:0 +#: field:hr.payroll.advice,name:0 +#: field:hr.payroll.register,name:0 +#: field:hr.payslip,name:0 +#: field:hr.payslip.line,name:0 +#: rml:salary.structure:0 +#: rml:year.salary:0 +msgid "Name" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,leaves:0 +msgid "Leaved Deduction" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Statutory Information" +msgstr "" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.menu_hr_employee_function +msgid "Employee Functions" +msgstr "" + +#. module: hr_payroll +#: wizard_field:wizard.employees.detail,init,employee_ids:0 +#: wizard_field:wizard.year.salary,init,employee_ids:0 +msgid "Employees" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,property_bank_account:0 +#: rml:payroll.advice:0 +msgid "Bank Account" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,name:0 +msgid "Bank Account A/C" +msgstr "" + +#. module: hr_payroll +#: wizard_field:wizard.employees.detail,init,fiscalyear_id:0 +#: wizard_field:wizard.year.salary,init,fiscalyear_id:0 +msgid "Fiscal Year" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Contract" +msgstr "" + +#. module: hr_payroll +#: selection:payroll.analysis,init,type:0 +msgid "By Allownce / Deduction" +msgstr "" + +#. module: hr_payroll +#: view:hr.holidays.status:0 +msgid "Payroll Configurtion" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,date_issue:0 +msgid "Passport Issue Date" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 +#: field:hr.payroll.register,allounce:0 +#: field:hr.payslip,allounce:0 +#: selection:hr.payslip.line,type:0 +msgid "Allowance" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,holiday_days:0 +msgid "No of Leaves" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Bank Details" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Deductions" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payslip_form +#: model:ir.ui.menu,name:hr_payroll.menu_department_tree +msgid "Employee Payslip" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Letter Content" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "By Sal" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Net SAL" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.payroll_advice +msgid "Bank Payment Advice" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.salary_structure_register +msgid "Print Salary Structure" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Total Deductions" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:payroll.advice:0 +#: rml:year.salary:0 +msgid "Total" +msgstr "" + diff --git a/addons/hr_payroll/i18n/hr_payroll.pot b/addons/hr_payroll/i18n/hr_payroll.pot new file mode 100644 index 00000000000..a4466114f51 --- /dev/null +++ b/addons/hr_payroll/i18n/hr_payroll.pot @@ -0,0 +1,1435 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * hr_payroll +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 5.0.6\n" +"Report-Msgid-Bugs-To: support@openerp.com\n" +"POT-Creation-Date: 2009-11-25 13:16:10+0000\n" +"PO-Revision-Date: 2009-11-25 13:16:10+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "E-mail Address" +msgstr "" + +#. module: hr_payroll +#: view:hr.holidays.status:0 +msgid "(Based on type Payroll will calculate basic salary)" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,net:0 +#: field:hr.payslip,net:0 +msgid "Net Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,working_days:0 +msgid "Working Days" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "New Slip" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Axis Bank" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,esp_account:0 +msgid "EPS Account" +msgstr "" + +#. module: hr_payroll +#: help:hr.employee,analytic_account:0 +msgid "Analytic Account for Salary Analysis" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Allowances with Basic:" +msgstr "" + +#. module: hr_payroll +#: constraint:ir.actions.act_window:0 +msgid "Invalid model name in the action definition." +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "Department" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Deductions:" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,gratuity:0 +msgid "Use for Gratuity ?" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Employee No" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Salary Payment Register" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,paid:0 +msgid "Paid ? " +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.year_salary_report +msgid "Year Salary Report" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Paid Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,flag:0 +msgid "D/C" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,company_id:0 +#: field:hr.payslip,company_id:0 +#: wizard_field:payroll.analysis,init,company_id:0 +msgid "Company" +msgstr "" + +#. module: hr_payroll +#: help:hr.employee,employee_account:0 +msgid "Employee Payable Account" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Letter Details" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "," +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Set to Draft" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "The Manager" +msgstr "" + +#. module: hr_payroll +#: selection:hr.holidays.status,type:0 +msgid "Half-Pay Holiday" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,other_pay:0 +msgid "Others" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,slip_id:0 +#: model:ir.model,name:hr_payroll.model_hr_payslip +#: rml:payslip.pdf:0 +msgid "Pay Slip" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Calculations Rules" +msgstr "" + +#. module: hr_payroll +#: model:ir.module.module,description:hr_payroll.module_meta_information +msgid "\n" +" The Payroll system - India, Manages and depends on,\n" +" * HR Details\n" +" * HR Contracts\n" +" * HR Payslip\n" +" * HR Paysheet\n" +" * HR Attendance\n" +" * HR Holidays\n" +" " +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +#: rml:salary.structure:0 +msgid "Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.holidays.status,account_id:0 +msgid "Account" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Payment From" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Miscelleanous / Statutory" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Leaves" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,register_id:0 +msgid "Register" +msgstr "" + +#. module: hr_payroll +#: selection:wizard.year.salary,init,salary_on:0 +msgid "Next Month Date" +msgstr "" + +#. module: hr_payroll +#: help:hr.payroll.register,period_id:0 +#: help:hr.payslip,period_id:0 +msgid "Keep empty to use the period of the validation(Payslip) date." +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,value:0 +msgid "Value" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Name of the Employee" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,permit_no:0 +msgid "Work Permit No" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,amount:0 +#: rml:payroll.advice:0 +msgid "Amount" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,line_ids:0 +#: view:hr.payslip.line:0 +#: model:ir.model,name:hr_payroll.model_hr_payslip_line +msgid "Payslip Line" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,country_id:0 +msgid "Country of Issue" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Please Confirm all Expanse Invoice appear for Reimbursement" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Other Deduction" +msgstr "" + +#. module: hr_payroll +#: selection:hr.holidays.status,type:0 +msgid "Paid Holiday" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Employees Salary Details" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,date_expire:0 +msgid "Passport Expire Date" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Special Allowance and Deductions for Employee" +msgstr "" + +#. module: hr_payroll +#: selection:hr.holidays.status,type:0 +msgid "Un-Paid Holiday" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,period_id:0 +#: field:hr.payslip,period_id:0 +msgid "Force Period" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Amount (in words) :" +msgstr "" + +#. module: hr_payroll +#: field:hr.holidays.status,type:0 +msgid "Payment" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,analytic_account:0 +#: field:hr.employee.grade,account_id:0 +#: field:hr.holidays.status,analytic_account_id:0 +#: field:hr.payslip.line,analytic_account_id:0 +#: rml:salary.structure:0 +msgid "Analytic Account" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Expanse To" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,base:0 +msgid "Based on" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "Bank" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,move_id:0 +msgid "Expanse Entries" +msgstr "" + +#. module: hr_payroll +#: model:ir.module.module,shortdesc:hr_payroll.module_meta_information +msgid "Human Resource Payroll" +msgstr "" + +#. module: hr_payroll +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,esi_account:0 +msgid "ESI Account" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_passport +msgid "Passport Detail" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Please defined the Employee Home Address Along with Partners !!" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,total:0 +msgid "Sub Total" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,visa_no:0 +msgid "Visa No" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,from:0 +msgid "From" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,bysal:0 +msgid "By Salary" +msgstr "" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_year_salary +msgid "Employee Year Salary" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.salary_payslip +msgid "Employee PaySlip" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +#: rml:payroll.advice:0 +msgid "Authorised Signature" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,umo_id:0 +msgid "Unite" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Salary Detail" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Notes:" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "End Date" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Accounting Information" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "Amount Information" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,passport_id:0 +#: field:hr.employee,passport_id:0 +#: view:hr.passport:0 +msgid "Passport" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,employee_id:0 +#: field:hr.payroll.advice.line,employee_id:0 +#: field:hr.payslip,employee_id:0 +#: field:hr.payslip.line,employee_id:0 +msgid "Employee" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Start Date" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_payroll_advice_line +msgid "Bank Advice Lines" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,type:0 +#: field:hr.payslip.line,type:0 +#: wizard_field:payroll.analysis,init,type:0 +#: rml:salary.structure:0 +msgid "Type" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "#" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Miscelleanous" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Integrity Error !" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Verify Sheet" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,pan_no:0 +msgid "PAN No" +msgstr "" + +#. module: hr_payroll +#: wizard_button:wizard.employees.detail,init,report:0 +#: wizard_button:wizard.year.salary,init,report:0 +msgid "Print" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Accounting Informations" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Contributions Configuration" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,grows:0 +#: field:hr.payslip,grows:0 +msgid "Gross Salary" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Total Earnings" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Other Payment" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,basic:0 +msgid "Basic Salary - Leaves" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "C/D" +msgstr "" + +#. module: hr_payroll +#: selection:payroll.analysis,init,type:0 +msgid "By Employee Function" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,line_ids:0 +msgid "Employee Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,chaque_nos:0 +msgid "Chaque Nos" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.wizard,name:hr_payroll.wizard_print_year_salary +msgid "Year Salary Detail" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty.line,amount_type:0 +#: selection:hr.payslip.line,amount_type:0 +msgid "Fixed Amount" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Wating for Verification" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Account Lines" +msgstr "" + +#. module: hr_payroll +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Pay Salary" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Gross SAL" +msgstr "" + +#. module: hr_payroll +#: code:addons/hr_payroll/hr_payroll.py:0 +#, python-format +msgid "Please defined the Partner in Home Address !!" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +#: rml:payslip.pdf:0 +msgid "For the month of" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Payslip" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 +#: field:hr.payroll.register,deduction:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,deduction:0 +#: selection:hr.payslip.line,type:0 +msgid "Deduction" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_payroll_advice +msgid "Bank Advice Note" +msgstr "" + +#. module: hr_payroll +#: view:hr.passport:0 +msgid "Passport List" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,payment_id:0 +msgid "Payment Entries" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "YTD" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,expanse_id:0 +msgid "Expense" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,based_on:0 +msgid "Fided Value" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Loan Installment" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Complete HR Checking" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Yours Sincerely" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Allowances" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "SI. No." +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Net Amount" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,based_on:0 +#: field:hr.payroll.advice,state:0 +#: field:hr.payroll.register,state:0 +#: field:hr.payslip,state:0 +msgid "State" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Salary Structure:" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.year_employees_detail +#: model:ir.actions.wizard,name:hr_payroll.wizard_print_employees_detail +#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_employees_detail +msgid "Employees Salary Detail" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_employee_grade +msgid "Function of the Employee" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: selection:hr.payroll.advice,state:0 +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Confirm Sheet" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Wating for Account Verification" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Others:" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +#: field:hr.passport,contracts_ids:0 +msgid "Contracts" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Passport and Visa" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Employee Code" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,amount_type:0 +#: field:hr.payslip.line,amount_type:0 +#: rml:salary.structure:0 +msgid "Amount Type" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,category_id:0 +#: field:hr.payslip.line,category_id:0 +#: rml:salary.structure:0 +msgid "Category" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,move_line_ids:0 +msgid "Accounting Lines" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,bank_journal_id:0 +#: field:hr.payslip,bank_journal_id:0 +msgid "Bank Journal" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Total SAL" +msgstr "" + +#. module: hr_payroll +#: constraint:ir.model:0 +msgid "The Object name must start with x_ and not contain any special character !" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,hospital_id:0 +msgid "ESI Hospital" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,slip_ids:0 +#: view:hr.payroll.register:0 +#: field:hr.payroll.register,line_ids:0 +msgid "Payslips" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Earnings" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.advice,state:0 +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Reject" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_hr_passport_tree +#: model:ir.ui.menu,name:hr_payroll.menu_action_hr_passport_tree +msgid "All Passports" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:hr.payroll.register.sheet:0 +#: rml:payslip.pdf:0 +msgid "Employee Name" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,salary_account:0 +msgid "Salary Account" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty.line,amount_type:0 +#: selection:hr.payslip.line,amount_type:0 +msgid "Percentage (%)" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,register_id:0 +#: view:hr.payroll.register:0 +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_register_form +#: model:ir.model,name:hr_payroll.model_hr_payroll_register +#: model:ir.ui.menu,name:hr_payroll.hr_menu_payroll_register +msgid "Payroll Register" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:hr.payroll.register.sheet:0 +#: rml:payroll.advice:0 +#: rml:salary.structure:0 +#: rml:year.salary:0 +msgid "For" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,journal_id:0 +#: field:hr.payslip,journal_id:0 +msgid "Expanse Journal" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_hr_contract +#: model:ir.ui.menu,name:hr_payroll.hr_menu_contract +msgid "Employee Contract" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,contribute:0 +msgid "Contribe by Company ?" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "Employee Function" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,working_days_per_week:0 +msgid "Working Days / Week" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,worked_days:0 +msgid "Worked Day" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +msgid "Complete Accountant Checking" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +msgid "Title" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,based_on:0 +msgid "On Attendance" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_employee_grade_form +#: model:ir.ui.menu,name:hr_payroll.menu_hr_allounce_deduction_tree +msgid "Allowance/Deduction Heads" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Compute Sheet" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.register,active:0 +msgid "Active" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,employee_account:0 +msgid "Employee Account" +msgstr "" + +#. module: hr_payroll +#: rml:year.salary:0 +msgid "Yearly Salary Details" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,condition:0 +msgid "Condition" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.register,state:0 +#: selection:hr.payslip,state:0 +msgid "Wating for HR Verification" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,pf_account:0 +msgid "PF Account" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +msgid "Compute" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: view:hr.payslip:0 +#: field:hr.payslip,move_payment_ids:0 +msgid "Payment Lines" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: field:hr.payslip,deg_id:0 +#: rml:payslip.pdf:0 +#: rml:salary.structure:0 +msgid "Designation" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "HR Manager" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,based_on:0 +#: field:hr.payslip,basic_before_leaves:0 +#: rml:payslip.pdf:0 +msgid "Basic Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,code:0 +msgid "Categoty Code" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +msgid "Salary Information" +msgstr "" + +#. module: hr_payroll +#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty +#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty_line +msgid "Allowance Deduction Categoty" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Authorized Signature" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Allowance / Deduction Category" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payroll.advice,state:0 +msgid "Draft Sheet" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,date:0 +#: field:hr.payroll.register,date:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,date:0 +msgid "Date" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Basic SAL" +msgstr "" + +#. module: hr_payroll +#: field:hr.contract,visa_expire:0 +msgid "Visa Expire Date" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "Phone No." +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,include_in_salary:0 +msgid "Included in Salary ?" +msgstr "" + +#. module: hr_payroll +#: field:hr.expense.expense,category_id:0 +#: field:hr.holidays.status,head_id:0 +msgid "Payroll Head" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +#: field:hr.payroll.advice.line,advice_id:0 +msgid "Bank Advice" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,account_id:0 +#: rml:salary.structure:0 +msgid "General Account" +msgstr "" + +#. module: hr_payroll +#: field:hr.holidays.status,code:0 +#: field:hr.payslip.line,code:0 +#: rml:salary.structure:0 +msgid "Code" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_bank_advice_tree +#: model:ir.ui.menu,name:hr_payroll.hr_menu_payment_advice +#: rml:payroll.advice:0 +msgid "Payment Advice" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,to:0 +msgid "To" +msgstr "" + +#. module: hr_payroll +#: wizard_button:payroll.analysis,init,process:0 +msgid "Process" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Loan" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: hr_payroll +#: wizard_field:wizard.year.salary,init,salary_on:0 +msgid "Salary On" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,number:0 +#: field:hr.payroll.register,number:0 +#: rml:hr.payroll.register.sheet:0 +#: field:hr.payslip,number:0 +msgid "Number" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Contract Detail:" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "General Information" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Paymeny Lines" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +#: field:hr.employee,line_ids:0 +#: view:hr.employee.grade:0 +#: field:hr.employee.grade,line_ids:0 +#: rml:salary.structure:0 +msgid "Salary Structure" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +#: view:hr.payslip:0 +#: wizard_button:payroll.analysis,init,end:0 +#: wizard_button:wizard.employees.detail,init,end:0 +#: wizard_button:wizard.year.salary,init,end:0 +msgid "Cancel" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip.line,amount:0 +#: rml:salary.structure:0 +msgid "Amount / Percentage" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Accounting Details" +msgstr "" + +#. module: hr_payroll +#: selection:wizard.year.salary,init,salary_on:0 +msgid "Current Month Date" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Contract Duration" +msgstr "" + +#. module: hr_payroll +#: wizard_view:payroll.analysis,init:0 +msgid "Process Form" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,name:0 +msgid "Passport No" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee.grade:0 +msgid "Account Information" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Generalities" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "for period" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.register:0 +msgid "Allowance / Deduction" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "E-mail" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.year_payroll_register +msgid "Print Statement" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +#: field:hr.allounce.deduction.categoty,line_ids:0 +msgid "Calculations" +msgstr "" + +#. module: hr_payroll +#: wizard_view:wizard.year.salary,init:0 +msgid "Salary Deposit Date Option?" +msgstr "" + +#. module: hr_payroll +#: view:hr.payslip:0 +msgid "Other Informations" +msgstr "" + +#. module: hr_payroll +#: view:hr.allounce.deduction.categoty:0 +msgid "Dynamic Computation" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee.grade,function_id:0 +#: field:hr.payslip.line,function_id:0 +msgid "Function" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "Dear Sir/Madam," +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:salary.structure:0 +msgid "PAN No." +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice,note:0 +msgid "Description" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,pg_joining:0 +msgid "PF Join Date" +msgstr "" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_reporting +#: model:ir.ui.menu,name:hr_payroll.menu_hr_root_payroll +msgid "Payroll" +msgstr "" + +#. module: hr_payroll +#: wizard_view:wizard.employees.detail,init:0 +#: wizard_view:wizard.year.salary,init:0 +msgid "Year Salary" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty,name:0 +msgid "Categoty Name" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.wizard,name:hr_payroll.wizard_payroll_analysis +#: model:ir.ui.menu,name:hr_payroll.menu_wizard_payroll_analysis +msgid "Create Analytic Structure" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:payslip.pdf:0 +#: rml:salary.structure:0 +msgid "Address" +msgstr "" + +#. module: hr_payroll +#: help:hr.employee,property_bank_account:0 +msgid "Select Bank Account from where Salary Expanse will be Paid" +msgstr "" + +#. module: hr_payroll +#: help:hr.employee,salary_account:0 +msgid "Expanse account when Salary Expanse will be recorded" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Notes" +msgstr "" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.payroll_configure +msgid "Configure Payroll" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Cancel Sheet" +msgstr "" + +#. module: hr_payroll +#: selection:hr.payslip.line,type:0 +msgid "Advance" +msgstr "" + +#. module: hr_payroll +#: rml:salary.structure:0 +msgid "Special Allowances and Deductions For Employee:" +msgstr "" + +#. module: hr_payroll +#: field:hr.allounce.deduction.categoty.line,name:0 +#: field:hr.payroll.advice,name:0 +#: field:hr.payroll.register,name:0 +#: field:hr.payslip,name:0 +#: field:hr.payslip.line,name:0 +#: rml:salary.structure:0 +#: rml:year.salary:0 +msgid "Name" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,leaves:0 +msgid "Leaved Deduction" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Statutory Information" +msgstr "" + +#. module: hr_payroll +#: model:ir.ui.menu,name:hr_payroll.menu_hr_employee_function +msgid "Employee Functions" +msgstr "" + +#. module: hr_payroll +#: wizard_field:wizard.employees.detail,init,employee_ids:0 +#: wizard_field:wizard.year.salary,init,employee_ids:0 +msgid "Employees" +msgstr "" + +#. module: hr_payroll +#: field:hr.employee,property_bank_account:0 +#: rml:payroll.advice:0 +msgid "Bank Account" +msgstr "" + +#. module: hr_payroll +#: field:hr.payroll.advice.line,name:0 +msgid "Bank Account A/C" +msgstr "" + +#. module: hr_payroll +#: wizard_field:wizard.employees.detail,init,fiscalyear_id:0 +#: wizard_field:wizard.year.salary,init,fiscalyear_id:0 +msgid "Fiscal Year" +msgstr "" + +#. module: hr_payroll +#: view:hr.employee:0 +msgid "Contract" +msgstr "" + +#. module: hr_payroll +#: selection:payroll.analysis,init,type:0 +msgid "By Allownce / Deduction" +msgstr "" + +#. module: hr_payroll +#: view:hr.holidays.status:0 +msgid "Payroll Configurtion" +msgstr "" + +#. module: hr_payroll +#: field:hr.passport,date_issue:0 +msgid "Passport Issue Date" +msgstr "" + +#. module: hr_payroll +#: selection:hr.allounce.deduction.categoty,type:0 +#: field:hr.payroll.register,allounce:0 +#: field:hr.payslip,allounce:0 +#: selection:hr.payslip.line,type:0 +msgid "Allowance" +msgstr "" + +#. module: hr_payroll +#: field:hr.payslip,holiday_days:0 +msgid "No of Leaves" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Bank Details" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Deductions" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payslip_form +#: model:ir.ui.menu,name:hr_payroll.menu_department_tree +msgid "Employee Payslip" +msgstr "" + +#. module: hr_payroll +#: view:hr.payroll.advice:0 +msgid "Letter Content" +msgstr "" + +#. module: hr_payroll +#: rml:payroll.advice:0 +msgid "By Sal" +msgstr "" + +#. module: hr_payroll +#: rml:hr.payroll.register.sheet:0 +msgid "Net SAL" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.payroll_advice +msgid "Bank Payment Advice" +msgstr "" + +#. module: hr_payroll +#: model:ir.actions.report.xml,name:hr_payroll.salary_structure_register +msgid "Print Salary Structure" +msgstr "" + +#. module: hr_payroll +#: rml:payslip.pdf:0 +msgid "Total Deductions" +msgstr "" + +#. module: hr_payroll +#: rml:employees.salary:0 +#: rml:payroll.advice:0 +#: rml:year.salary:0 +msgid "Total" +msgstr "" + diff --git a/addons/hr_payroll/report/__init__.py b/addons/hr_payroll/report/__init__.py new file mode 100755 index 00000000000..c0f35b40bfc --- /dev/null +++ b/addons/hr_payroll/report/__init__.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# d$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +import report_payslip +import report_payroll_advice +import report_year_salary +import report_payroll_register +import report_employees_detail +import report_emp_salary_structure
\ No newline at end of file diff --git a/addons/hr_payroll/report/payroll_register.rml b/addons/hr_payroll/report/payroll_register.rml new file mode 100644 index 00000000000..13e40b68fe5 --- /dev/null +++ b/addons/hr_payroll/report/payroll_register.rml @@ -0,0 +1,261 @@ +<?xml version="1.0"?> +<document filename="test.pdf"> + <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20"> + <pageTemplate id="first"> + <frame id="first" x1="57.0" y1="57.0" width="481" height="728"/> + </pageTemplate> + </template> + <stylesheet> + <blockTableStyle id="Standard_Outline"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table3"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> + </blockTableStyle> + <blockTableStyle id="Table1"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/> + </blockTableStyle> + <blockTableStyle id="Table2"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table4"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="7,0" stop="7,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/> + </blockTableStyle> + <blockTableStyle id="Table5"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <initialize> + <paraStyle name="all" alignment="justify"/> + </initialize> + <paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="10"/> + <paraStyle name="P2" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER"/> + <paraStyle name="P3" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/> + <paraStyle name="P4" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER"/> + <paraStyle name="P5" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER"/> + <paraStyle name="P6" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT"/> + <paraStyle name="P7" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT"/> + <paraStyle name="P8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/> + <paraStyle name="P9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER"/> + <paraStyle name="P10" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT"/> + <paraStyle name="P11" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/> + <paraStyle name="P12" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT"/> + <paraStyle name="P13" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT"/> + <paraStyle name="P14" fontName="Helvetica" fontSize="8.0" leading="10"/> + <paraStyle name="P15" fontName="Helvetica" fontSize="8.0" leading="10"/> + <paraStyle name="P16" fontName="Helvetica-Bold" fontSize="8.0" leading="10"/> + <paraStyle name="P17" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT"/> + <paraStyle name="P18" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT"/> + <paraStyle name="P19" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="Standard" fontName="Times-Roman"/> + <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="Index" fontName="Times-Roman"/> + <paraStyle name="Table Contents" fontName="Times-Roman"/> + <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/> + <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + </stylesheet> + <images/> + <story> + <para style="P1">[[ repeatIn(objects, 'o') ]]</para> + <para style="P4">Salary Payment Register</para> + <para style="P5">[[o.name]]</para> + <para style="P2">For the month of [[get_month(o.date)]]</para> + <para style="P3"> + <font color="white"> </font> + </para> + <blockTable colWidths="72.0,295.0,47.0,68.0" style="Table3"> + <tr> + <td> + <para style="P6">Expanse To</para> + </td> + <td> + <para style="P11">[[o.journal_id.name]]</para> + </td> + <td> + <para style="P13">Number</para> + </td> + <td> + <para style="P12">[[o.number]]</para> + </td> + </tr> + <tr> + <td> + <para style="P13">Payment From</para> + </td> + <td> + <para style="P11">[[o.bank_journal_id.name]]</para> + </td> + <td> + <para style="P6">Date</para> + </td> + <td> + <para style="P12">[[o.date]]</para> + </td> + </tr> + </blockTable> + <para style="P3"> + <font color="white"> </font> + </para> + <section> + <blockTable colWidths="24.0,96.0,60.0,60.0,60.0,60.0,60.0,60.0" style="Table1"> + <tr> + <td> + <para style="P5">#</para> + </td> + <td> + <para style="P6">Employee Name</para> + </td> + <td> + <para style="P7">Basic SAL</para> + </td> + <td> + <para style="P7">Others</para> + </td> + <td> + <para style="P7">Allowances</para> + </td> + <td> + <para style="P7">Gross SAL</para> + </td> + <td> + <para style="P7">Deduction</para> + </td> + <td> + <para style="P7">Net SAL</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="24.0,96.0,60.0,60.0,60.0,60.0,60.0,60.0" style="Table2"> + <tr> + <td> + <para style="P9">[[ get_no() ]]</para> + </td> + <td> + <para style="P8">[[ repeatIn(o.line_ids, 'l') ]]</para> + <para style="P8">[[add_line(l)]]</para> + <para style="P8">[[ l.employee_id.name ]]</para> + </td> + <td> + <para style="P10">[[l.basic]]</para> + </td> + <td> + <para style="P10">[[l.other_pay]]</para> + </td> + <td> + <para style="P10">[[l.allounce]]</para> + </td> + <td> + <para style="P10">[[l.grows]]</para> + </td> + <td> + <para style="P10">[[l.deduction]]</para> + </td> + <td> + <para style="P10">[[l.net]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="24.0,96.0,60.0,60.0,60.0,60.0,60.0,60.0" style="Table4"> + <tr> + <td> + <para style="P5"> + <font color="white"> </font> + </para> + </td> + <td> + <para style="P6">Total SAL</para> + </td> + <td> + <para style="P7">[[get_basic()]]</para> + </td> + <td> + <para style="P7">[[get_other()]]</para> + </td> + <td> + <para style="P7">[[get_allow()]]</para> + </td> + <td> + <para style="P7">[[get_grows()]]</para> + </td> + <td> + <para style="P7">[[get_deduct()]]</para> + </td> + <td> + <para style="P7">[[get_net()]]</para> + </td> + </tr> + </blockTable> + <para style="Standard"> + <font color="white"> </font> + </para> + </section> + <blockTable colWidths="241.0,241.0" style="Table5"> + <tr> + <td> + <para style="P6">For [[company.name]],</para> + <para style="P6"> + <font color="white"> </font> + </para> + <para style="P6"> + <font color="white"> </font> + </para> + <para style="P6"> + <font color="white"> </font> + </para> + <para style="P6">HR Manager</para> + <para style="P19">Authorised Signature</para> + </td> + <td> + <para style="P6"> + <font color="white"> </font> + </para> + </td> + </tr> + </blockTable> + <para style="P1"> + <font color="white"> </font> + </para> + </story> +</document> + diff --git a/addons/hr_payroll/report/payslip.rml b/addons/hr_payroll/report/payslip.rml new file mode 100755 index 00000000000..ede60a9a490 --- /dev/null +++ b/addons/hr_payroll/report/payslip.rml @@ -0,0 +1,671 @@ +<?xml version="1.0"?> +<document filename="test.pdf"> + <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20"> + <pageTemplate id="first"> + <frame id="first" x1="28.0" y1="28.0" width="539" height="786"/> + </pageTemplate> + </template> + <stylesheet> + <blockTableStyle id="Standard_Outline"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table2"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table15"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + </blockTableStyle> + <blockTableStyle id="Table16"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + </blockTableStyle> + <blockTableStyle id="Table1"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + </blockTableStyle> + <blockTableStyle id="Table17"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table18"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table10"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table19"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table20"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table12"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table14"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + </blockTableStyle> + <blockTableStyle id="Table13"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table3"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> + </blockTableStyle> + <blockTableStyle id="Table8"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table9"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table11"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table4"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> + </blockTableStyle> + <blockTableStyle id="Table21"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + </blockTableStyle> + <blockTableStyle id="Table22"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table5"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + </blockTableStyle> + <blockTableStyle id="Table6"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table7"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <initialize> + <paraStyle name="all" alignment="justify"/> + </initialize> + <paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/> + <paraStyle name="Standard" fontName="Times-Roman"/> + <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="Index" fontName="Times-Roman"/> + <paraStyle name="Table Contents" fontName="Times-Roman"/> + <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/> + <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="Footer" fontName="Times-Roman"/> + <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/> + <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Bold_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="12.0" leading="15" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Centre_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="14.0" leading="17" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_address" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Bold_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Centre_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Bold_Right_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_2" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_White_2" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#ffffff"/> + <paraStyle name="terp_default_Note" rightIndent="0.0" leftIndent="9.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="Table" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="terp_default_space" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="14.0" leading="17" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + </stylesheet> + <images/> + <story> + <para style="terp_default_8">[[repeatIn(objects,'o')]]</para> + <blockTable colWidths="539.0" style="Table2"> + <tr> + <td> + <para style="terp_tblheader_General_Centre">Pay Slip </para> + <para style="terp_default_Centre_9">For the month of [[ get_month(o) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <para style="terp_default_9"> + <font color="white"> </font> + </para> + <blockTable colWidths="43.0,101.0,67.0,328.0" style="Table15"> + <tr> + <td> + <para style="terp_default_Bold_9">Code</para> + </td> + <td> + <para style="terp_default_9">[[ o.employee_id.sinid or '' ]]</para> + </td> + <td> + <para style="terp_default_Bold_9">Name </para> + </td> + <td> + <para style="terp_default_9">[[o.employee_id.name]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="43.0,496.0" style="Table16"> + <tr> + <td> + <para style="terp_default_Bold_9">Address </para> + </td> + <td> + <para style="terp_default_9">[[o.employee_id.address_home_id and o.employee_id.address_home_id.name or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.street2 or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.zip or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.city or '' ]],[[o.employee_id.address_home_id and o.employee_id.address_home_id.state_id and o.employee_id.address_home_id.state_id.name or '' ]] [[o.employee_id.address_home_id and o.employee_id.address_home_id.country_id and o.employee_id.address_home_id.country_id.name or '' ]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="43.0,168.0,65.0,263.0" style="Table1"> + <tr> + <td> + <para style="terp_default_Bold_9">Email</para> + </td> + <td> + <para style="terp_default_9">[[ o.employee_id.work_email or '' ]]</para> + </td> + <td> + <para style="terp_default_Bold_9">Bank Details </para> + </td> + <td> + <para style="terp_default_9">[[ o.employee_id.otherid or '' ]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="43.0,102.0,66.0,169.0,68.0,91.0" style="Table17"> + <tr> + <td> + <para style="terp_default_Bold_9">Slip ID</para> + </td> + <td> + <para style="terp_default_9">[[ o.number or '' ]]</para> + </td> + <td> + <para style="terp_default_Bold_9">Bill No</para> + </td> + <td> + <para style="terp_default_9">[[ o.move_id and o.move_id.name or '' ]]</para> + </td> + <td> + <para style="terp_default_Bold_9">PAN No</para> + </td> + <td> + <para style="terp_default_9">[[ o.employee_id.pan_no or '' ]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="43.0,102.0,66.0,169.0,68.0,91.0" style="Table18"> + <tr> + <td> + <para style="terp_default_Bold_9">Register</para> + </td> + <td> + <para style="terp_default_9">[[ o.register_id and o.register_id.name or '' ]]</para> + </td> + <td> + <para style="terp_default_Bold_9">Payment</para> + </td> + <td> + <para style="terp_default_9">[[ o.payment_id and o.payment_id.name or '' ]]</para> + </td> + <td> + <para style="terp_default_Bold_9">Designation </para> + </td> + <td> + <para style="terp_default_9">[[ o.employee_id.contract_ids and o.employee_id.contract_ids[0].function.name or '' ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_space"/> + <para style="terp_default_9"> + <font color="white"> </font> + </para> + <blockTable colWidths="539.0" style="Table10"> + <tr> + <td> + <para style="terp_default_Bold_9">Basic Salary without Leave:</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="70.0,89.0,90.0,93.0,105.0,92.0" style="Table19"> + <tr> + <td> + <para style="terp_default_Bold_9">Working Days</para> + </td> + <td> + <para style="terp_default_9">[[ o.working_days or '' ]]</para> + </td> + <td> + <para style="terp_default_Bold_9">Number of Leaves</para> + </td> + <td> + <para style="terp_default_9">[[ o.holiday_days or '' ]]</para> + </td> + <td> + <para style="terp_default_Bold_9">Worked Day </para> + </td> + <td> + <para style="terp_default_9">[[ o.worked_days or '' ]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="70.0,89.0,90.0,93.0,105.0,92.0" style="Table20"> + <tr> + <td> + <para style="terp_default_Bold_9">Basic Salary</para> + </td> + <td> + <para style="terp_default_9">[[ o.basic_before_leaves or '' ]]</para> + </td> + <td> + <para style="terp_default_Bold_9">Leaved Deduction</para> + </td> + <td> + <para style="terp_default_9">[[ o.leaves or '' ]]</para> + </td> + <td> + <para style="terp_default_Bold_9">Basic Salary – Leaves</para> + </td> + <td> + <para style="terp_default_9">[[ formatLang(o.basic) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <blockTable colWidths="539.0" style="Table12"> + <tr> + <td> + <para style="terp_default_Bold_9">Leave Deductions Line:</para> + </td> + </tr> + </blockTable> + <para style="terp_default_2"> + <font color="white"> </font> + </para> + <blockTable colWidths="292.0,247.0" style="Table14"> + <tr> + <td> + <para style="terp_tblheader_Details">Deductions</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ get_month(o) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_2"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_9">[[repeatIn(get_leave(o.line_ids),'ld') ]]</para> + <blockTable colWidths="293.0,246.0" style="Table13"> + <tr> + <td> + <para style="terp_default_9">[[ ld.code ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(ld.total) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_2"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <blockTable colWidths="158.0,112.0,160.0,109.0" style="Table3"> + <tr> + <td> + <para style="terp_tblheader_Details">Earnings</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ get_month(o) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">Deductions</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ get_month(o) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_2"> + <font color="white"> </font> + </para> + <blockTable colWidths="269.0,269.0" style="Table8"> + <tr> + <td> + <blockTable colWidths="141.0,122.0" style="Table9"> + <tr> + <td> + <para style="terp_default_9">Basic Salary</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(o.basic) ]]</para> + </td> + </tr> + <tr> + <td> + <para style="terp_default_9"><font>[[repeatIn(get_earnings(o.line_ids),'a') ]]</font><font>[[ a.code or removeParentNode('tr') ]]</font></para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(a.total) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_2"> + <font color="white"> </font> + </para> + </td> + <td> + <section> + <para style="terp_default_9">[[repeatIn(get_deductions(o.line_ids),'b') ]]</para> + <blockTable colWidths="142.0,121.0" style="Table11"> + <tr> + <td> + <para style="terp_default_9">[[ b.code ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(b.total) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_2"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_2"> + <font color="white"> </font> + </para> + </td> + </tr> + </blockTable> + <para style="terp_default_2"> + <font color="white"> </font> + </para> + <blockTable colWidths="181.0,88.0,177.0,93.0" style="Table4"> + <tr> + <td> + <para style="terp_tblheader_Details">Total Earnings </para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(o.allounce + o.basic) ]] </para> + </td> + <td> + <para style="terp_tblheader_Details">Total Deductions </para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(o.deduction) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <blockTable colWidths="269.0,134.0,135.0" style="Table21"> + <tr> + <td> + <para style="terp_tblheader_Details">Other Lines</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">Payments - [[ get_month(o) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">Deduction -[[ get_month(o) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_2"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_9">[[repeatIn(get_others(o.line_ids),'ol') ]]</para> + <blockTable colWidths="269.0,134.0,135.0" style="Table22"> + <tr> + <td> + <para style="terp_default_9">[[ ol.type in ['advance','loan','otherpay','otherdeduct','installment'] and ol.code or '' ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ ol.type in ['advance','loan','otherpay'] and formatLang(ol.total) or '' ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ ol.type in ['otherdeduct','installment'] and formatLang(ol.total) or '' ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_2"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_2"> + <font color="white"> </font> + </para> + <blockTable colWidths="269.0,177.0,93.0" style="Table5"> + <tr> + <td> + <para style="terp_tblheader_Details"> + <font color="white"> </font> + </para> + </td> + <td> + <para style="terp_tblheader_Details">Net Amount </para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(o.net) ]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="269.0,269.0" style="Table6"> + <tr> + <td> + <para style="terp_tblheader_Details">Amount (in words) :</para> + </td> + <td> + <para style="terp_tblheader_Details"> + <font color="white"> </font> + </para> + </td> + </tr> + <tr> + <td> + <para style="terp_default_9">[[ convert(o.net,company.currency_id.name) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details"> + <font color="white"> </font> + </para> + </td> + </tr> + </blockTable> + <para style="terp_default_8"> + <font color="white"> </font> + </para> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <blockTable colWidths="269.0,269.0" style="Table7"> + <tr> + <td> + <para style="P1"> + <font color="white"> </font> + </para> + </td> + <td> + <para style="terp_tblheader_Details_Right">Authorized Signature </para> + </td> + </tr> + </blockTable> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + </story> +</document> diff --git a/addons/hr_payroll/report/report_emp_salary_structure.py b/addons/hr_payroll/report/report_emp_salary_structure.py new file mode 100644 index 00000000000..01dd4302d37 --- /dev/null +++ b/addons/hr_payroll/report/report_emp_salary_structure.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# d$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +import time +import mx.DateTime +from report import report_sxw +from tools import amount_to_text_en + +class salary_structure_report(report_sxw.rml_parse): + + def __init__(self, cr, uid, name, context): + super(salary_structure_report, self).__init__(cr, uid, name, context) + self.localcontext.update({ + 'time': time, + 'get_type':self.get_type, + 'get_contract':self.get_contract, + 'get_line_amount_type':self.get_line_amount_type, + 'get_line_type':self.get_line_type + }) + + def get_contract(self,emp): + curr_date = "'"+time.strftime("%Y-%m-%d")+"'" + 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 + '''%(emp.id, curr_date, curr_date) + self.cr.execute(sql_req) + contract_id = self.cr.dictfetchone() + if not contract_id: + return [] + contract = self.pool.get('hr.contract').browse(self.cr, self.uid, [contract_id['id']]) + return contract + + def get_type(self,type): + return type[0].swapcase() + type[1:] +' Salary' + + def get_line_amount_type(self,amount_type): + if amount_type == 'per': + return 'Percent(%)' + else: + return 'Fixed' + + def get_line_type(self,type): + if type == 'allounce': + return 'Allowance' + elif type == 'deduction': + return 'Deduction' + elif type == 'advance': + return 'Advance' + elif type == 'loan': + return 'Loan' + elif type == 'otherpay': + return 'Other Payment' + else: + return 'Other Deduction' + +report_sxw.report_sxw('report.salary.structure', 'hr.employee', 'hr_payroll/report/report_emp_salary_structure.rml', parser=salary_structure_report) + + + + + + + + + + + + + + + + diff --git a/addons/hr_payroll/report/report_emp_salary_structure.rml b/addons/hr_payroll/report/report_emp_salary_structure.rml new file mode 100644 index 00000000000..18211b254f3 --- /dev/null +++ b/addons/hr_payroll/report/report_emp_salary_structure.rml @@ -0,0 +1,552 @@ +<?xml version="1.0"?> +<document filename="test.pdf"> + <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20"> + <pageTemplate id="first"> + <frame id="first" x1="28.0" y1="28.0" width="539" height="786"/> + </pageTemplate> + </template> + <stylesheet> + <blockTableStyle id="Standard_Outline"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table1"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table4"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table6"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table7"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table13"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table2"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table3"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + </blockTableStyle> + <blockTableStyle id="Table9"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table5"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/> + </blockTableStyle> + <blockTableStyle id="Table8"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/> + </blockTableStyle> + <blockTableStyle id="Table10"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table11"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/> + </blockTableStyle> + <blockTableStyle id="Table12"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/> + </blockTableStyle> + <initialize> + <paraStyle name="all" alignment="justify"/> + </initialize> + <paraStyle name="P1" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="Standard" fontName="Times-Roman"/> + <paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="Index" fontName="Helvetica"/> + <paraStyle name="Table Contents" fontName="Times-Roman"/> + <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/> + <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="Footer" fontName="Times-Roman"/> + <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/> + <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="Drawing" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="Header" fontName="Times-Roman"/> + <paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Times-Roman" fontSize="10.0" leading="13"/> + <paraStyle name="Addressee" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="3.0"/> + <paraStyle name="Signature" fontName="Times-Roman"/> + <paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Salutation" fontName="Times-Roman"/> + <paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="terp_default_space" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="0.0"/> + </stylesheet> + <images/> + <story> + <para style="terp_default_8">[[repeatIn(objects,'employee')]]</para> + <blockTable colWidths="539.0" style="Table1"> + <tr> + <td> + <para style="terp_header_Centre">Salary Structure</para> + <para style="terp_header_Centre">For [[ employee.name ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <para style="terp_default_9"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_9">[[repeatIn(get_contract(employee),'cont')]]</para> + <blockTable colWidths="68.0,111.0,63.0,111.0,71.0,115.0" style="Table4"> + <tr> + <td> + <para style="terp_tblheader_Details">Code</para> + </td> + <td> + <para style="terp_default_9">[[ employee.ssnid ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">Department</para> + </td> + <td> + <para style="terp_default_9">[[ employee.company_id and employee.company_id.name or '' ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">Bank</para> + </td> + <td> + <para style="terp_default_9">[[ employee.otherid or '' ]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="68.0,111.0,63.0,111.0,71.0,115.0" style="Table6"> + <tr> + <td> + <para style="terp_tblheader_Details">Name</para> + </td> + <td> + <para style="terp_default_9">[[ employee.name ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">PAN No.</para> + </td> + <td> + <para style="terp_default_9">[[ employee.pan_no or '' ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">Address</para> + </td> + <td> + <para style="terp_default_9">[[employee.address_home_id and employee.address_home_id.name or '' ]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="68.0,111.0,63.0,111.0,71.0,115.0" style="Table7"> + <tr> + <td> + <para style="terp_tblheader_Details">Designation</para> + </td> + <td> + <para style="terp_default_9">[[ cont.function.name or '' ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">Phone No.</para> + </td> + <td> + <para style="terp_default_9">[[ employee.work_phone or '' ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">E-mail</para> + </td> + <td> + <para style="terp_default_9">[[ employee.work_email or '' ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <blockTable colWidths="539.0" style="Table13"> + <tr> + <td> + <para style="P1">Contract Detail:</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <blockTable colWidths="68.0,111.0,63.0,111.0,71.0,115.0" style="Table2"> + <tr> + <td> + <para style="terp_tblheader_Details">Start Date</para> + </td> + <td> + <para style="terp_default_9">[[ formatLang(cont.date_start,date=True) or '' ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">End Date</para> + </td> + <td> + <para style="terp_default_9">[[ formatLang(cont.date_end,date=True) or removeParentNode('para') ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">Type</para> + </td> + <td> + <para style="terp_default_9">[[ get_type(cont.wage_type_id.type) or '' ]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="68.0,111.0,63.0,297.0" style="Table3"> + <tr> + <td> + <para style="terp_tblheader_Details">Salary</para> + </td> + <td> + <para style="terp_default_9">[[ formatLang(cont.wage) or '' ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">Notes:</para> + </td> + <td> + <para style="terp_default_9">[[ cont.notes or '' ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <blockTable colWidths="539.0" style="Table9"> + <tr> + <td> + <para style="P1">Salary Structure:</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <blockTable colWidths="34.0,116.0,40.0,67.0,44.0,109.0,70.0,59.0" style="Table5"> + <tr> + <td> + <para style="terp_tblheader_Details">Code</para> + </td> + <td> + <para style="terp_tblheader_Details">Name</para> + </td> + <td> + <para style="terp_tblheader_Details">Amount Type</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">Amount / Percentage</para> + </td> + <td> + <para style="terp_tblheader_Details">Type</para> + </td> + <td> + <para style="terp_tblheader_Details">Category</para> + </td> + <td> + <para style="terp_tblheader_Details">General Account</para> + </td> + <td> + <para style="terp_tblheader_Details">Analytic Account</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_9">[[repeatIn(cont.function.line_ids,'line')]]</para> + <blockTable colWidths="34.0,117.0,39.0,67.0,44.0,110.0,69.0,59.0" style="Table8"> + <tr> + <td> + <para style="terp_default_9">[[ line.code or '' ]]</para> + </td> + <td> + <para style="terp_default_9">[[ line.name ]]</para> + </td> + <td> + <para style="terp_default_9">[[ get_line_amount_type(line.amount_type) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(line.amount) ]]</para> + </td> + <td> + <para style="terp_default_9">[[ get_line_type(line.type) ]]</para> + </td> + <td> + <para style="terp_default_9">[[ line.category_id.name ]]</para> + </td> + <td> + <para style="terp_default_9">[[ line.account_id.name ]]</para> + </td> + <td> + <para style="terp_default_9">[[ line.analytic_account_id and line.analytic_account_id.name or '' ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + </section> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <blockTable colWidths="539.0" style="Table10"> + <tr> + <td> + <para style="P1">Special Allowances and Deductions For Employee:</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <blockTable colWidths="34.0,116.0,40.0,67.0,44.0,109.0,128.0" style="Table11"> + <tr> + <td> + <para style="terp_tblheader_Details">Code</para> + </td> + <td> + <para style="terp_tblheader_Details">Name</para> + </td> + <td> + <para style="terp_tblheader_Details">Amount Type</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">Amount / Percentage</para> + </td> + <td> + <para style="terp_tblheader_Details">Type</para> + </td> + <td> + <para style="terp_tblheader_Details">Category</para> + </td> + <td> + <para style="terp_tblheader_Details">General Account</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_9">[[repeatIn(employee.line_ids,'line1')]]</para> + <blockTable colWidths="34.0,117.0,39.0,67.0,44.0,110.0,128.0" style="Table12"> + <tr> + <td> + <para style="terp_default_9">[[ line1.code or '' ]]</para> + </td> + <td> + <para style="terp_default_9">[[ line1.name ]]</para> + </td> + <td> + <para style="terp_default_9">[[ get_line_amount_type(line1.amount_type) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(line1.amount) ]]</para> + </td> + <td> + <para style="terp_default_9">[[ get_line_type(line1.type) ]]</para> + </td> + <td> + <para style="terp_default_9">[[ line1.category_id.name ]]</para> + </td> + <td> + <para style="terp_default_9">[[ line1.account_id.name ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_9"> + <font color="white"> </font> + </para> + </story> +</document> diff --git a/addons/hr_payroll/report/report_employees_detail.py b/addons/hr_payroll/report/report_employees_detail.py new file mode 100644 index 00000000000..c809696a35b --- /dev/null +++ b/addons/hr_payroll/report/report_employees_detail.py @@ -0,0 +1,235 @@ +import time +import locale +import datetime +from report import report_sxw +import time +import pooler +import rml_parse +import mx.DateTime +from mx.DateTime import RelativeDateTime, now, DateTime, localtime + +class employees_salary_report(rml_parse.rml_parse): + + def __init__(self, cr, uid, name, context): + super(employees_salary_report, self).__init__(cr, uid, name, context) + self.localcontext.update({ + 'time': time, + 'get_employee' : self.get_employee, + 'get_employee_detail' : self.get_employee_detail, + 'cal_monthly_amt':self.cal_monthly_amt, + 'get_periods' : self.get_periods, + 'get_fiscalyear' : self.get_fiscalyear, + 'get_total' : self.get_total, + 'get_allow':self.get_allow, + 'get_deduct':self.get_deduct, + 'get_other':self.get_other, + 'get_monthly_total':self.get_monthly_total, + }) + + self.mnths =[] + self.allow_list =[] + self.deduct_list = [] + self.other_list = [] + self.month_total_list =[] + self.curr_fiscal_year_name='' + self.period_ids = [] + self.total=0.00 + + def get_periods(self,form): + self.mnths =[] + fiscalyear = pooler.get_pool(self.cr.dbname).get('account.fiscalyear') + curr_fiscalyear_id = form['fiscalyear_id'] + curr_fiscalyear = fiscalyear.read(self.cr,self.uid,[form['fiscalyear_id']],['date_start','date_stop'])[0] + +# Get start year-month-date and end year-month-date + fy = int(curr_fiscalyear['date_start'][0:4]) + ly = int(curr_fiscalyear['date_stop'][0:4]) + + fm = int(curr_fiscalyear['date_start'][5:7]) + lm = int(curr_fiscalyear['date_stop'][5:7]) + no_months = (ly-fy)*12+lm-fm + 1 + cm = fm + cy = fy + +# Get name of the months from integer + mnth_name = [] + for count in range(0,no_months): + m = datetime.date(cy, cm, 1).strftime('%b') + mnth_name.append(m) + self.mnths.append(str(cm)+'-'+str(cy)) + if cm == 12: + cm = 0 + cy = ly + cm = cm +1 + return [mnth_name] + + def get_fiscalyear(self,fiscalyear_id): + fiscalyear_obj = pooler.get_pool(self.cr.dbname).get('account.fiscalyear') + return fiscalyear_obj.read(self.cr,self.uid,[fiscalyear_id],['name'])[0]['name'] + + def get_employee(self,form): + result = [] + periods = [] + emp = pooler.get_pool(self.cr.dbname).get('hr.employee') + emp_ids = form['employee_ids'][0][2] + result = emp.browse(self.cr,self.uid, emp_ids) + fiscalyear_obj = pooler.get_pool(self.cr.dbname).get('account.fiscalyear').browse(self.cr, self.uid, form['fiscalyear_id']) + period_ids_l = fiscalyear_obj.period_ids + for period in period_ids_l: + periods.append(period.id) + self.period_ids = ','.join(map(str, periods)) + return result + + def get_employee_detail(self,obj): + self.month_total_list =['Net Total (Allowances with Basic - Deductions)',0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00] + self.allow_list =[] + self.deduct_list = [] + self.other_list = [] + allowance_cat_ids =[] + deduction_cat_ids = [] + other_cat_ids =[] + self.total = 0.00 + payment_category = self.pool.get('hr.allounce.deduction.categoty') + payslip = self.pool.get('hr.payslip') + allowance_cat_ids = payment_category.search( self.cr, self.uid, [('type','=','allow')]) + deduction_cat_ids = payment_category.search( self.cr, self.uid, [('type','=','deduct')]) + other_cat_ids = payment_category.search( self.cr, self.uid, [('type','=','other')]) + #for Basic Salary + res = [] + res = self.cal_monthly_amt(obj.id,None) + self.total += res[len(res)-1] + basic_flag = False + for i in range(1,len(res)): + if res[i] > 0.0: + basic_flag = True + if basic_flag: + self.allow_list.append(res) + #for allowance + if allowance_cat_ids: + for allow in allowance_cat_ids: + res = [] + res = self.cal_monthly_amt(obj.id,allow) + all_flag = False + for i in range(1,len(res)): + if res[i] > 0.0: + all_flag = True + if all_flag: + self.allow_list.append(res) + self.total += res[len(res)-1] + #for Deduction + if deduction_cat_ids: + for deduct in deduction_cat_ids: + res = [] + res = self.cal_monthly_amt(obj.id,deduct) + ded_flag = False + for i in range(1,len(res)): + if res[i] > 0.0: + ded_flag = True + if ded_flag: + self.deduct_list.append(res) + self.total -= res[len(res)-1] + #for Other + if other_cat_ids: + for other in other_cat_ids: + res = [] + res = self.cal_monthly_amt(obj.id,other) + other_flag = False + for i in range(1,len(res)): + if res[i] > 0.0: + other_flag = True + if other_flag: + self.other_list.append(res) + return None + + def cal_monthly_amt(self,emp_id,category): + tot = 0.0 + cnt = 1 + result = [] + res ={} + if not category: + result.append('Basic Salary') + else: + category_name = self.pool.get('hr.allounce.deduction.categoty').read(self.cr, self.uid, [category],['name','type'])[0] + result.append(category_name['name']) + for mnth in self.mnths: + if len(mnth) != 7: + mnth = '0' + str(mnth) + query = "select id from hr_payslip where employee_id = "+str(emp_id)+" and to_char(date,'mm-yyyy') like '%"+mnth+"%' and state = 'done' and period_id in "+"("+ self.period_ids +")" +"" + self.cr.execute(query) + payslip_id = self.cr.dictfetchone() + if payslip_id: + payslip_obj = self.pool.get('hr.payslip').browse(self.cr, self.uid, payslip_id['id']) + if not category: + tot += payslip_obj.basic + res[mnth] = payslip_obj.basic + result.append(payslip_obj.basic) + self.month_total_list[cnt] = self.month_total_list[cnt] + payslip_obj.basic + else: + append_index = 0 + for line in payslip_obj.line_ids: + if line.category_id.id == category: + if category_name['type'] == 'allow': + if res: + self.month_total_list[cnt] = self.month_total_list[cnt] + line.total + result[append_index] += line.total + tot += line.total + res[mnth] = result[append_index] + else: + self.month_total_list[cnt] = self.month_total_list[cnt] + line.total + tot += line.total + res[mnth] = line.total + append_index = len(result) - 1 + result.append(line.total) + if category_name['type'] == 'deduct': + if res: + self.month_total_list[cnt] = self.month_total_list[cnt] - line.total + result[append_index] += line.total + tot += line.total + res[mnth] = result[append_index] + else: + self.month_total_list[cnt] = self.month_total_list[cnt] - line.total + tot += line.total + res[mnth] = line.total + append_index = len(result) - 1 + result.append(line.total) + if category_name['type'] == 'other': + if res: + result[append_index] += line.total + tot += line.total + res[mnth] = result[append_index] + else: + res[mnth] = line.total + result.append(res[mnth]) + append_index = len(result) - 1 + tot += line.total + else: + result.append(0.00) + res[mnth] = 0.00 + if not res: + result.append(0.00) + res = {} + cnt = cnt + 1 + cnt = 1 + result.append(tot) + tot = 0.0 + return result + + def get_allow(self): + return self.allow_list + + def get_deduct(self): + return self.deduct_list + + def get_other(self): + return self.other_list + + def get_total(self): + return self.total + + def get_monthly_total(self): + return self.month_total_list + +report_sxw.report_sxw('report.employees.salary', 'hr.payslip', 'hr_payroll/report/report_employees_detail.rml', parser=employees_salary_report) + + + diff --git a/addons/hr_payroll/report/report_employees_detail.rml b/addons/hr_payroll/report/report_employees_detail.rml new file mode 100644 index 00000000000..1c3ec0e03fa --- /dev/null +++ b/addons/hr_payroll/report/report_employees_detail.rml @@ -0,0 +1,582 @@ +<?xml version="1.0"?> +<document filename="test.pdf"> + <template pageSize="(842.0,595.0)" title="Test" author="Martin Simon" allowSplitting="20"> + <pageTemplate id="first"> + <frame id="first" x1="28.0" y1="28.0" width="786" height="539"/> + </pageTemplate> + </template> + <stylesheet> + <blockTableStyle id="Standard_Outline"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table2"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table3"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table5"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEAFTER" colorName="#cccccc" start="5,0" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table4"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="7,0" stop="7,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="8,0" stop="8,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="8,-1" stop="8,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="9,0" stop="9,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="9,-1" stop="9,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="10,0" stop="10,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="10,-1" stop="10,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="11,0" stop="11,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="11,-1" stop="11,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="12,0" stop="12,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="12,-1" stop="12,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="13,0" stop="13,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="13,-1" stop="13,-1"/> + </blockTableStyle> + <blockTableStyle id="Table6"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/> + </blockTableStyle> + <blockTableStyle id="Table8"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/> + </blockTableStyle> + <blockTableStyle id="Table9"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/> + </blockTableStyle> + <blockTableStyle id="Table1"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <initialize> + <paraStyle name="all" alignment="justify"/> + </initialize> + <paraStyle name="Standard" fontName="Times-Roman"/> + <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Text body" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="List" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="Index" fontName="Times-Roman"/> + <paraStyle name="Table Contents" fontName="Times-Roman"/> + <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/> + <paraStyle name="Drawing" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="Header" fontName="Times-Roman"/> + <paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Times-Roman" fontSize="10.0" leading="13"/> + <paraStyle name="Addressee" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="3.0"/> + <paraStyle name="Signature" fontName="Times-Roman"/> + <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Salutation" fontName="Times-Roman"/> + <paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="Footer" fontName="Times-Roman"/> + <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/> + <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_space" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="9.0" spaceAfter="0.0"/> + </stylesheet> + <images/> + <story> + <para style="terp_default_8">[[ repeatIn(get_employee(data['form']), 'o') ]]</para> + <para style="terp_header_Centre">Employees Salary Details </para> + <para style="terp_default_Centre_9">For [[ get_fiscalyear(data['form']['fiscalyear_id']) ]]</para> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <blockTable colWidths="100.0,162.0,92.0,161.0,103.0,167.0" style="Table2"> + <tr> + <td> + <para style="terp_tblheader_Details">Employee Code</para> + </td> + <td> + <para style="terp_default_9">[[ o.ssnid ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">Department</para> + </td> + <td> + <para style="terp_default_9">[[ o.company_id and o.company_id.name or '' ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">Bank</para> + </td> + <td> + <para style="terp_default_9">[[ o.otherid or '' ]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="100.0,162.0,92.0,161.0,103.0,167.0" style="Table3"> + <tr> + <td> + <para style="terp_tblheader_Details">Employee Name</para> + </td> + <td> + <para style="terp_default_9">[[ o.name ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">PAN No.</para> + </td> + <td> + <para style="terp_default_9">[[ o.pan_no or '' ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">Address</para> + </td> + <td> + <para style="terp_default_9">[[o.address_home_id and o.address_home_id.name or '' ]]</para> + </td> + </tr> + </blockTable> + <blockTable colWidths="100.0,162.0,92.0,161.0,103.0,167.0" style="Table5"> + <tr> + <td> + <para style="terp_tblheader_Details">Designation</para> + </td> + <td> + <para style="terp_default_9">[[ o.contract_ids and o.contract_ids[0].function.name or '' ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">Phone No.</para> + </td> + <td> + <para style="terp_default_9">[[ o.work_phone or '' ]]</para> + </td> + <td> + <para style="terp_tblheader_Details">E-mail Address</para> + </td> + <td> + <para style="terp_default_9">[[o.work_email or '' ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_8">[[ repeatIn(get_periods(data['form']),'m') ]]</para> + <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,54.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table4"> + <tr> + <td> + <para style="terp_tblheader_Details">Title</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[0] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[1] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[2] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[3] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[4] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[5] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[6] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[7] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[8] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[9] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[10] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[11] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">Total</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_9">[[ get_employee_detail(o) ]]</para> + <para style="terp_tblheader_Details">Allowances with Basic:</para> + <section> + <para style="terp_default_9">[[ repeatIn(get_allow(),'e1') ]]</para> + <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,55.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table6"> + <tr> + <td> + <para style="terp_default_9">[[ e1[0] ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[1]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[2]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[3]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[4]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[5]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[6]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[7]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[8]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[9]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[10]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[11]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e1[12]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9_Bold">[[ formatLang(e1[13]) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_tblheader_Details">Deductions:</para> + <section> + <para style="terp_default_9">[[ repeatIn(get_deduct(),'e2') ]]</para> + <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,55.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table8"> + <tr> + <td> + <para style="terp_default_9">[[ e2[0] ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[1]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[2]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[3]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[4]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[5]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[6]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[7]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[8]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[9]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[10]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[11]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e2[12]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9_Bold">[[ formatLang(e2[13]) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_tblheader_Details">Others:</para> + <section> + <para style="terp_default_9">[[ repeatIn(get_other(),'e3') ]]</para> + <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,55.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table9"> + <tr> + <td> + <para style="terp_default_9">[[ e3[0] ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[1]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[2]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[3]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[4]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[5]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[6]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[7]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[8]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[9]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[10]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[11]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e3[12]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9_Bold">[[ formatLang(e3[13]) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <blockTable colWidths="74.0,54.0,50.0,55.0,52.0,55.0,55.0,54.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table1"> + <tr> + <td> + <para style="terp_tblheader_Details">[[ get_monthly_total()[0] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[1]) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[2]) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[3]) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[4]) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[5]) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[6]) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[7]) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[8]) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[9]) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[10]) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[11]) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_monthly_total()[12]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right"><u>[[ formatLang(get_total()) ]]</u></para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <para style="terp_default_9"> + <font color="white"> </font> + </para> + </story> +</document> diff --git a/addons/hr_payroll/report/report_payroll_advice.py b/addons/hr_payroll/report/report_payroll_advice.py new file mode 100644 index 00000000000..d33ad5affc1 --- /dev/null +++ b/addons/hr_payroll/report/report_payroll_advice.py @@ -0,0 +1,54 @@ +import time +import mx.DateTime +from report import report_sxw +from tools import amount_to_text_en + +class payroll_advice_report(report_sxw.rml_parse): + def __init__(self, cr, uid, name, context): + super(payroll_advice_report, self).__init__(cr, uid, name, context) + + self.total_amount = 0.00 + self.total_bysal = 0.00 + self.localcontext.update({ + 'time': time, + 'get_month' : self.get_month, + 'convert' : self.convert, + 'get_detail' : self.get_detail, + 'get_total' : self.get_total, + 'get_bysal_total' : self.get_bysal_total, + }) + + def get_month(self,input_date): + res = { + 'mname':'' + } + date = mx.DateTime.strptime(input_date, '%Y-%m-%d') + res['mname']= date.strftime('%B')+'-'+date.strftime('%Y') + return res + + def convert(self,amount, cur): + amt_en = amount_to_text_en.amount_to_text(amount,'en',cur); + return amt_en + + def get_bysal_total(self): + return self.total_bysal + + def get_total(self): + return self.total_amount + + def get_detail(self,line_ids): + result =[] + if line_ids: + for l in line_ids: + res = {} + res['name'] = l.employee_id.name + res['acc_no'] = l.name + res['amount'] = l.amount + res['bysal'] = l.bysal + res['flag'] = l.flag + self.total_amount += l.amount + self.total_bysal += l.bysal + result.append(res) + return result + +report_sxw.report_sxw('report.payroll.advice', 'hr.payroll.advice', 'hr_payroll/report/report_payroll_advice.rml', parser=payroll_advice_report)
\ No newline at end of file diff --git a/addons/hr_payroll/report/report_payroll_advice.rml b/addons/hr_payroll/report/report_payroll_advice.rml new file mode 100644 index 00000000000..00a2d599d0e --- /dev/null +++ b/addons/hr_payroll/report/report_payroll_advice.rml @@ -0,0 +1,337 @@ +<?xml version="1.0"?> +<document filename="test.pdf"> + <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20"> + <pageTemplate id="first"> + <frame id="first" x1="28.0" y1="28.0" width="539" height="786"/> + </pageTemplate> + </template> + <stylesheet> + <blockTableStyle id="Standard_Outline"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table1"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table2"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table3"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table4"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/> + </blockTableStyle> + <blockTableStyle id="Table5"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table6"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/> + </blockTableStyle> + <blockTableStyle id="Table7"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <initialize> + <paraStyle name="all" alignment="justify"/> + </initialize> + <paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="Standard" fontName="Times-Roman"/> + <paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="Index" fontName="Helvetica"/> + <paraStyle name="Table Contents" fontName="Times-Roman"/> + <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/> + <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="Footer" fontName="Times-Roman"/> + <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/> + <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_default_0.30cmspace" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="9.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_1" fontName="Helvetica" fontSize="4.0" leading="5" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_8_space" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="1.0"/> + <paraStyle name="Drawing" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="Header" fontName="Times-Roman"/> + <paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Times-Roman" fontSize="10.0" leading="13"/> + <paraStyle name="Addressee" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="3.0"/> + <paraStyle name="Signature" fontName="Times-Roman"/> + <paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Salutation" fontName="Times-Roman"/> + <paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/> + </stylesheet> + <images/> + <story> + <para style="terp_default_8">[[repeatIn(objects,'o')]]</para> + <para style="terp_tblheader_Details_Centre">Payment Advice</para> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <blockTable colWidths="269.0,269.0" style="Table1"> + <tr> + <td> + <para style="terp_default_9"> + <font color="white"> </font> + </para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(o.date,date=True) ]]</para> + </td> + </tr> + <tr> + <td> + <para style="terp_default_Bold_9">The Manager</para> + </td> + <td> + <para style="terp_default_Bold_9"> + <font color="white"> </font> + </para> + </td> + </tr> + <tr> + <td> + <para style="terp_default_Bold_9">Axis Bank</para> + </td> + <td> + <para style="terp_default_Bold_9"> + <font color="white"> </font> + </para> + </td> + </tr> + <tr> + <td> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <para style="terp_default_9">Dear Sir/Madam,</para> + </td> + <td> + <para style="terp_default_9"> + <font color="white"> </font> + </para> + </td> + </tr> + </blockTable> + <blockTable colWidths="539.0" style="Table2"> + <tr> + <td> + <para style="terp_tblheader_General_Centre"><u>[[ o.name ]] for period [[ get_month(o.date)['mname'] ]]</u></para> + </td> + </tr> + </blockTable> + <blockTable colWidths="539.0" style="Table3"> + <tr> + <td> + <para style="terp_default_9">[[ o.note ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_8_space"> + <font color="white"> </font> + </para> + <blockTable colWidths="61.0,166.0,84.0,82.0,111.0,35.0" style="Table4"> + <tr> + <td> + <para style="terp_tblheader_Details">SI. No.</para> + </td> + <td> + <para style="terp_tblheader_Details">Name of the Employee</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">Amount</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">By Sal</para> + </td> + <td> + <para style="terp_tblheader_Details">Bank Account</para> + </td> + <td> + <para style="terp_tblheader_Details">C/D</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_8">[[ repeatIn(get_detail(o.line_ids),'line') ]]</para> + <blockTable colWidths="60.0,167.0,84.0,82.0,110.0,35.0" style="Table5"> + <tr> + <td> + <para style="P1" leftIndent="15" bulletIndent="0"> + <bullet size="8.0"><seq id="L1"/>.</bullet> + <font color="white"> </font> + </para> + </td> + <td> + <para style="terp_default_9">[[ line['name'] ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(line['amount' ]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(line['bysal']) ]]</para> + </td> + <td> + <para style="terp_default_9">[[ line['acc_no'] ]]</para> + </td> + <td> + <para style="terp_default_9">[[ line['flag'] ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <blockTable colWidths="60.0,167.0,84.0,82.0,145.0" style="Table6"> + <tr> + <td> + <para style="terp_tblheader_Details"> + <font color="white"> </font> + </para> + </td> + <td> + <para style="terp_tblheader_Details">Total</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_total()) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ formatLang(get_bysal_total()) ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right"> + <font color="white"> </font> + </para> + </td> + </tr> + </blockTable> + <para style="terp_default_0.30cmspace"> + <font color="white"> </font> + </para> + <blockTable colWidths="269.0,269.0" style="Table7"> + <tr> + <td> + <para style="terp_tblheader_Details">Yours Sincerely</para> + </td> + <td> + <para style="terp_tblheader_Details"> + <font color="white"> </font> + </para> + </td> + </tr> + <tr> + <td> + <para style="terp_tblheader_Details">For [[ company.name ]]</para> + </td> + <td> + <para style="terp_tblheader_Details"> + <font color="white"> </font> + </para> + </td> + </tr> + <tr> + <td> + <para style="terp_tblheader_Details"> + <font color="white"> </font> + </para> + </td> + <td> + <para style="terp_tblheader_Details"> + <font color="white"> </font> + </para> + </td> + </tr> + <tr> + <td> + <para style="terp_tblheader_Details"> + <font color="white"> </font> + </para> + </td> + <td> + <para style="terp_tblheader_Details"> + <font color="white"> </font> + </para> + </td> + </tr> + <tr> + <td> + <para style="terp_tblheader_Details">Authorised Signature</para> + </td> + <td> + <para style="terp_tblheader_Details"> + <font color="white"> </font> + </para> + </td> + </tr> + </blockTable> + <para style="terp_default_9"> + <font color="white"> </font> + </para> + <para> + <seqReset id="L1"/> + </para> + </story> +</document> diff --git a/addons/hr_payroll/report/report_payroll_register.py b/addons/hr_payroll/report/report_payroll_register.py new file mode 100644 index 00000000000..6ab5b0c35c9 --- /dev/null +++ b/addons/hr_payroll/report/report_payroll_register.py @@ -0,0 +1,72 @@ +import time +import mx.DateTime +from report import report_sxw +from tools import amount_to_text_en + +class report_payroll_register(report_sxw.rml_parse): + def __init__(self, cr, uid, name, context): + super(report_payroll_register, self).__init__(cr, uid, name, context) + + self.total_amount = 0.00 + self.total_bysal = 0.00 + self.localcontext.update({ + 'time': time, + 'get_month': self.get_month, + 'get_no': self.get_no, + 'get_basic':self.get_basic, + 'get_other':self.get_other, + 'get_allow':self.get_allow, + 'get_grows':self.get_grows, + 'get_deduct':self.get_deduct, + 'get_net':self.get_net, + 'add_line':self.add_line, + }) + self.no = 0 + self.basic = 0.0 + self.other = 0.0 + self.allow = 0.0 + self.grows = 0.0 + self.deduct = 0.0 + self.net = 0.0 + + def add_line(self, line): + self.basic += line.basic + self.other += line.other_pay + self.allow += line.allounce + self.grows += line.grows + self.deduct += line.deduction + self.net += line.net + + def get_basic(self): + return self.basic + + def get_other(self): + return self.other + + def get_allow(self): + return self.allow + + def get_grows(self): + return self.grows + + def get_deduct(self): + return self.deduct + + def get_net(self): + return self.net + + def get_month(self, indate): + new_date = mx.DateTime.strptime(indate, '%Y-%m-%d') + out_date = new_date.strftime('%B')+'-'+new_date.strftime('%Y') + return out_date + + def get_no(self): + self.no += 1 + return self.no + +report_sxw.report_sxw( + 'report.hr.payroll.register.sheet', + 'hr.payroll.register', + 'hr_payroll/report/payroll_register.rml', + parser=report_payroll_register +) diff --git a/addons/hr_payroll/report/report_payslip.py b/addons/hr_payroll/report/report_payslip.py new file mode 100755 index 00000000000..7895178de58 --- /dev/null +++ b/addons/hr_payroll/report/report_payslip.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# d$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +import time +import mx.DateTime +from report import report_sxw +from tools import amount_to_text_en + +class payslip_report(report_sxw.rml_parse): + + def __init__(self, cr, uid, name, context): + super(payslip_report, self).__init__(cr, uid, name, context) + self.localcontext.update({ + 'convert' : self.convert, + 'get_month' : self.get_month, + 'get_earnings': self.get_earnings, + 'get_deductions':self.get_deductions, + 'get_leave':self.get_leave, + 'get_others':self.get_others, + }) + + + def convert(self,amount, cur): + amt_en = amount_to_text_en.amount_to_text(amount,'en',cur) + return amt_en + + def get_others(self,obj): + res = [] + ids = [] + for id in range(len(obj)): + if obj[id].category_id.type == 'other' and obj[id].type != 'leaves': + ids.append(obj[id].id) + payslip_line = self.pool.get('hr.payslip.line') + if len(ids): + res = payslip_line.browse(self.cr, self.uid, ids) + return res + + def get_leave(self,obj): + res = [] + ids = [] + for id in range(len(obj)): + if obj[id].type == 'leaves': + ids.append(obj[id].id) + payslip_line = self.pool.get('hr.payslip.line') + if len(ids): + res = payslip_line.browse(self.cr, self.uid, ids) + return res + + def get_earnings(self,obj): + res = [] + ids = [] + for id in range(len(obj)): + if obj[id].category_id.type == 'allow' and obj[id].type != 'leaves': + ids.append(obj[id].id) + payslip_line = self.pool.get('hr.payslip.line') + if len(ids): + res = payslip_line.browse(self.cr, self.uid, ids) + return res + + def get_deductions(self,obj): + res = [] + ids = [] + for id in range(len(obj)): + if obj[id].category_id.type == 'deduct' and obj[id].type != 'leaves': + ids.append(obj[id].id) + payslip_line = self.pool.get('hr.payslip.line') + if len(ids): + res = payslip_line.browse(self.cr, self.uid, ids) + return res + + def get_month(self,obj): + res = { + 'mname':'' + } + date = mx.DateTime.strptime(obj.date, '%Y-%m-%d') + res['mname']= date.strftime('%B')+"-"+date.strftime('%Y') + return res['mname'] + +report_sxw.report_sxw('report.payslip.pdf', 'hr.payslip', 'hr_payroll/report/payslip.rml', parser=payslip_report) + + + + + + + + + + + + + + + + diff --git a/addons/hr_payroll/report/report_year_report.rml b/addons/hr_payroll/report/report_year_report.rml new file mode 100755 index 00000000000..74c6d347550 --- /dev/null +++ b/addons/hr_payroll/report/report_year_report.rml @@ -0,0 +1,298 @@ +<?xml version="1.0"?> +<document filename="test.pdf"> + <template pageSize="(842.0,595.0)" title="Test" author="Martin Simon" allowSplitting="20"> + <pageTemplate id="first"> + <frame id="first" x1="28.0" y1="28.0" width="786" height="539"/> + </pageTemplate> + </template> + <stylesheet> + <blockTableStyle id="Standard_Outline"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <blockTableStyle id="Table4"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="5,0" stop="5,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="6,0" stop="6,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="7,0" stop="7,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="8,0" stop="8,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="8,-1" stop="8,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="9,0" stop="9,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="9,-1" stop="9,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="10,0" stop="10,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="10,-1" stop="10,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="11,0" stop="11,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="11,-1" stop="11,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="12,0" stop="12,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="12,-1" stop="12,-1"/> + <lineStyle kind="LINEABOVE" colorName="#000000" start="13,0" stop="13,0"/> + <lineStyle kind="LINEBELOW" colorName="#000000" start="13,-1" stop="13,-1"/> + </blockTableStyle> + <blockTableStyle id="Table1"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="7,-1" stop="7,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="8,-1" stop="8,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="9,-1" stop="9,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="10,-1" stop="10,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="11,-1" stop="11,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="12,-1" stop="12,-1"/> + <lineStyle kind="LINEBELOW" colorName="#cccccc" start="13,-1" stop="13,-1"/> + </blockTableStyle> + <blockTableStyle id="Table6"> + <blockAlignment value="LEFT"/> + <blockValign value="TOP"/> + </blockTableStyle> + <initialize> + <paraStyle name="all" alignment="justify"/> + </initialize> + <paraStyle name="P1" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="Standard" fontName="Times-Roman"/> + <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Text body" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="List" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="Index" fontName="Times-Roman"/> + <paraStyle name="Table Contents" fontName="Times-Roman"/> + <paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/> + <paraStyle name="Drawing" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="Header" fontName="Times-Roman"/> + <paraStyle name="Endnote" rightIndent="0.0" leftIndent="14.0" fontName="Times-Roman" fontSize="10.0" leading="13"/> + <paraStyle name="Addressee" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="3.0"/> + <paraStyle name="Signature" fontName="Times-Roman"/> + <paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 8" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 7" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 6" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 5" fontName="Helvetica-Bold" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 4" fontName="Helvetica-BoldOblique" fontSize="85%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 1" fontName="Helvetica-Bold" fontSize="115%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 10" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="Heading 2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="First line indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Hanging indent" rightIndent="0.0" leftIndent="28.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Salutation" fontName="Times-Roman"/> + <paraStyle name="Text body indent" rightIndent="0.0" leftIndent="0.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="List Indent" rightIndent="0.0" leftIndent="142.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="Marginalia" rightIndent="0.0" leftIndent="113.0" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="6.0"/> + <paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/> + <paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="Footer" fontName="Times-Roman"/> + <paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/> + <paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> + <paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> + <paraStyle name="terp_default_space" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="9.0" spaceAfter="0.0"/> + </stylesheet> + <images/> + <story> + <para style="terp_header_Centre">Yearly Salary Details </para> + <para style="terp_default_Centre_9">For [[ get_fiscalyear(data['form']['fiscalyear_id']) ]]</para> + <para style="terp_default_space"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_8">[[ repeatIn(get_periods(data['form']),'m') ]]</para> + <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,54.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table4"> + <tr> + <td> + <para style="terp_tblheader_Details">Name</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[0] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[1] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[2] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[3] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[4] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[5] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[6] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[7] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[8] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[9] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[10] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">[[ m[11] ]]</para> + </td> + <td> + <para style="terp_tblheader_Details_Right">Total</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <section> + <para style="terp_default_9">[[ repeatIn(get_employee(data['form']),'e') ]]</para> + <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,55.0,56.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table1"> + <tr> + <td> + <para style="terp_default_9">[[ e[0] ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[1]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[2]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[3]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[4]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[5]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[6]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[7]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[8]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[9]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[10]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[11]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9">[[ formatLang(e[12]) ]]</para> + </td> + <td> + <para style="terp_default_Right_9_Bold">[[ formatLang(e[13]) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + <section> + <para style="P1">[[ repeatIn(get_months_tol(),'t') ]]</para> + <blockTable colWidths="74.0,54.0,51.0,55.0,52.0,56.0,55.0,53.0,56.0,56.0,56.0,56.0,56.0,56.0" style="Table6"> + <tr> + <td> + <para style="terp_tblheader_Details">Total</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[1]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[2]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[3]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[4]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[5]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[6]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[7]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[8]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[9]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[10]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[11]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(t[12]) ]]</para> + </td> + <td> + <para style="terp_tblheader_General_Right">[[ formatLang(get_total()) ]]</para> + </td> + </tr> + </blockTable> + <para style="terp_default_1"> + <font color="white"> </font> + </para> + </section> + <para style="terp_default_8"> + <font color="white"> </font> + </para> + </story> +</document> diff --git a/addons/hr_payroll/report/report_year_salary.py b/addons/hr_payroll/report/report_year_salary.py new file mode 100755 index 00000000000..1866ef795b6 --- /dev/null +++ b/addons/hr_payroll/report/report_year_salary.py @@ -0,0 +1,113 @@ +import time +import locale +import datetime +from report import report_sxw +import time +import pooler +import rml_parse +import mx.DateTime +from mx.DateTime import RelativeDateTime, now, DateTime, localtime + +class year_salary_report(rml_parse.rml_parse): + + def __init__(self, cr, uid, name, context): + super(year_salary_report, self).__init__(cr, uid, name, context) + self.localcontext.update({ + 'time': time, + 'get_employee' : self.get_employee, + 'get_periods' : self.get_periods, + 'get_months_tol' : self.get_months_tol, + 'get_fiscalyear' : self.get_fiscalyear, + 'get_total' : self.get_total, + }) + + self.mnths =[] + self.mnths_tol = [] + self.curr_fiscal_year_name='' + self.total=0.0 + + def get_periods(self,form): + fiscalyear = pooler.get_pool(self.cr.dbname).get('account.fiscalyear') + curr_fiscalyear_id = form['fiscalyear_id'] + curr_fiscalyear = fiscalyear.read(self.cr,self.uid,[form['fiscalyear_id']],['date_start','date_stop'])[0] + +# Get start year-month-date and end year-month-date + fy = int(curr_fiscalyear['date_start'][0:4]) + ly = int(curr_fiscalyear['date_stop'][0:4]) + + fm = int(curr_fiscalyear['date_start'][5:7]) + lm = int(curr_fiscalyear['date_stop'][5:7]) + no_months = (ly-fy)*12+lm-fm + 1 + cm = fm + cy = fy + +# Get name of the months from integer + mnth_name = [] + for count in range(0,no_months): + m = datetime.date(cy, cm, 1).strftime('%b') + mnth_name.append(m) + self.mnths.append(str(cm)+'-'+str(cy)) + if cm == 12: + cm = 0 + cy = ly + cm = cm +1 + return [mnth_name] + + def get_fiscalyear(self,fiscalyear_id): + fiscalyear_obj = pooler.get_pool(self.cr.dbname).get('account.fiscalyear') + return fiscalyear_obj.read(self.cr,self.uid,[fiscalyear_id],['name'])[0]['name'] + + + def get_employee(self,form): + ls1=[] + ls = [] + periods = [] + tol_mnths=['Total',0,0,0,0,0,0,0,0,0,0,0,0] + emp = pooler.get_pool(self.cr.dbname).get('hr.employee') + emp_ids = form['employee_ids'][0][2] + empll = emp.browse(self.cr,self.uid, emp_ids) + fiscalyear_obj = pooler.get_pool(self.cr.dbname).get('account.fiscalyear').browse(self.cr, self.uid, form['fiscalyear_id']) + period_ids_l = fiscalyear_obj.period_ids + for period in period_ids_l: + periods.append(period.id) + periods_ids = ','.join(map(str, periods)) + cnt = 1 + for emp_id in empll: + ls1.append(emp_id.name) + tol = 0.0 + for mnth in self.mnths: + if len(mnth) != 7: + mnth = '0' + str(mnth) + query = "select net from hr_payslip where employee_id = "+str(emp_id.id)+" and to_char(date,'mm-yyyy') like '%"+mnth+"%' and state = 'done' and period_id in "+"("+ periods_ids +")" +"" + self.cr.execute(query) + sal = self.cr.fetchall() + try: + ls1.append(sal[0][0]) + except: + ls1.append(0) + try: + tol += sal[0][0] + tol_mnths[cnt] = tol_mnths[cnt] + sal[0][0] + except: + tol += 0 + cnt = cnt + 1 + cnt = 1 + ls1.append(tol) + ls.append(ls1) + ls1 = [] + self.mnths_tol.append(tol_mnths) + return ls + + def get_months_tol(self): + return self.mnths_tol + + def get_total(self): + for item in self.mnths_tol: + for count in range(1,len(item)): + self.total += item[count] + return self.total + +report_sxw.report_sxw('report.year.salary', 'hr.payslip', 'hr_payroll/report/report_year_report.rml', parser=year_salary_report) + + + diff --git a/addons/hr_payroll/report/rml_parse.py b/addons/hr_payroll/report/rml_parse.py new file mode 100755 index 00000000000..beeb6deae49 --- /dev/null +++ b/addons/hr_payroll/report/rml_parse.py @@ -0,0 +1,162 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# $Id$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## +from report import report_sxw +import xml.dom.minidom +import os, time +import osv +import re +import tools +import pooler +import re +import sys + + +class rml_parse(report_sxw.rml_parse): + def __init__(self, cr, uid, name, context): + super(rml_parse, self).__init__(cr, uid, name, context=None) + self.localcontext.update({ + 'comma_me': self.comma_me, + 'format_date': self._get_and_change_date_format_for_swiss, + 'strip_name' : self._strip_name, + 'explode_name' : self._explode_name, + }) + + def comma_me(self,amount): + #print "#" + str(amount) + "#" + if not amount: + amount = 0.0 + if type(amount) is float : + amount = str('%.2f'%amount) + else : + amount = str(amount) + if (amount == '0'): + return ' ' + orig = amount + new = re.sub("^(-?\d+)(\d{3})", "\g<1>'\g<2>", amount) + if orig == new: + return new + else: + return self.comma_me(new) + def _ellipsis(self, string, maxlen=100, ellipsis = '...'): + ellipsis = ellipsis or '' + try: + return string[:maxlen - len(ellipsis) ] + (ellipsis, '')[len(string) < maxlen] + except Exception, e: + return False + def _strip_name(self, name, maxlen=50): + return self._ellipsis(name, maxlen, '...') + + def _get_and_change_date_format_for_swiss (self,date_to_format): + date_formatted='' + if date_to_format: + date_formatted = strptime (date_to_format,'%Y-%m-%d').strftime('%d.%m.%Y') + return date_formatted + + def _explode_name(self,chaine,length): + # We will test if the size is less then account + full_string = '' + if (len(str(chaine)) <= length): + return chaine + # + else: + chaine = unicode(chaine,'utf8').encode('iso-8859-1') + rup = 0 + for carac in chaine: + rup = rup + 1 + if rup == length: + full_string = full_string + '\n' + full_string = full_string + carac + rup = 0 + else: + full_string = full_string + carac + + return full_string + + def makeAscii(self,str): + try: + Stringer = str.encode("utf-8") + except UnicodeDecodeError: + try: + Stringer = str.encode("utf-16") + except UnicodeDecodeError: + print "UTF_16 Error" + Stringer = str + else: + return Stringer + else: + return Stringer + return Stringer + + def explode_this(self,chaine,length): + #chaine = self.repair_string(chaine) + chaine = rstrip(chaine) + ast = list(chaine) + i = length + while i <= len(ast): + ast.insert(i,'\n') + i = i + length + chaine = str("".join(ast)) + return chaine + + def repair_string(self,chaine): + ast = list(chaine) + UnicodeAst = [] + _previouslyfound = False + i = 0 + #print str(ast) + while i < len(ast): + elem = ast[i] + try: + Stringer = elem.encode("utf-8") + except UnicodeDecodeError: + to_reencode = elem + ast[i+1] + print str(to_reencode) + Good_char = to_reencode.decode('utf-8') + UnicodeAst.append(Good_char) + i += i +2 + else: + UnicodeAst.append(elem) + i += i + 1 + return "".join(UnicodeAst) + + def ReencodeAscii(self,str): + print sys.stdin.encoding + try: + Stringer = str.decode("ascii") + except UnicodeEncodeError: + print "REENCODING ERROR" + return str.encode("ascii") + except UnicodeDecodeError: + print "DECODING ERROR" + return str.encode("ascii") + + else: + print Stringer + return Stringer + + def _add_header(self, node, header=1): + if header==2: + rml_head = self.rml_header2 + else: + rml_head = self.rml_header + rml_head = rml_head.replace('<pageGraphics>','''<pageGraphics> <image x="10" y="26cm" height="770.0" width="1120.0" >[[company.logo]] </image> ''') + return True diff --git a/addons/hr_payroll/wizard/__init__.py b/addons/hr_payroll/wizard/__init__.py new file mode 100755 index 00000000000..453998a44ca --- /dev/null +++ b/addons/hr_payroll/wizard/__init__.py @@ -0,0 +1,3 @@ +import wizard_year_salary +import wizard_employees_detail +import wizard_create_analytic diff --git a/addons/hr_payroll/wizard/wizard_create_analytic.py b/addons/hr_payroll/wizard/wizard_create_analytic.py new file mode 100644 index 00000000000..371b0a2bda4 --- /dev/null +++ b/addons/hr_payroll/wizard/wizard_create_analytic.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# d$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +import wizard +import pooler + +class wizard_create_analytics(wizard.interface): + ''' + OpenERP Wizard + ''' + form = '''<?xml version="1.0"?> + <form string="Process Form"> + <field name="company_id"/> + <newline/> + <field name="type"/> + </form>''' + + fields = { + 'company_id': {'string': 'Company', 'type': 'many2one', 'relation': 'res.company'}, + 'type': {'string':'Type', 'type':'selection', 'selection':[('bydeg','By Employee Function'), ('byallded','By Allownce / Deduction')]} + } + + def _get_defaults(self, cr, user, data, context): + #TODO : initlize required data + + + return data['form'] + + def _do_duplicate(self, cr, uid, data, context): + pool = pooler.get_pool(cr.dbname) + account_pool = pool.get('account.analytic.account') + func_pool = pool.get('hr.employee.grade') + ad_pool = pool.get('hr.allounce.deduction.categoty') + + tpy = data['form']['type'] + company = data['form']['company_id'] + + function_ids = func_pool.search(cr, uid, []) + ad_ids = ad_pool.search(cr, uid, []) + + if tpy == 'bydeg': + for function in func_pool.browse(cr, uid, function_ids): + res = { + 'name':function.name, + 'company_id':company + } + fid = account_pool.create(cr, uid, res) + res = { + 'name':'Basic Salary', + 'company_id':company, + 'parent_id': fid + } + account_pool.create(cr, uid, res) + for ad in ad_pool.browse(cr, uid, ad_ids): + res = { + 'name':ad.name, + 'company_id':company, + 'parent_id': fid + } + account_pool.create(cr, uid, res) + + + + elif tpy == 'byallded': + res = { + 'name':'Basic Salary', + 'company_id':company + } + adid = account_pool.create(cr, uid, res) + for function in func_pool.browse(cr, uid, function_ids): + res = { + 'name':function.name, + 'company_id':company, + 'parent_id': adid + } + account_pool.create(cr, uid, res) + + for ad in ad_pool.browse(cr, uid, ad_ids): + res = { + 'name':ad.name, + 'company_id':company, + } + adid = account_pool.create(cr, uid, res) + for function in func_pool.browse(cr, uid, function_ids): + res = { + 'name':function.name, + 'company_id':company, + 'parent_id': adid + } + account_pool.create(cr, uid, res) + + return {} + + states = { + 'init': { + 'actions': [_get_defaults], + 'result': {'type': 'form', 'arch': form, 'fields': fields, 'state': (('end', 'Cancel'), ('process', 'Process'))}, + }, + 'process': { + 'actions': [_do_duplicate], + 'result': {'type': 'state', 'state': 'end'}, + }, + } +wizard_create_analytics('payroll.analysis') diff --git a/addons/hr_payroll/wizard/wizard_employees_detail.py b/addons/hr_payroll/wizard/wizard_employees_detail.py new file mode 100755 index 00000000000..707a428229e --- /dev/null +++ b/addons/hr_payroll/wizard/wizard_employees_detail.py @@ -0,0 +1,60 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# $Id$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +import wizard +import datetime +import pooler +import time +import netsvc + +form='''<?xml version="1.0"?> +<form string="Year Salary"> + <field name="fiscalyear_id" select="1" colspan="2"/> + <newline/> + <field name="employee_ids" colspan="2"/> + <newline/> +</form>''' +fields = { + 'fiscalyear_id':{'string': 'Fiscal Year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True }, + 'employee_ids':{'string':'Employees', 'type':'many2many','relation':'hr.employee','required':True}, + } + +class wizard_print(wizard.interface): + def _get_defaults(self, cr, uid, data, context={}): + fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear') + data['form']['fiscalyear_id'] = fiscalyear_obj.find(cr, uid) + return data['form'] + + states={ + 'init':{ + 'actions':[_get_defaults], + 'result':{'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel','gtk-cancel'),('report','Print','gtk-print')]} + }, + 'report':{ + 'actions':[], + 'result':{'type':'print', 'report':'employees.salary', 'state':'end'} + } + } +wizard_print('wizard.employees.detail') + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/hr_payroll/wizard/wizard_year_salary.py b/addons/hr_payroll/wizard/wizard_year_salary.py new file mode 100755 index 00000000000..efab1695ba1 --- /dev/null +++ b/addons/hr_payroll/wizard/wizard_year_salary.py @@ -0,0 +1,69 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved +# $Id$ +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +import wizard +import datetime +import pooler +import time +import netsvc + +form='''<?xml version="1.0"?> +<form string="Year Salary"> + <field name="fiscalyear_id" select="1" colspan="2"/> + <newline/> + <field name="employee_ids" colspan="2"/> + <newline/> + <separator string="Salary Deposit Date Option?" colspan="2"/> + <newline/> + <field name="salary_on"/> +</form>''' +fields = { + 'fiscalyear_id':{'string': 'Fiscal Year', 'type': 'many2one', 'relation': 'account.fiscalyear', 'required': True }, + 'employee_ids':{'string':'Employees', 'type':'many2many','relation':'hr.employee','required':True}, + 'salary_on':{ + 'string':"Salary On", + 'type':'selection', + 'selection':[('current_month','Current Month Date'),('next_month','Next Month Date')], + 'default': lambda *a:'current_month' + }, + } + +class wizard_print(wizard.interface): + def _get_defaults(self, cr, uid, data, context={}): + fiscalyear_obj = pooler.get_pool(cr.dbname).get('account.fiscalyear') + data['form']['fiscalyear_id'] = fiscalyear_obj.find(cr, uid) + return data['form'] + + states={ + 'init':{ + 'actions':[_get_defaults], + 'result':{'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel','gtk-cancel'),('report','Print','gtk-print')]} + }, + 'report':{ + 'actions':[], + 'result':{'type':'print', 'report':'year.salary', 'state':'end'} + } + } +wizard_print('wizard.year.salary') + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml index 65d5db06fe3..5183587e992 100644 --- a/addons/hr_recruitment/hr_recruitment_view.xml +++ b/addons/hr_recruitment/hr_recruitment_view.xml @@ -216,20 +216,20 @@ <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Jobs"> - <filter icon="gtk-new" string="Current" + <filter icon="terp-check" string="Current" domain="[('state','in',('draft','open'))]" help="All new and in progress jobs" default="1" /> - <filter icon="gtk-new" string="New" + <filter icon="terp-document-new" string="New" domain="[('state','=','draft')]" help="All Initial Jobs" /> - <filter icon="gtk-yes" string="In Progress" + <filter icon="terp-camera_test" string="In Progress" domain="[('state','=','open')]" help="Open Jobs" /> - <filter icon="gtk-media-pause" string="Pending" + <filter icon="terp-gtk-media-pause" string="Pending" domain="[('state','=','pending')]" help="Pending Jobs" /> @@ -238,27 +238,27 @@ <field name="email_from"/> <field name="job_id" widget="selection"/> <field name="user_id" widget="selection"> - <filter domain="[('user_id','=',False)]" help="Unassigned Recruitements" icon="gtk-execute" separator="1"/> + <filter domain="[('user_id','=',False)]" help="Unassigned Recruitements" icon="terp-personal-" separator="1"/> </field> <field name="department_id" widget="selection" string="Department" context="{'invisible_department': False}"> - <filter icon="terp-hr" context="{'invisible_department': False}" + <filter icon="terp-personal+" context="{'invisible_department': False}" domain="[('department_id','=',context.get('department_id',False))]" help="My Department"/> </field> <newline/> <group expand="0" string="Group By..." colspan="11" col="20"> - <filter string="Department" icon="terp-project" domain="[]" context="{'group_by':'department_id'}"/> - <filter string="Responsible" icon="terp-project" domain="[]" context="{'group_by':'user_id'}"/> + <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/> + <filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> <separator orientation="vertical"/> - <filter string="Job" icon="terp-project" domain="[]" context="{'group_by':'job_id'}"/> - <filter string="Stage" icon="terp-project" domain="[]" context="{'group_by':'stage_id'}"/> - <filter string="Degree" icon="terp-project" domain="[]" context="{'group_by':'type_id'}"/> - <filter string="Availability" icon="terp-project" domain="[]" context="{'group_by':'availability'}"/> - <filter string="State" icon="terp-project" domain="[]" context="{'group_by':'state'}"/> + <filter string="Job" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'job_id'}"/> + <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/> + <filter string="Degree" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'type_id'}"/> + <filter string="Availability" icon="terp-camera_test" domain="[]" context="{'group_by':'availability'}"/> + <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> <separator orientation="vertical"/> - <filter string="Appreciation" icon="terp-project" domain="[]" context="{'group_by':'priority'}"/> + <filter string="Appreciation" icon="terp-face-plain" domain="[]" context="{'group_by':'priority'}"/> <separator orientation="vertical"/> - <filter string="Date" icon="terp-project" domain="[]" context="{'group_by':'create_date'}"/> + <filter string="Date" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}"/> </group> </search> </field> diff --git a/addons/hr_recruitment/report/hr_recruitment_report_view.xml b/addons/hr_recruitment/report/hr_recruitment_report_view.xml index 8a9e913a454..4fca4a8b239 100644 --- a/addons/hr_recruitment/report/hr_recruitment_report_view.xml +++ b/addons/hr_recruitment/report/hr_recruitment_report_view.xml @@ -47,29 +47,29 @@ <field name="arch" type="xml"> <search string="Recruitment Analysis"> <group> - <filter icon="gtk-media-rewind" string="365 Days" + <filter icon="terp-go-year" string="365 Days" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" help="Recruitment performed in last 356 days"/> - <filter icon="gtk-media-rewind" string="30 Days" + <filter icon="terp-go-month" string="30 Days" name="month" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]" help="Recruitment performed in this month"/> - <filter icon="gtk-media-rewind" + <filter icon="terp-go-week" string=" 7 Days " separator="1" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" help="Recruitment during last 7 days"/> <separator orientation="vertical"/> <filter string="Draft" - icon="terp-hr" + icon="terp-document-new" domain="[('state','=','draft')]" help = "Draft recruitment"/> <filter string="Current" - icon="terp-hr" + icon="terp-check" domain="[('state', '=' ,'open')]" help = "In progress recruitment"/> <filter string="Pending" - icon="terp-hr" + icon="terp-gtk-media-pause" domain="[('state','=','pending')]" help = "Pending recruitment"/> <separator orientation="vertical"/> @@ -83,21 +83,21 @@ </field> </group> <newline/> - <group expand="1" string="Group By ..."> - <filter string="User" name='User' icon="terp-hr" domain="[]" context="{'group_by':'user_id'}"/> - <filter string="Company" icon="terp-hr" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> - <filter string="Partner" icon="terp-hr" domain="[]" context="{'group_by':'partner_id'}" /> + <group expand="0" string="Group By ..."> + <filter string="User" name='User' icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> + <filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> + <filter string="Partner" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}" /> <separator orientation="vertical"/> - <filter string="State" icon="terp-hr" domain="[]" context="{'group_by':'state'}"/> - <filter string="Stage" icon="terp-hr" domain="[]" context="{'group_by':'stage_id'}" /> + <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/> + <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}" /> <separator orientation="vertical"/> - <filter string="Jobs" name="job" icon="terp-sale" domain="[]" context="{'group_by':'job_id'}"/> - <filter string="Department" name="department" icon="terp-hr" domain="[]" context="{'group_by':'department_id'}"/> - <filter string="Degree" name="degree" icon="terp-hr" domain="[]" context="{'group_by':'type_id'}"/> + <filter string="Jobs" name="job" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'job_id'}"/> + <filter string="Department" name="department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/> + <filter string="Degree" name="degree" icon="terp-gtk-select-all" domain="[]" context="{'group_by':'type_id'}"/> <separator orientation="vertical"/> - <filter string="Day" name = "day" icon="terp-hr" domain="[]" context="{'group_by':'day'}"/> - <filter string="Month" icon="terp-hr" domain="[]" context="{'group_by':'month'}"/> - <filter string="Year" icon="terp-hr" domain="[]" context="{'group_by':'year'}"/> + <filter string="Day" name = "day" icon="terp-go-month" domain="[]" context="{'group_by':'day'}"/> + <filter string="Month" icon="terp-go-month" domain="[]" context="{'group_by':'month'}"/> + <filter string="Year" icon="terp-go-year" domain="[]" context="{'group_by':'year'}"/> </group> <newline/> diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml index d7c12b14df7..947f0d34c41 100644 --- a/addons/hr_timesheet/hr_timesheet_view.xml +++ b/addons/hr_timesheet/hr_timesheet_view.xml @@ -50,7 +50,7 @@ <field name="arch" type="xml"> <search string="Timesheet"> <group col='8' colspan='4'> - <filter icon="terp-hr" domain="[('date', '=', time.strftime('%%Y-%%m-%%d'))]" string="Today"/> + <filter icon="terp-go-today" domain="[('date', '=', time.strftime('%%Y-%%m-%%d'))]" string="Today"/> <separator orientation="vertical"/> <field name="user_id" select="1" widget="selection"/> <field name="account_id" select="1" widget="selection"/> diff --git a/addons/hr_timesheet_invoice/i18n/pl.po b/addons/hr_timesheet_invoice/i18n/pl.po index 8f95108f331..6ba221731f2 100644 --- a/addons/hr_timesheet_invoice/i18n/pl.po +++ b/addons/hr_timesheet_invoice/i18n/pl.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-05-24 15:59+0000\n" -"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <Unknown>\n" +"PO-Revision-Date: 2010-06-04 21:45+0000\n" +"Last-Translator: ErnestŻyciński <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-25 03:42+0000\n" +"X-Launchpad-Export-Date: 2010-06-06 03:34+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: hr_timesheet_invoice @@ -327,7 +327,7 @@ msgstr "Upust (%)" #. module: hr_timesheet_invoice #: rml:account.analytic.profit:0 msgid "Eff." -msgstr "" +msgstr "Eff." #. module: hr_timesheet_invoice #: wizard_field:hr.timesheet.invoice.create,init,accounts:0 @@ -433,7 +433,7 @@ msgstr "Produkt" #. module: hr_timesheet_invoice #: rml:account.analytic.profit:0 msgid "%" -msgstr "" +msgstr "%" #. module: hr_timesheet_invoice #: field:hr_timesheet_invoice.factor,name:0 diff --git a/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml b/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml index 880e5837fd2..b3f81e5fbb1 100644 --- a/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml +++ b/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml @@ -47,21 +47,21 @@ <field name="arch" type="xml"> <search string="Timesheet by user"> <group col="10" colspan="4"> - <filter icon="terp-hr" string="This Year" + <filter icon="terp-go-year" string="This Year" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" help="Timesheet lines in this year"/> - <filter icon="terp-hr" string="This Month" + <filter icon="terp-go-month" string="This Month" name="month" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]" help="Timesheet lines in this month"/> - <filter icon="gtk-media-rewind" + <filter icon="terp-go-week" string=" 7 Days " separator="1" domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" help="Timesheet lines during last 7 days"/> <separator orientation="vertical"/> <field name="user_id" widget="selection"> - <filter icon="terp-hr" + <filter icon="terp-personal" string="Non Assigned timesheets to users" help="Non Assigned timesheets to users" domain="[('user_id','=',False)]"/> @@ -69,28 +69,16 @@ <field name="account_id"/> <field name="product_id"/> </group> - <group expand="1" string="Group By..."> - <filter string="User" name="User" icon="terp-hr" context="{'group_by':'user_id'}"/> + <group expand="0" string="Group By..."> + <filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/> <separator orientation="vertical"/> - <filter string="Account" icon="terp-hr" context="{'group_by':'account_id'}"/> - <filter string="Product" icon="terp-hr" context="{'group_by':'product_id'}"/> - <filter string="Invoice" icon="terp-hr" context="{'group_by':'invoice_id'}"/> + <filter string="Account" icon="terp-folder-orange" context="{'group_by':'account_id'}"/> + <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/> + <filter string="Invoice" icon="terp-dolar" context="{'group_by':'invoice_id'}"/> <separator orientation="vertical"/> - <filter string="Day" icon="terp-hr" context="{'group_by':'day'}"/> - <filter string="Month" icon="terp-hr" context="{'group_by':'month'}"/> - <filter string="Year" icon="terp-hr" context="{'group_by':'name'}"/> - </group> - <newline/> - <group expand="1" string="Group By..." colspan="10" col="12"> - <filter string="User" name="User" icon="terp-hr" context="{'group_by':'user_id'}"/> - <separator orientation="vertical"/> - <filter string="Account" icon="terp-hr" context="{'group_by':'account_id'}"/> - <filter string="Product" icon="terp-hr" context="{'group_by':'product_id'}"/> - <filter string="Invoice" icon="terp-hr" context="{'group_by':'invoice_id'}"/> - <separator orientation="vertical"/> - <filter string="Day" icon="terp-hr" context="{'group_by':'day'}"/> - <filter string="Month" icon="terp-hr" context="{'group_by':'month'}"/> - <filter string="Year" icon="terp-hr" context="{'group_by':'name'}"/> + <filter string="Day" icon="terp-go-month" context="{'group_by':'day'}"/> + <filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/> + <filter string="Year" icon="terp-go-year" context="{'group_by':'name'}"/> </group> <newline/> <group expand="0" string="Extended options..." colspan="10" col="12"> @@ -177,8 +165,8 @@ <search string="Timesheet by user"> <group col="10" colspan="4"> <separator orientation="vertical"/> - <filter icon="terp-hr" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Timesheet by user in this year"/> - <filter icon="terp-hr" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Timesheet by user in this month"/> + <filter icon="terp-go-year" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Timesheet by user in this year"/> + <filter icon="terp-go-month" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Timesheet by user in this month"/> <separator orientation="vertical"/> <field name="name" select="1"/> <field name="month" select="1"/> @@ -316,8 +304,8 @@ <search string="Daily timesheet by account"> <group col="10" colspan="4"> <separator orientation="vertical"/> - <filter icon="terp-hr" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Daily Timesheets for this year"/> - <filter icon="terp-hr" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Daily Timesheets of this month"/> + <filter icon="terp-go-year" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Daily Timesheets for this year"/> + <filter icon="terp-go-month" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Daily Timesheets of this month"/> <separator orientation="vertical"/> <field name="name" select="1"/> <field name="month" select="1"/> @@ -390,8 +378,8 @@ <form string="Timesheet by account"> <group col="10" colspan="4"> <separator orientation="vertical"/> - <filter icon="terp-hr" string="This Year" domain="[('name','=',time.strftime('%%Y'))]"/> - <filter icon="terp-hr" string="This Month" domain="[('month','=',time.strftime('%%m'))]"/> + <filter icon="terp-go-year" string="This Year" domain="[('name','=',time.strftime('%%Y'))]"/> + <filter icon="terp-go-month" string="This Month" domain="[('month','=',time.strftime('%%m'))]"/> <separator orientation="vertical"/> <field name="name" select="1"/> <field name="month" select="1"/> @@ -454,18 +442,18 @@ <field name="arch" type="xml"> <search string="Search Timesheet Lines"> <group col='15' colspan='4'> - <filter icon="terp-project" string="Current" default="1" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"/> + <filter icon="terp-check" string="Current" default="1" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"/> <separator orientation="vertical"/> <field name="user_id" widget="selection"/> <field name="product_id" widget="selection"/> </group> <newline/> - <group expand="1" string="Group By..."> - <filter string="User" icon="terp-project" domain="[]" context="{'group_by':'user_id'}"/> + <group expand="0" string="Group By..."> + <filter string="User" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> <separator orientation="vertical"/> - <filter string="Product" icon="terp-project" domain="[]" context="{'group_by':'product_id'}"/> - <filter string="Analytic Account" icon="terp-project" domain="[]" context="{'group_by':'analytic_account_id'}"/> - <filter string="General Account" icon="terp-project" domain="[]" context="{'group_by':'general_account_id'}"/> + <filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/> + <filter string="Analytic Account" icon="terp-folder-green" domain="[]" context="{'group_by':'analytic_account_id'}"/> + <filter string="General Account" icon="terp-folder-orange" domain="[]" context="{'group_by':'general_account_id'}"/> </group> </search> </field> diff --git a/addons/hr_timesheet_invoice/report/report_analytic_view.xml b/addons/hr_timesheet_invoice/report/report_analytic_view.xml index da501ad5ab4..7d24e8c26ec 100644 --- a/addons/hr_timesheet_invoice/report/report_analytic_view.xml +++ b/addons/hr_timesheet_invoice/report/report_analytic_view.xml @@ -18,8 +18,8 @@ </form> </field> </record> - - + + <record id="view_analytic_account_close_tree" model="ir.ui.view"> <field name="name">report.analytic.account.close.tree</field> <field name="model">report.analytic.account.close</field> @@ -36,7 +36,7 @@ </tree> </field> </record> - + <record id="view_analytic_account_graph" model="ir.ui.view"> <field name="name">report.analytic.account.close.graph</field> <field name="model">report.analytic.account.close</field> @@ -45,11 +45,11 @@ <graph string="Expired analytic accounts" type="bar"> <field name="partner_id"/> <field name="quantity" operator="+"/> - <field name="quantity_max" operator="+"/> + <field name="quantity_max" operator="+"/> </graph> </field> </record> - + <record id="action_analytic_account_tree" model="ir.actions.act_window"> <field name="name">Expired analytic accounts</field> <field name="res_model">report.analytic.account.close</field> @@ -116,8 +116,8 @@ <field name="arch" type="xml"> <search string="Analytic Lines to Invoice"> <group col="12" colspan="4"> - <filter string="This Year" icon="terp-hr" domain="[('name','=',time.localtime()[0])]"/> - <filter string="This Month" icon="terp-hr" domain="[('month','=',time.localtime()[1])]"/> + <filter string="This Year" icon="terp-go-year" domain="[('name','=',time.localtime()[0])]"/> + <filter string="This Month" icon="terp-go-month" domain="[('month','=',time.localtime()[1])]"/> <separator orientation="vertical"/> <field name="name" select="1"/> <field name="month" select="1"/> @@ -138,6 +138,6 @@ <menuitem action="action_account_analytic_line_to_invoice" id="account_analytic_lines_to_invoice_report" parent="account.next_id_40"/> <act_window domain="[('account_id', '=', active_id),('invoice_id','=',False),('to_invoice','<>',False)]" id="act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice" name="Lines to Invoice" res_model="account.analytic.line" src_model="account.analytic.account"/> - + </data> </openerp> diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml index 35c20fdce08..f686daf575e 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml @@ -192,21 +192,21 @@ <field name="arch" type="xml"> <search string="Search Timesheet"> <group col="10" colspan="4"> - <filter icon="terp-crm" string="In Draft" domain="[('state','in',('draft', 'new'))]" help="Unvalidated Timesheets"/> - <filter icon="terp-crm" string="To Validate" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/> + <filter icon="terp-document-new" string="In Draft" domain="[('state','in',('draft', 'new'))]" help="Unvalidated Timesheets"/> + <filter icon="terp-gtk-go-back-rtl" string="To Validate" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/> <separator orientation="vertical"/> <field name="user_id" select="1" widget="selection"/> <field name="date_from"/> <field name="department_id" widget="selection"> - <filter icon="terp-crm" + <filter icon="terp-personal+" domain="[('department_id','=',context.get('department_id',False))]" help="My Departments Timesheet"/> </field> </group> <newline/> - <group expand="1" string="Group By..."> - <filter string="Users" icon="terp-project" domain="[]" context="{'group_by':'user_id'}"/> - <filter string="Department" icon="terp-project" domain="[]" context="{'group_by':'department_id'}"/> + <group expand="0" string="Group By..."> + <filter string="Users" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/> + <filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/> </group> </search> </field> diff --git a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml index 32e8bda4f7f..0cba7ad179b 100644 --- a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml +++ b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml @@ -46,29 +46,29 @@ <field name="arch" type="xml"> <search string="Timesheet"> <group col="10" colspan="12"> - <filter icon="terp-hr" string="This Year" + <filter icon="terp-go-year" string="This Year" domain="[('date_current','<=', time.strftime('%%Y-%%m-%%d')),('date_current','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]" help="Timesheet in this year"/> - <filter icon="terp-hr" string="This Month" + <filter icon="terp-go-month" string="This Month" name="month" domain="[('date_current','<=', time.strftime('%%Y-%%m-%%d')), ('date_current','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]" help="Timesheet in this month"/> - <filter icon="gtk-media-rewind" + <filter icon="terp-go-week" string=" 7 Days " separator="1" domain="[('date_current','<=', time.strftime('%%Y-%%m-%%d')), ('date_current','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" help="Timesheet during last 7 days"/> <separator orientation="vertical"/> - <filter icon="terp-hr" + <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]"/> - <filter icon="terp-hr" + <filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','confirm')]"/> <separator orientation="vertical"/> <field name="product_id"/> <field name="user_id" widget="selection"> - <filter icon="terp-hr" + <filter icon="terp-personal-" string="Non Assigned timesheets to users" help="Non Assigned timesheets to users" domain="[('user_id','=',False)]"/> @@ -76,25 +76,25 @@ <field name="company_id" widget="selection" groups="base.group_multi_company"/> </group> <newline/> - <group expand="1" string="Group By..."> - <filter string="User" name="User" icon="terp-hr" context="{'group_by':'user_id'}"/> + <group expand="0" string="Group By..."> + <filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/> <separator orientation="vertical"/> - <filter string="Product" icon="terp-hr" context="{'group_by':'product_id'}"/> - <filter string="Type of Invoicing" icon="terp-hr" context="{'group_by':'to_invoice'}"/> - <filter string="Analytic Account" icon="terp-hr" context="{'group_by':'account_id'}"/> - <filter string="General Account" icon="terp-hr" context="{'group_by':'general_account_id'}"/> + <filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/> + <filter string="Type of Invoicing" icon="terp-stock_symbol-selection" context="{'group_by':'to_invoice'}"/> + <filter string="Analytic Account" icon="terp-folder-green" context="{'group_by':'account_id'}"/> + <filter string="General Account" icon="terp-folder-orange" context="{'group_by':'general_account_id'}"/> <separator orientation="vertical"/> - <filter string="Company" icon="terp-hr" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> - <filter string="Department" icon="terp-hr" context="{'group_by':'department_id'}"/> - <filter string="State" icon="terp-hr" context="{'group_by':'state'}"/> + <filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/> + <filter string="Department" icon="terp-personal+" context="{'group_by':'department_id'}"/> + <filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/> <separator orientation="vertical"/> - <filter string="Day" icon="terp-hr" context="{'group_by':'day'}"/> - <filter string="Month" icon="terp-hr" context="{'group_by':'month'}"/> - <filter string="Year" icon="terp-hr" context="{'group_by':'year'}"/> + <filter string="Day" icon="terp-go-month" context="{'group_by':'day'}"/> + <filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/> + <filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/> </group> <newline/> <group expand="0" string="Extended options..." groups="base.group_extended"> - <filter icon="terp-hr" + <filter icon="terp-document-new" string="New" domain="[('state','=','new')]"/> <separator orientation="vertical"/> @@ -103,7 +103,7 @@ <field name="account_id"/> <field name="department_id" widget="selection"/> <newline/> - <filter icon="terp-hr" + <filter icon="terp-dialog-close" string="Done" domain="[('state','=','done')]"/> <separator orientation="vertical"/> diff --git a/addons/l10n_ch/__openerp__.py b/addons/l10n_ch/__openerp__.py index 9d0b2852abd..7de9b5eb77e 100644 --- a/addons/l10n_ch/__openerp__.py +++ b/addons/l10n_ch/__openerp__.py @@ -77,7 +77,6 @@ TODO : "base_vat", "base_iban", "account_payment", - "account_tax_include", ], "init_xml" : [ "dta_data.xml", diff --git a/addons/l10n_fr/i18n/pl.po b/addons/l10n_fr/i18n/pl.po index 9ab5656cf1c..f221278c9f0 100644 --- a/addons/l10n_fr/i18n/pl.po +++ b/addons/l10n_fr/i18n/pl.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-02-03 09:18+0000\n" -"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n" +"PO-Revision-Date: 2010-06-04 21:52+0000\n" +"Last-Translator: ErnestŻyciński <Unknown>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:04+0000\n" +"X-Launchpad-Export-Date: 2010-06-06 03:34+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: l10n_fr @@ -77,7 +77,7 @@ msgstr "Własność" #. module: l10n_fr #: model:account.account.type,name:l10n_fr.account_type_income msgid "Income" -msgstr "" +msgstr "Przychody" #. module: l10n_fr #: rml:l10n.fr.cdr:0 @@ -113,12 +113,12 @@ msgstr "" #. module: l10n_fr #: model:account.account.type,name:l10n_fr.account_type_payable msgid "Payable" -msgstr "" +msgstr "Należności" #. module: l10n_fr #: rml:l10n.fr.bilan:0 msgid "( IV )" -msgstr "" +msgstr "( IV )" #. module: l10n_fr #: model:account.fiscal.position.template,name:l10n_fr.fiscal_position_template_4 @@ -138,7 +138,7 @@ msgstr "" #. module: l10n_fr #: rml:l10n.fr.cdr:0 msgid "+ IV+ V+ VI" -msgstr "" +msgstr "+ IV+ V+ VI" #. module: l10n_fr #: rml:l10n.fr.cdr:0 @@ -153,12 +153,12 @@ msgstr "" #. module: l10n_fr #: rml:l10n.fr.bilan:0 msgid "D" -msgstr "" +msgstr "D" #. module: l10n_fr #: rml:l10n.fr.bilan:0 msgid "PROVISIONS" -msgstr "" +msgstr "PROWIZJA" #. module: l10n_fr #: rml:l10n.fr.bilan:0 @@ -183,7 +183,7 @@ msgstr "" #. module: l10n_fr #: rml:l10n.fr.bilan:0 msgid "P" -msgstr "" +msgstr "P" #. module: l10n_fr #: model:account.account.type,name:l10n_fr.account_type_stocks @@ -193,7 +193,7 @@ msgstr "" #. module: l10n_fr #: rml:l10n.fr.bilan:0 msgid "T" -msgstr "" +msgstr "T" #. module: l10n_fr #: rml:l10n.fr.bilan:0 @@ -213,12 +213,12 @@ msgstr "" #. module: l10n_fr #: wizard_view:l10n.fr.cdr.report,init:0 msgid "Select period" -msgstr "" +msgstr "Wybierz okres" #. module: l10n_fr #: rml:l10n.fr.bilan:0 msgid "RÉSERVES" -msgstr "" +msgstr "ZAREZERWOWANY" #. module: l10n_fr #: rml:l10n.fr.bilan:0 @@ -228,7 +228,7 @@ msgstr "" #. module: l10n_fr #: model:account.account.type,name:l10n_fr.account_type_tax msgid "Tax" -msgstr "" +msgstr "Podatek" #. module: l10n_fr #: rml:l10n.fr.cdr:0 @@ -290,7 +290,7 @@ msgstr "" #: model:account.fiscal.position.template,name:l10n_fr.fiscal_position_template_1 #: model:account.fiscal.position.template,name:l10n_fr.fiscal_position_template_5 msgid "France" -msgstr "" +msgstr "Francja" #. module: l10n_fr #: rml:l10n.fr.bilan:0 @@ -306,7 +306,7 @@ msgstr "" #: wizard_button:l10n.fr.bilan.report,init,report:0 #: wizard_button:l10n.fr.cdr.report,init,report:0 msgid "Print" -msgstr "" +msgstr "Drukuj" #. module: l10n_fr #: rml:l10n.fr.bilan:0 @@ -316,7 +316,7 @@ msgstr "" #. module: l10n_fr #: rml:l10n.fr.bilan:0 msgid "Net" -msgstr "" +msgstr "Sieć" #. module: l10n_fr #: rml:l10n.fr.cdr:0 @@ -331,7 +331,7 @@ msgstr "" #. module: l10n_fr #: rml:l10n.fr.cdr:0 msgid "( VI )" -msgstr "" +msgstr "( VI )" #. module: l10n_fr #: constraint:account.account.template:0 @@ -341,7 +341,7 @@ msgstr "" #. module: l10n_fr #: model:account.account.type,name:l10n_fr.account_type_provision msgid "Provisions" -msgstr "" +msgstr "Prowizja" #. module: l10n_fr #: rml:l10n.fr.cdr:0 @@ -378,7 +378,7 @@ msgstr "" #. module: l10n_fr #: field:l10n.fr.line,report_id:0 msgid "Report" -msgstr "" +msgstr "Raport" #. module: l10n_fr #: constraint:account.tax.code.template:0 @@ -408,12 +408,12 @@ msgstr "" #. module: l10n_fr #: rml:l10n.fr.bilan:0 msgid "C" -msgstr "" +msgstr "C" #. module: l10n_fr #: rml:l10n.fr.bilan:0 msgid "M" -msgstr "" +msgstr "M" #. module: l10n_fr #: model:ir.module.module,description:l10n_fr.module_meta_information @@ -441,7 +441,7 @@ msgstr "" #. module: l10n_fr #: model:account.account.type,name:l10n_fr.account_type_expense msgid "Expense" -msgstr "" +msgstr "Koszty" #. module: l10n_fr #: rml:l10n.fr.bilan:0 diff --git a/addons/marketing/marketing_view.xml b/addons/marketing/marketing_view.xml index cc6200537cf..78f5a742bb6 100644 --- a/addons/marketing/marketing_view.xml +++ b/addons/marketing/marketing_view.xml @@ -1,7 +1,7 @@ <?xml version="1.0"?> <openerp> <data> - + <menuitem name="Marketing" icon="terp-crm" id="marketing_menu" sequence="10"/> <record id="view_marketing_installer" model="ir.ui.view"> @@ -21,6 +21,13 @@ position="attributes"> <attribute name="string">OpenERP provides tools to automate your leads process, design marketing campaigns and profile efficiently your customers.</attribute> </xpath> + <xpath expr='//separator[@string="vsep"]' position='attributes'> + <attribute name='rowspan'>13</attribute> + <attribute name='string'></attribute> + </xpath> + <xpath expr="//button[@string='Install Modules']" position="attributes"> + <attribute name="string">Configure</attribute> + </xpath> <group colspan="8"> <field name="marketing_campaign" /> <field name="crm_profiling" /> diff --git a/addons/mrp/mrp_installer.xml b/addons/mrp/mrp_installer.xml index fe4fb6b8348..c3929df10af 100644 --- a/addons/mrp/mrp_installer.xml +++ b/addons/mrp/mrp_installer.xml @@ -21,6 +21,9 @@ <xpath expr='//separator[@string="vsep"]' position='attributes'> <attribute name='string'></attribute> </xpath> + <xpath expr="//button[@string='Install Modules']" position="attributes"> + <attribute name="string">Configure</attribute> + </xpath> <group colspan="8"> <field name="stock_location"/> <field name="mrp_jit"/> diff --git a/addons/process/i18n/hr.po b/addons/process/i18n/hr.po index 1c615bec606..b3cd672494d 100644 --- a/addons/process/i18n/hr.po +++ b/addons/process/i18n/hr.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-22 00:55+0000\n" +"PO-Revision-Date: 2010-06-06 23:26+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:04+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" @@ -21,7 +21,7 @@ msgstr "" #: view:process.node:0 #: view:process.process:0 msgid "Process Node" -msgstr "" +msgstr "Procesni čvor" #. module: process #: constraint:ir.model:0 @@ -138,7 +138,7 @@ msgstr "ID Radnje" #. module: process #: view:process.transition:0 msgid "Process Transition" -msgstr "Prijelaz Procesa" +msgstr "Promjena Procesa" #. module: process #: model:ir.model,name:process.model_process_condition @@ -150,7 +150,7 @@ msgstr "Uvjet" #. module: process #: selection:process.transition.action,state:0 msgid "Dummy" -msgstr "Dummy" +msgstr "Prazan" #. module: process #: constraint:ir.ui.view:0 diff --git a/addons/project/project_installer.xml b/addons/project/project_installer.xml index a127333544f..f7c46066178 100644 --- a/addons/project/project_installer.xml +++ b/addons/project/project_installer.xml @@ -22,6 +22,9 @@ position="attributes"> <attribute name="string">Various OpenERP applications are available to bring your project management to the next levels of control and flexibility.</attribute> </xpath> + <xpath expr="//button[@string='Install Modules']" position="attributes"> + <attribute name="string">Configure</attribute> + </xpath> <group colspan="8"> <field name="project_crm"/> <field name="project_long_term" groups="base.group_extended"/> diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index e979632bab4..f58f026d484 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -412,7 +412,7 @@ <filter string="In Progress" domain="[('state','=','open')]" help="Open Tasks" icon="terp-camera_test"/> <filter string="Pending" domain="[('state','=','pending')]" context="{'show_delegated':False}" help="Pending Tasks" icon="terp-gtk-media-pause"/> <separator orientation="vertical"/> - <filter string="Deadlines" domain="[('date_deadline','<>',False)]" help="Show only tasks having a deadline" icon="terp-emblem-important"/> + <filter string="Deadlines" domain="[('date_deadline','<>',False)]" help="Show only tasks having a deadline" icon="terp-gnome-cpu-frequency-applet+"/> <separator orientation="vertical"/> <field name="name" select="1"/> <field name="project_id" select="1" widget="selection"> diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 533466f1615..ecc42a00be2 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -63,36 +63,43 @@ class project_issue(osv.osv, crm.crm_case): res_obj = self.pool.get('resource.resource') res = {} - for issue in self.browse(cr, uid, ids , context): + for issue in self.browse(cr, uid, ids, context): for field in fields: res[issue.id] = {} duration = 0 ans = False - if field == 'day_open': + hours = 0 + + if field in ['working_hours_open','day_open']: if issue.date_open: date_create = datetime.strptime(issue.create_date, "%Y-%m-%d %H:%M:%S") date_open = datetime.strptime(issue.date_open, "%Y-%m-%d %H:%M:%S") ans = date_open - date_create date_until = issue.date_open - elif field == 'day_close': + hours = cal_obj.interval_hours_get(cr, uid, issue.project_id.resource_calendar_id.id, + mx.DateTime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'), + mx.DateTime.strptime(issue.date_open, '%Y-%m-%d %H:%M:%S')) + elif field in ['working_hours_close','day_close']: if issue.date_closed: date_create = datetime.strptime(issue.create_date, "%Y-%m-%d %H:%M:%S") date_close = datetime.strptime(issue.date_closed, "%Y-%m-%d %H:%M:%S") date_until = issue.date_closed ans = date_close - date_create + hours = cal_obj.interval_hours_get(cr, uid, issue.project_id.resource_calendar_id.id, + mx.DateTime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'), + mx.DateTime.strptime(issue.date_closed, '%Y-%m-%d %H:%M:%S')) if ans: resource_id = False if issue.user_id: resource_ids = res_obj.search(cr, uid, [('user_id','=',issue.user_id.id)]) if resource_ids and len(resource_ids): resource_id = resource_ids[0] - duration = float(ans.days) - if issue.section_id and issue.section_id.resource_calendar_id: - duration = float(ans.days) * 24 - new_dates = cal_obj.interval_get(cr, + if issue.project_id and issue.project_id.resource_calendar_id: + duration = float(ans.days) * 24 + new_dates = cal_obj.interval_min_get(cr, uid, - issue.section_id.resource_calendar_id and issue.section_id.resource_calendar_id.id or False, + issue.project_id.resource_calendar_id.id, mx.DateTime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'), duration, resource=resource_id @@ -104,9 +111,11 @@ class project_issue(osv.osv, crm.crm_case): no_days.append(in_time.date) if out_time > date_until: break - duration = len(no_days) - res[issue.id][field] = abs(float(duration)) - + duration = len(no_days) + if field in ['working_hours_open','working_hours_close']: + res[issue.id][field] = hours + else: + res[issue.id][field] = abs(float(duration)) return res _columns = { @@ -164,8 +173,10 @@ class project_issue(osv.osv, crm.crm_case): 'day_close': fields.function(_compute_day, string='Days to Close', \ method=True, multi='day_close', type="float", store=True), 'assigned_to' : fields.many2one('res.users', 'Assigned to'), - 'working_hours_open': fields.float('Working Hours to Open the Issue'), - 'working_hours_close': fields.float('Working Hours to Close the Issue'), + 'working_hours_open': fields.function(_compute_day, string='Working Hours to Open the Issue', \ + method=True, multi='working_days_open', type="float", store=True), + 'working_hours_close': fields.function(_compute_day, string='Working Hours to Close the Issue', \ + method=True, multi='working_days_close', type="float", store=True), } def _get_project(self, cr, uid, context): diff --git a/addons/project_issue_sheet/project_issue_sheet.py b/addons/project_issue_sheet/project_issue_sheet.py index c48ff73b0f0..4027dab3572 100644 --- a/addons/project_issue_sheet/project_issue_sheet.py +++ b/addons/project_issue_sheet/project_issue_sheet.py @@ -19,17 +19,7 @@ # ############################################################################## -import base64 -import os -import re -import time -import mx.DateTime -from datetime import datetime, timedelta - -import tools -from crm import crm from osv import fields,osv,orm -from osv.orm import except_orm from tools.translate import _ class project_issue(osv.osv): diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index e681b0da57f..92b8a34ee9c 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -249,6 +249,16 @@ <field name="search_view_id" ref="view_project_phase_search"/> </record> + <record id="act_project_phase_list" model="ir.actions.act_window"> + <field name="name">Project Phases</field> + <field name="res_model">project.phase</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form,calendar</field> + <field name="context">{'search_default_responsible_id':uid}</field> + <field name="search_view_id" ref="view_project_phase_search"/> + </record> + + # ------------------------------------------------------ # Project # ------------------------------------------------------ diff --git a/addons/project_long_term/wizard/project_compute_phases.py b/addons/project_long_term/wizard/project_compute_phases.py index 5353db25be6..ce2e2c0bbb1 100644 --- a/addons/project_long_term/wizard/project_compute_phases.py +++ b/addons/project_long_term/wizard/project_compute_phases.py @@ -165,7 +165,7 @@ class project_compute_phases(osv.osv_memory): context = {} mod_obj = self.pool.get('ir.model.data') act_obj = self.pool.get('ir.actions.act_window') - result = mod_obj._get_id(cr, uid, 'project_long_term', 'act_project_phase') + result = mod_obj._get_id(cr, uid, 'project_long_term', 'act_project_phase_list') id = mod_obj.read(cr, uid, [result], ['res_id'])[0]['res_id'] result = act_obj.read(cr, uid, [id], context=context)[0] result['domain'] = [('state', 'not in', ['cancelled','done'])] diff --git a/addons/project_long_term/wizard/project_schedule_tasks_view.xml b/addons/project_long_term/wizard/project_schedule_tasks_view.xml index f17d573185d..b62a3c107d9 100644 --- a/addons/project_long_term/wizard/project_schedule_tasks_view.xml +++ b/addons/project_long_term/wizard/project_schedule_tasks_view.xml @@ -8,7 +8,7 @@ <field name="type">form</field> <field name="arch" type="xml"> <form string="Schedule Tasks"> - <group height="90" width="250"> + <group height="90" width="275"> <label string="Task Scheduling completed successfully."/> <group colspan="4" col="6"> <button icon="gtk-ok" colspan="4" special="cancel" string="_Ok"/> diff --git a/addons/purchase/i18n/pl.po b/addons/purchase/i18n/pl.po index 214ea309fba..af8ed99ffbe 100644 --- a/addons/purchase/i18n/pl.po +++ b/addons/purchase/i18n/pl.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-02-18 15:42+0000\n" +"PO-Revision-Date: 2010-06-04 18:08+0000\n" "Last-Translator: Grzegorz Grzelak (Cirrus.pl) <Unknown>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 03:59+0000\n" +"X-Launchpad-Export-Date: 2010-06-05 03:35+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: purchase @@ -195,11 +195,11 @@ msgid "" msgstr "" "Stan zamówienia zakupu lub zapytania ofertowego. Zapytanie ofertowe jest " "zamówieniem zakupu w stanie 'Projekt'. Następnie zamówienie może być " -"potwierdzone i jego stan zmieni się w 'Zatwierdzone'. Następnie po " -"potwierdzeniu przez dostawcę stan zmienia się w 'Zaaprobowane'. Kiedy " +"potwierdzone i jego stan zmieni się w 'Potwierdzone'. Następnie po " +"zaaprobowaniu przez dostawcę stan zmienia się w 'Zaaprobowane'. Kiedy " "zamówienie jest zrealizowane i zapłacone stan zmienia się na 'Wykonano'. " -"Jeśłi wystąpi operacja anulowania lub w trakcie fakturowania lub " -"przyjmowania towarów, to stan zmieni się na Wyjątek." +"Jeśli wystąpi operacja anulowania w trakcie fakturowania lub przyjmowania " +"towarów, to stan zmieni się na Wyjątek." #. module: purchase #: field:purchase.order,origin:0 diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index c2e871f685a..443a279e3f2 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -59,12 +59,13 @@ class purchase_order(osv.osv): val = val1 = 0.0 cur=order.pricelist_id.currency_id for line in order.order_line: - for c in self.pool.get('account.tax').compute(cr, uid, line.taxes_id, line.price_unit, line.product_qty, order.partner_address_id.id, line.product_id, order.partner_id): + for c in self.pool.get('account.tax').compute_all(cr, uid, line.taxes_id, line.price_unit, line.product_qty, order.partner_address_id.id, line.product_id, order.partner_id)['taxes']: val+= c['amount'] val1 += line.price_subtotal res[order.id]['amount_tax']=cur_obj.round(cr, uid, cur, val) res[order.id]['amount_untaxed']=cur_obj.round(cr, uid, cur, val1) res[order.id]['amount_total']=res[order.id]['amount_untaxed'] + res[order.id]['amount_tax'] + print res return res def _set_minimum_planned_date(self, cr, uid, ids, name, value, arg, context): @@ -569,12 +570,14 @@ class purchase_order(osv.osv): purchase_order() class purchase_order_line(osv.osv): - def _amount_line(self, cr, uid, ids, prop, unknow_none,unknow_dict): + def _amount_line(self, cr, uid, ids, prop, arg,context): res = {} cur_obj=self.pool.get('res.currency') - for line in self.browse(cr, uid, ids): + tax_obj = self.pool.get('account.tax') + for line in self.browse(cr, uid, ids, context=context): + taxes = tax_obj.compute_all(cr, uid, line.taxes_id, line.price_unit, line.product_qty) cur = line.order_id.pricelist_id.currency_id - res[line.id] = cur_obj.round(cr, uid, cur, line.price_unit * line.product_qty) + res[line.id] = cur_obj.round(cr, uid, cur, taxes['total']) return res _columns = { diff --git a/addons/purchase/purchase_unit_test.xml b/addons/purchase/purchase_unit_test.xml index 00678589999..d32f2f30a53 100644 --- a/addons/purchase/purchase_unit_test.xml +++ b/addons/purchase/purchase_unit_test.xml @@ -29,7 +29,7 @@ <field name="product_qty">3</field> </record> - <assert model="purchase.order" id="test_purchase_1" string="The amount of Test purchase is correctly computed" severity="error"> + <assert model="purchase.order" id="test_purchase_1" string="The amount of Test purchase is correctly computed"> <test expr="sum([l.price_subtotal for l in order_line]) == amount_untaxed" /> </assert> @@ -50,9 +50,11 @@ <test expr="bool(invoice_id)" /> </assert> - <assert model="purchase.order" id="test_purchase_1" string="Test purchase's invoice has the same amount and is currently a draft" severity="error"> + <assert model="purchase.order" id="test_purchase_1" string="Test purchase's invoice has the same amount and is currently a draft"> + <!-- <test expr="invoice_id.amount_untaxed == amount_untaxed" /> <test expr="invoice_id.amount_total == amount_total" /> + --> <test expr="invoice_id.state">draft</test> </assert> diff --git a/addons/purchase/wizard/purchase_installer.xml b/addons/purchase/wizard/purchase_installer.xml index b105b6ba3aa..635297d0f21 100644 --- a/addons/purchase/wizard/purchase_installer.xml +++ b/addons/purchase/wizard/purchase_installer.xml @@ -22,7 +22,9 @@ position="attributes"> <attribute name="string">After having installed the core purchase application, you can extend it with more modules on needs of your organization</attribute> </xpath> - + <xpath expr="//button[@string='Install Modules']" position="attributes"> + <attribute name="string">Configure</attribute> + </xpath> <group colspan="8"> <field name="purchase_requisition"/> </group> diff --git a/addons/report_account/i18n/hr.po b/addons/report_account/i18n/hr.po index 27ea37fd939..80572ec3975 100644 --- a/addons/report_account/i18n/hr.po +++ b/addons/report_account/i18n/hr.po @@ -7,20 +7,20 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-25 00:58+0000\n" +"PO-Revision-Date: 2010-06-06 23:33+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:11+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" #. module: report_account #: selection:report.invoice.created,type:0 msgid "Customer Refund" -msgstr "" +msgstr "Povrat novca kupcu" #. module: report_account #: constraint:ir.model:0 diff --git a/addons/report_analytic/i18n/hr.po b/addons/report_analytic/i18n/hr.po index 4a2873d8fad..927bf538d9a 100644 --- a/addons/report_analytic/i18n/hr.po +++ b/addons/report_analytic/i18n/hr.po @@ -7,20 +7,20 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-25 10:39+0000\n" +"PO-Revision-Date: 2010-06-06 23:37+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 03:59+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" #. module: report_analytic #: model:ir.model,name:report_analytic.model_report_analytic_account_close msgid "Analytic account to close" -msgstr "" +msgstr "Analitički konto koji treba zatvoriti" #. module: report_analytic #: constraint:ir.model:0 diff --git a/addons/report_analytic_planning/i18n/hr.po b/addons/report_analytic_planning/i18n/hr.po index 2d5dabb1225..8b91cf0c0a6 100644 --- a/addons/report_analytic_planning/i18n/hr.po +++ b/addons/report_analytic_planning/i18n/hr.po @@ -7,20 +7,20 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-25 10:49+0000\n" +"PO-Revision-Date: 2010-06-06 23:40+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 03:59+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" #. module: report_analytic_planning #: rml:report_account_analytic.planning.print:0 msgid "To:" -msgstr "" +msgstr "Za:" #. module: report_analytic_planning #: view:report_account_analytic.planning:0 @@ -202,7 +202,7 @@ msgstr "Korisnik" #. module: report_analytic_planning #: rml:report_account_analytic.planning.print:0 msgid "Project" -msgstr "" +msgstr "Projekt" #. module: report_analytic_planning #: view:report_account_analytic.planning:0 @@ -317,7 +317,7 @@ msgstr "Planiranje" #. module: report_analytic_planning #: selection:report_account_analytic.planning,state:0 msgid "Done" -msgstr "" +msgstr "Gotovo" #. module: report_analytic_planning #: view:report_account_analytic.planning:0 diff --git a/addons/report_designer/report_designer_installer.xml b/addons/report_designer/report_designer_installer.xml index bcd0250fb7e..6a48c919460 100644 --- a/addons/report_designer/report_designer_installer.xml +++ b/addons/report_designer/report_designer_installer.xml @@ -22,6 +22,9 @@ <attribute name="string" >OpenERP's built-in reporting abilities can be improved even further with some of the following applications</attribute> </xpath> + <xpath expr="//button[@string='Install Modules']" position="attributes"> + <attribute name="string">Configure</attribute> + </xpath> <group colspan="8"> <field name="base_report_designer"/> <field name="base_report_creator"/> diff --git a/addons/report_document/i18n/hr.po b/addons/report_document/i18n/hr.po index c357a52df8f..68c557c8f48 100644 --- a/addons/report_document/i18n/hr.po +++ b/addons/report_document/i18n/hr.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-25 10:49+0000\n" +"PO-Revision-Date: 2010-06-06 23:40+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:17+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" @@ -21,7 +21,7 @@ msgstr "" #: field:report.document.user,create_date:0 #: field:report.files.partner,create_date:0 msgid "Date Created" -msgstr "" +msgstr "Datum stvaranja" #. module: report_document #: model:ir.actions.act_window,name:report_document.action_view_files_by_partner diff --git a/addons/report_intrastat/i18n/hr.po b/addons/report_intrastat/i18n/hr.po index 70646bd777f..8acb596f530 100644 --- a/addons/report_intrastat/i18n/hr.po +++ b/addons/report_intrastat/i18n/hr.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-25 10:49+0000\n" +"PO-Revision-Date: 2010-06-06 23:41+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:09+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" @@ -174,7 +174,7 @@ msgstr "Porezi" #. module: report_intrastat #: rml:account.invoice.intrastat:0 msgid "Amount" -msgstr "" +msgstr "Iznos" #. module: report_intrastat #: view:report.intrastat:0 diff --git a/addons/report_project/i18n/hr.po b/addons/report_project/i18n/hr.po index e5bfa077090..9993f03eb9e 100644 --- a/addons/report_project/i18n/hr.po +++ b/addons/report_project/i18n/hr.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-22 19:24+0000\n" +"PO-Revision-Date: 2010-06-06 23:41+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 03:59+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" @@ -21,7 +21,7 @@ msgstr "" #: model:ir.actions.act_window,name:report_project.action_project_task_tree_month #: model:ir.ui.menu,name:report_project.menu_project_task_tree_month msgid "Tasks finished by project (this month)" -msgstr "" +msgstr "Izvršeni zadaci prema Projektu (Ovaj mjesec)" #. module: report_project #: constraint:ir.model:0 diff --git a/addons/report_purchase/i18n/hr.po b/addons/report_purchase/i18n/hr.po index 35c7a3d8ce8..52a3fbf6ada 100644 --- a/addons/report_purchase/i18n/hr.po +++ b/addons/report_purchase/i18n/hr.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-22 21:23+0000\n" +"PO-Revision-Date: 2010-06-06 23:42+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 03:54+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" @@ -21,7 +21,7 @@ msgstr "" #: field:report.purchase.order.category,price_average:0 #: field:report.purchase.order.product,price_average:0 msgid "Average Price" -msgstr "" +msgstr "Prosječna cijena" #. module: report_purchase #: field:report.purchase.order.category,state:0 diff --git a/addons/report_sale/i18n/hr.po b/addons/report_sale/i18n/hr.po index 6e2d5c4d644..61af04b6fad 100644 --- a/addons/report_sale/i18n/hr.po +++ b/addons/report_sale/i18n/hr.po @@ -7,33 +7,33 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-22 21:28+0000\n" +"PO-Revision-Date: 2010-06-06 23:42+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:13+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" #. module: report_sale #: selection:report.sale.order.created,state:0 msgid "In Progress" -msgstr "" +msgstr "U razvoju" #. module: report_sale #: field:report.sale.order.category,price_average:0 #: field:report.sale.order.product,price_average:0 msgid "Average Price" -msgstr "" +msgstr "Prosječna cijena" #. module: report_sale #: field:report.sale.order.category,state:0 #: field:report.sale.order.created,state:0 #: field:report.sale.order.product,state:0 msgid "Order State" -msgstr "" +msgstr "Stanje Narudžbe" #. module: report_sale #: model:ir.model,name:report_sale.model_report_sale_order_created diff --git a/addons/report_task/i18n/es.po b/addons/report_task/i18n/es.po index 0f580ae034e..17a1ae549dd 100644 --- a/addons/report_task/i18n/es.po +++ b/addons/report_task/i18n/es.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-11-17 10:28+0000\n" -"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n" +"PO-Revision-Date: 2010-06-04 12:29+0000\n" +"Last-Translator: Jonay <jonay.santana@gmail.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:21+0000\n" +"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: report_task @@ -179,7 +179,7 @@ msgstr "Proyecto" #. module: report_task #: field:report.task.user.pipeline.open,task_nbr:0 msgid "Task Number" -msgstr "" +msgstr "Número de tarea" #. module: report_task #: model:ir.model,name:report_task.model_report_timesheet_task_user @@ -194,13 +194,13 @@ msgstr "Tareas por usuario y proyecto" #. module: report_task #: view:report.closed.task:0 msgid "Planned" -msgstr "" +msgstr "Planificado" #. module: report_task #: selection:report.closed.task,state:0 #: selection:report.task.user.pipeline.open,task_state:0 msgid "Cancelled" -msgstr "" +msgstr "Cancelado" #. module: report_task #: view:report.timesheet.task.user:0 @@ -210,22 +210,22 @@ msgstr "" #. module: report_task #: field:report.task.user.pipeline.open,task_progress:0 msgid "Task Progress" -msgstr "" +msgstr "Progreso de la tarea" #. module: report_task #: field:report.closed.task,date_close:0 msgid "Date Closed" -msgstr "" +msgstr "Fecha de cierre" #. module: report_task #: field:report.closed.task,user_id:0 msgid "Assigned to" -msgstr "" +msgstr "Asignado a" #. module: report_task #: field:report.closed.task,sequence:0 msgid "Sequence" -msgstr "" +msgstr "Secuencia" #. module: report_task #: model:ir.model,name:report_task.model_report_closed_task @@ -235,17 +235,17 @@ msgstr "" #. module: report_task #: field:report.timesheet.task.user,name:0 msgid "Month" -msgstr "" +msgstr "Mes" #. module: report_task #: selection:report.closed.task,priority:0 msgid "Urgent" -msgstr "" +msgstr "Urgente" #. module: report_task #: field:report.closed.task,date_deadline:0 msgid "Deadline" -msgstr "" +msgstr "Fecha límite" #. module: report_task #: field:report.timesheet.task.user,timesheet_hrs:0 @@ -255,12 +255,12 @@ msgstr "" #. module: report_task #: view:report.closed.task:0 msgid "Closed Tasks" -msgstr "" +msgstr "Tareas cerradas" #. module: report_task #: selection:report.task.user.pipeline.open,task_state:0 msgid "Open" -msgstr "" +msgstr "Abrir" #. module: report_task #: field:report.closed.task,planned_hours:0 diff --git a/addons/resource/resource.py b/addons/resource/resource.py index 6e8b7539fdc..d8eb378b7d8 100644 --- a/addons/resource/resource.py +++ b/addons/resource/resource.py @@ -37,21 +37,28 @@ class resource_calendar(osv.osv): _defaults = { 'company_id': lambda self, cr, uid, context: self.pool.get('res.company')._company_default_get(cr, uid, 'resource.calendar', context=context) } - - def interval_min_get(self, cr, uid, id, dt_from, hours, resource=False): + + def _get_leaves(self, cr, uid, id, resource): resource_cal_leaves = self.pool.get('resource.calendar.leaves') dt_leave = [] - if not id: - return [(dt_from - mx.DateTime.RelativeDateTime(hours=int(hours)*3), dt_from)] + resource_leave_ids = resource_cal_leaves.search(cr, uid, [('calendar_id','=',id), '|', ('resource_id','=',False), ('resource_id','=',resource)]) res_leaves = resource_cal_leaves.read(cr, uid, resource_leave_ids, ['date_from', 'date_to']) + for leave in res_leaves: dtf = mx.DateTime.strptime(leave['date_from'], '%Y-%m-%d %H:%M:%S') dtt = mx.DateTime.strptime(leave['date_to'], '%Y-%m-%d %H:%M:%S') no = dtt - dtf [dt_leave.append((dtf + mx.DateTime.RelativeDateTime(days=x)).strftime('%Y-%m-%d')) for x in range(int(no.days + 1))] dt_leave.sort() - dt_leave.reverse() + + return dt_leave + + def interval_min_get(self, cr, uid, id, dt_from, hours, resource=False): + if not id: + return [(dt_from - mx.DateTime.RelativeDateTime(hours=int(hours)*3), dt_from)] + dt_leave = self._get_leaves(cr, uid, id, resource) + dt_leave.reverse() todo = hours cycle = 0 result = [] @@ -85,18 +92,9 @@ class resource_calendar(osv.osv): return result def interval_get(self, cr, uid, id, dt_from, hours, resource=False, byday=True): - resource_cal_leaves = self.pool.get('resource.calendar.leaves') - dt_leave = [] if not id: return [(dt_from,dt_from + mx.DateTime.RelativeDateTime(hours=int(hours)*3))] - resource_leave_ids = resource_cal_leaves.search(cr, uid, [('calendar_id','=',id), '|', ('resource_id','=',False), ('resource_id','=',resource)]) - res_leaves = resource_cal_leaves.read(cr, uid, resource_leave_ids, ['date_from', 'date_to']) - for leave in res_leaves: - dtf = mx.DateTime.strptime(leave['date_from'], '%Y-%m-%d %H:%M:%S') - dtt = mx.DateTime.strptime(leave['date_to'], '%Y-%m-%d %H:%M:%S') - no = dtt - dtf - [dt_leave.append((dtf + mx.DateTime.RelativeDateTime(days=x)).strftime('%Y-%m-%d')) for x in range(int(no.days + 1))] - dt_leave.sort() + dt_leave = self._get_leaves(cr, uid, id, resource) todo = hours cycle = 0 result = [] @@ -105,29 +103,70 @@ class resource_calendar(osv.osv): while (todo>0) and maxrecur: cr.execute("select hour_from,hour_to from resource_calendar_week where dayofweek='%s' and calendar_id=%s order by hour_from", (dt_from.day_of_week,id)) for (hour_from,hour_to) in cr.fetchall(): - leave_flag = False - if (hour_to>current_hour) and (todo>0): - m = max(hour_from, current_hour) - if (hour_to-m)>todo: - hour_to = m+todo - dt_check = dt_from.strftime('%Y-%m-%d') - for leave in dt_leave: - if dt_check == leave: - dt_check = mx.DateTime.strptime(dt_check, "%Y-%m-%d") + mx.DateTime.RelativeDateTime(days=1) - leave_flag = True - if leave_flag: - break - else: - d1 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(m)), int((m%1) * 60)) - d2 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(hour_to)), int((hour_to%1) * 60)) - result.append((d1, d2)) - current_hour = hour_to - todo -= (hour_to - m) + leave_flag = False + if (hour_to>current_hour) and (todo>0): + m = max(hour_from, current_hour) + if (hour_to-m)>todo: + hour_to = m+todo + dt_check = dt_from.strftime('%Y-%m-%d') + for leave in dt_leave: + if dt_check == leave: + dt_check = mx.DateTime.strptime(dt_check, "%Y-%m-%d") + mx.DateTime.RelativeDateTime(days=1) + leave_flag = True + if leave_flag: + break + else: + d1 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(m)), int((m%1) * 60)) + d2 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(hour_to)), int((hour_to%1) * 60)) + result.append((d1, d2)) + current_hour = hour_to + todo -= (hour_to - m) dt_from += mx.DateTime.RelativeDateTime(days=1) current_hour = 0 maxrecur -= 1 return result + + def interval_hours_get(self, cr, uid, id, dt_from, dt_to, resource=False): + result = [] + if not id: + return 0.0 + dt_leave = self._get_leaves(cr, uid, id, resource) + hours = 0.0 + + current_hour = dt_from.hour + while (dt_from <= dt_to): + cr.execute("select hour_from,hour_to from resource_calendar_week where dayofweek='%s' and calendar_id=%s order by hour_from", (dt_from.day_of_week,id)) + der = cr.fetchall() + for (hour_from,hour_to) in der: + if hours != 0.0:#For first time of the loop only,hours will be 0 + current_hour = hour_from + leave_flag = False + if (hour_to>=current_hour): + dt_check = dt_from.strftime('%Y-%m-%d') + for leave in dt_leave: + if dt_check == leave: + dt_check = mx.DateTime.strptime(dt_check, "%Y-%m-%d") + mx.DateTime.RelativeDateTime(days=1) + leave_flag = True + + if leave_flag: + break + else: + d1 = dt_from + d2 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(hour_to)), int((hour_to%1) * 60)) + + if hours != 0.0:#For first time of the loop only,hours will be 0 + d1 = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(current_hour)), int((current_hour%1) * 60)) + + if dt_from.day == dt_to.day: + if hour_from <= dt_to.hour <= hour_to: + d2 = dt_to + dt_from = d2 + hours += (d2-d1).seconds + dt_from = mx.DateTime.DateTime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(current_hour)), int((current_hour%1) * 60)) + mx.DateTime.RelativeDateTime(days=1) + current_hour = 0.0 + return (hours/3600) + resource_calendar() class resource_calendar_week(osv.osv): diff --git a/addons/sale/i18n/ca.po b/addons/sale/i18n/ca.po index 40ef81e54c5..90b6341eea9 100644 --- a/addons/sale/i18n/ca.po +++ b/addons/sale/i18n/ca.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.0_rc3\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2009-12-31 12:42+0000\n" -"Last-Translator: Albert Cervera i Areny - http://www.NaN-tic.com <albert@nan-" -"tic.com>\n" +"PO-Revision-Date: 2010-06-04 09:30+0000\n" +"Last-Translator: Jordi Esteve (www.zikzakmedia.com) " +"<jesteve@zikzakmedia.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:09+0000\n" +"X-Launchpad-Export-Date: 2010-06-05 03:36+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: sale @@ -659,8 +659,8 @@ msgid "" "This Configuration step use to set default picking policy when make sale " "order" msgstr "" -"Aquest pas en la configuració fixa la política d'empaquetament per defecte " -"quan es crea una comanda de venda" +"Aquest pas fixa la política d'empaquetament per defecte quan es crea una " +"comanda de venda" #. module: sale #: model:process.process,name:sale.process_process_salesprocess0 @@ -734,7 +734,7 @@ msgstr "Proveïment de venda" #. module: sale #: view:sale.config.picking_policy:0 msgid "Configure Sale Order Logistic" -msgstr "Configura logística comanda de venda" +msgstr "Configureu la logística de les comandes de venda" #. module: sale #: field:sale.order,amount_untaxed:0 @@ -749,7 +749,7 @@ msgstr "Estat" #. module: sale #: field:sale.order,picking_policy:0 msgid "Packing Policy" -msgstr "Política d'enviament" +msgstr "Forma d'enviament" #. module: sale #: model:ir.actions.act_window,name:sale.action_order_line_product_tree @@ -1200,10 +1200,10 @@ msgid "" "and simple methods to deliver products to the customer in one or two " "operations by the worker." msgstr "" -"Por defecte, OpenERP pot gestionar rutes complexes i rutes de productes en " -"el vostre magatzem i en les ubicacions d'empreses. Això configurarà els " -"mètodes més comuns i senzills per enviar productes al client en una o dues " -"operacions realitzades pel treballador." +"Per defecte, OpenERP pot gestionar rutes complexes i rutes de productes en " +"el vostre magatzem i en les ubicacions d'empreses. Aquesta opció us " +"configurarà els mètodes més comuns i senzills per enviar productes al client " +"en una o dues operacions realitzades pel treballador." #. module: sale #: model:ir.actions.act_window,name:sale.action_config_picking_policy diff --git a/addons/sale/i18n/hr.po b/addons/sale/i18n/hr.po index b2ba5dbc8d4..c17d591e485 100644 --- a/addons/sale/i18n/hr.po +++ b/addons/sale/i18n/hr.po @@ -7,13 +7,13 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-24 00:11+0000\n" +"PO-Revision-Date: 2010-06-06 23:44+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:09+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" @@ -797,7 +797,7 @@ msgstr "Ponuda" #. module: sale #: model:product.template,name:sale.advance_product_0_product_template msgid "Advance Product" -msgstr "" +msgstr "Proslijediti Proizvod" #. module: sale #: model:process.transition,note:sale.process_transition_invoice0 @@ -1031,7 +1031,7 @@ msgstr "Želite li zaista kreirati Račune?" #. module: sale #: model:process.node,note:sale.process_node_invoiceafterdelivery0 msgid "Invoice based on packing lists" -msgstr "" +msgstr "Račun napravljen prema tovarnom listi" #. module: sale #: view:sale.config.picking_policy:0 diff --git a/addons/sale/sale.py b/addons/sale/sale.py index e684a1a6c1d..07c66ef91dc 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -72,7 +72,7 @@ class sale_order(osv.osv): if context is None: context = {} val = 0.0 - for c in self.pool.get('account.tax').compute(cr, uid, line.tax_id, line.price_unit * (1-(line.discount or 0.0)/100.0), line.product_uom_qty, line.order_id.partner_invoice_id.id, line.product_id, line.order_id.partner_id): + for c in self.pool.get('account.tax').compute_all(cr, uid, line.tax_id, line.price_unit * (1-(line.discount or 0.0)/100.0), line.product_uom_qty, line.order_id.partner_invoice_id.id, line.product_id, line.order_id.partner_id)['taxes']: val += c['amount'] return val @@ -774,23 +774,16 @@ sale_order() # - update it on change product and unit price # - use it in report if there is a uos class sale_order_line(osv.osv): - def _amount_line_net(self, cr, uid, ids, field_name, arg, context=None): - if context is None: - context = {} - res = {} - for line in self.browse(cr, uid, ids, context=context): - res[line.id] = line.price_unit * (1 - (line.discount or 0.0) / 100.0) - return res - def _amount_line(self, cr, uid, ids, field_name, arg, context=None): - if context is None: - context = {} res = {} + context = context or {} + tax_obj = self.pool.get('account.tax') cur_obj = self.pool.get('res.currency') for line in self.browse(cr, uid, ids, context=context): - res[line.id] = line.price_unit * line.product_uom_qty * (1 - (line.discount or 0.0) / 100.0) + price = line.price_unit * line.product_uom_qty * (1 - (line.discount or 0.0) / 100.0) + taxes = tax_obj.compute_all(cr, uid, line.tax_id, price, line.product_uom_qty) cur = line.order_id.pricelist_id.currency_id - res[line.id] = cur_obj.round(cr, uid, cur, res[line.id]) + res[line.id] = cur_obj.round(cr, uid, cur, taxes['total']) return res def _number_packages(self, cr, uid, ids, field_name, arg, context=None): @@ -799,7 +792,7 @@ class sale_order_line(osv.osv): res = {} for line in self.browse(cr, uid, ids, context=context): try: - res[line.id] = int(line.product_uom_qty / line.product_packaging.qty) + res[line.id] = int((line.product_uom_qty+line.product_packaging.qty-0.0001) / line.product_packaging.qty) except: res[line.id] = 1 return res @@ -816,7 +809,6 @@ class sale_order_line(osv.osv): 'invoiced': fields.boolean('Invoiced', readonly=True), 'procurement_id': fields.many2one('mrp.procurement', 'Procurement'), 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Sale Price'), readonly=True, states={'draft':[('readonly',False)]}), - 'price_net': fields.function(_amount_line_net, method=True, string='Net Price', digits_compute= dp.get_precision('Sale Price')), 'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal', digits_compute= dp.get_precision('Sale Price')), 'tax_id': fields.many2many('account.tax', 'sale_order_tax', 'order_line_id', 'tax_id', 'Taxes', readonly=True, states={'draft':[('readonly',False)]}), 'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Procurement Method', required=True, readonly=True, states={'draft':[('readonly',False)]}), diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index 4d82e8595ad..c236b669580 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -131,8 +131,7 @@ on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position, True)" /> <field name="product_uom" - on_change="product_uom_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order)" - widget="selection"/> + on_change="product_uom_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order)"/> <field name="product_packaging" context="partner_id=parent.partner_id,quantity=product_uom_qty,pricelist=parent.pricelist_id,shop=parent.shop_id,uom=product_uom" @@ -183,12 +182,11 @@ <field name="product_uom" string="UoM"/> <field name="discount"/> <field name="price_unit"/> - <field name="price_net"/> <field name="price_subtotal"/> </tree> </field> <newline/> - <group col="8" colspan="5"> + <group col="8" colspan="10"> <field name="amount_untaxed" sum="Untaxed amount"/> <field name="amount_tax"/> <field name="amount_total"/> @@ -351,7 +349,6 @@ <field name="product_uom_qty" string="Qty"/> <field name="product_uom" string="UoM"/> <field name="salesman_id"/> - <field name="price_net"/> <field name="price_subtotal"/> <field name="th_weight"/> <field name="state"/> diff --git a/addons/sale_crm/i18n/hr.po b/addons/sale_crm/i18n/hr.po index 5ab251827fc..2e5036d7030 100644 --- a/addons/sale_crm/i18n/hr.po +++ b/addons/sale_crm/i18n/hr.po @@ -7,20 +7,20 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-22 00:56+0000\n" +"PO-Revision-Date: 2010-06-06 23:44+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:03+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" #. module: sale_crm #: model:process.transition,name:sale_crm.process_transition_crmopportunityquotation msgid "Crm opportunity quotation" -msgstr "" +msgstr "Ponuda CRM prilici" #. module: sale_crm #: model:process.transition,name:sale_crm.process_transition_opportunityanalytic0 diff --git a/addons/sale_journal/i18n/hr.po b/addons/sale_journal/i18n/hr.po index 87f36a5ca04..8e1ce7fb070 100644 --- a/addons/sale_journal/i18n/hr.po +++ b/addons/sale_journal/i18n/hr.po @@ -7,20 +7,20 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-24 00:49+0000\n" +"PO-Revision-Date: 2010-06-06 23:45+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:12+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" #. module: sale_journal #: model:ir.actions.act_window,name:sale_journal.act_sale_journal_sale_journal_2_sale_journal_sale_stats msgid "Monthly sales" -msgstr "" +msgstr "Mjesečne prodaje" #. module: sale_journal #: model:ir.actions.act_window,name:sale_journal.act_sale_journal_picking_journal_2_stock_picking_assigned @@ -378,7 +378,7 @@ msgstr "Pregled Pakiranja" #: selection:sale_journal.sale.journal,state:0 #: selection:sale_journal.sale.stats,state:0 msgid "Done" -msgstr "" +msgstr "Gotovo" #. module: sale_journal #: selection:sale_journal.sale.stats,state:0 @@ -441,7 +441,7 @@ msgstr "Tip Računa" #. module: sale_journal #: selection:sale_journal.invoice.type.stats,invoice_state:0 msgid "invoiced" -msgstr "" +msgstr "Izdan račun" #. module: sale_journal #: selection:sale_journal.invoice.type.stats,state:0 diff --git a/addons/survey/i18n/hr.po b/addons/survey/i18n/hr.po index b652ccf0225..d6b54e0ce1a 100644 --- a/addons/survey/i18n/hr.po +++ b/addons/survey/i18n/hr.po @@ -8,20 +8,20 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2009-11-26 06:01+0000\n" -"PO-Revision-Date: 2010-03-22 00:56+0000\n" +"PO-Revision-Date: 2010-06-06 23:46+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:21+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" #. module: survey #: model:ir.ui.menu,name:survey.menu_survey_form msgid "Surveys" -msgstr "" +msgstr "Upitnici" #. module: survey #: model:ir.actions.report.xml,name:survey.survey @@ -310,18 +310,18 @@ msgstr "Manualno" #. module: survey #: model:ir.actions.act_window,name:survey.action_survey_form1 msgid "All Surveys" -msgstr "" +msgstr "Svi Upitnici" #. module: survey #: view:survey:0 #: field:survey,users:0 msgid "Users" -msgstr "" +msgstr "Korisnici" #. module: survey #: wizard_view:wizard.send.invitation,init:0 msgid "Message" -msgstr "" +msgstr "Poruka" #. module: survey #: field:survey.name.wiz,page_no:0 diff --git a/addons/thunderbird/i18n/hr.po b/addons/thunderbird/i18n/hr.po index e7accb0d6e0..7911a4acbe5 100644 --- a/addons/thunderbird/i18n/hr.po +++ b/addons/thunderbird/i18n/hr.po @@ -8,20 +8,20 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2009-11-26 06:05+0000\n" -"PO-Revision-Date: 2010-03-21 23:36+0000\n" +"PO-Revision-Date: 2010-06-06 23:47+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:21+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" #. module: thunderbird #: field:tinythunderbird.partner,copy_to:0 msgid "Copy To" -msgstr "" +msgstr "Kopiraj na" #. module: thunderbird #: constraint:ir.model:0 diff --git a/addons/warning/i18n/hr.po b/addons/warning/i18n/hr.po index 53602bfba7d..cd9463a0d2c 100644 --- a/addons/warning/i18n/hr.po +++ b/addons/warning/i18n/hr.po @@ -7,20 +7,20 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2009-08-28 16:01+0000\n" -"PO-Revision-Date: 2010-03-22 00:56+0000\n" +"PO-Revision-Date: 2010-06-06 23:49+0000\n" "Last-Translator: Drazen Bosak <Unknown>\n" "Language-Team: Vinteh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-04-17 04:19+0000\n" +"X-Launchpad-Export-Date: 2010-06-07 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" #. module: warning #: field:product.product,purchase_line_warn:0 msgid "Purchase Order Line" -msgstr "" +msgstr "Niz Prodajne Narudžbe" #. module: warning #: field:product.product,sale_line_warn_msg:0 |
