Initial commit: Hr packages

This commit is contained in:
Ernad Husremovic 2025-08-29 15:20:50 +02:00
commit 62531cd146
2820 changed files with 1432848 additions and 0 deletions

View file

@ -0,0 +1,62 @@
# Expenses
Manage expenses by Employees
============================
This application allows you to manage your employees' daily expenses. It gives you access to your employees fee notes and give you the right to complete and validate or refuse the notes. After validation it creates an invoice for the employee.
Employee can encode their own expenses and the validation flow puts it automatically in the accounting after validation by managers.
The whole flow is implemented as:
---------------------------------
* Draft expense
* Submitted by the employee to his manager
* Approved by his manager
* Validation by the accountant and accounting entries creation
This module also uses analytic accounting and is compatible with the invoice on timesheet module so that you are able to automatically re-invoice your customers' expenses if your work by project.
## Installation
```bash
pip install odoo-bringout-oca-ocb-hr_expense
```
## Dependencies
This addon depends on:
- hr_contract
- account
- web_tour
## Manifest Information
- **Name**: Expenses
- **Version**: 2.0
- **Category**: Human Resources/Expenses
- **License**: LGPL-3
- **Installable**: True
## Source
Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `hr_expense`.
## License
This package maintains the original LGPL-3 license from the upstream Odoo project.
## Documentation
- Overview: doc/OVERVIEW.md
- Architecture: doc/ARCHITECTURE.md
- Models: doc/MODELS.md
- Controllers: doc/CONTROLLERS.md
- Wizards: doc/WIZARDS.md
- Install: doc/INSTALL.md
- Usage: doc/USAGE.md
- Configuration: doc/CONFIGURATION.md
- Dependencies: doc/DEPENDENCIES.md
- Troubleshooting: doc/TROUBLESHOOTING.md
- FAQ: doc/FAQ.md

View file

@ -0,0 +1,32 @@
# Architecture
```mermaid
flowchart TD
U[Users] -->|HTTP| V[Views and QWeb Templates]
V --> C[Controllers]
V --> W[Wizards Transient Models]
C --> M[Models and ORM]
W --> M
M --> R[Reports]
DX[Data XML] --> M
S[Security ACLs and Groups] -. enforces .-> M
subgraph Hr_expense Module - hr_expense
direction LR
M:::layer
W:::layer
C:::layer
V:::layer
R:::layer
S:::layer
DX:::layer
end
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
```
Notes
- Views include tree/form/kanban templates and report templates.
- Controllers provide website/portal routes when present.
- Wizards are UI flows implemented with `models.TransientModel`.
- Data XML loads data/demo records; Security defines groups and access.

View file

@ -0,0 +1,3 @@
# Configuration
Refer to Odoo settings for hr_expense. Configure related models, access rights, and options as needed.

View file

@ -0,0 +1,3 @@
# Controllers
This module does not define custom HTTP controllers.

View file

@ -0,0 +1,7 @@
# Dependencies
This addon depends on:
- [hr_contract](../../odoo-bringout-oca-ocb-hr_contract)
- [account](../../odoo-bringout-oca-ocb-account)
- [web_tour](../../odoo-bringout-oca-ocb-web_tour)

View file

@ -0,0 +1,4 @@
# FAQ
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
- Q: How to enable? A: Start server with --addon hr_expense or install in UI.

View file

@ -0,0 +1,7 @@
# Install
```bash
pip install odoo-bringout-oca-ocb-hr_expense"
# or
uv pip install odoo-bringout-oca-ocb-hr_expense"
```

View file

@ -0,0 +1,27 @@
# Models
Detected core models and extensions in hr_expense.
```mermaid
classDiagram
class hr_expense
class hr_expense_sheet
class account_analytic_account
class account_analytic_applicability
class account_journal
class account_move
class account_move_line
class account_payment
class hr_department
class hr_employee
class hr_employee_public
class ir_attachment
class product_product
class product_template
class res_company
class res_config_settings
```
Notes
- Classes show model technical names; fields omitted for brevity.
- Items listed under _inherit are extensions of existing models.

View file

@ -0,0 +1,6 @@
# Overview
Packaged Odoo addon: hr_expense. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon hr_expense
- License: LGPL-3

View file

@ -0,0 +1,45 @@
# Patch: Remove App Store Download Links
## Module: hr_expense
### Description
This patch removes mobile app store download links (Apple App Store and Google Play Store) from the HR Expense management interface.
### Files Modified
- `hr_expense/views/hr_expense_views.xml`
### Changes Made
#### File: hr_expense/views/hr_expense_views.xml
**Lines removed: 444-449**
Removed the following section containing mobile app store download links:
```xml
<a href="https://apps.apple.com/be/app/odoo/id1272543640" target="_blank" class="o_expense_mobile_app">
<img alt="Apple App Store" class="img img-fluid h-100 o_expense_apple_store" src="/hr_expense/static/img/app_store.png"/>
</a>
<a href="https://play.google.com/store/apps/details?id=com.odoo.mobile" target="_blank" class="o_expense_mobile_app">
<img alt="Google Play Store" class="img img-fluid h-100 o_expense_google_store" src="/hr_expense/static/img/play_store.png"/>
</a>
```
### Impact
- Users will no longer see mobile app store download buttons in the expense management interface
- The promotional text about snapping pictures of receipts remains visible
- The feature description and instructions for mobile expense creation are preserved
- All core expense management functionality remains unchanged
### Context
- The removed links were part of a promotional section encouraging mobile app usage
- Links pointed to:
- Apple App Store: Official Odoo mobile app
- Google Play Store: Official Odoo mobile app
- The section was visible on desktop browsers (`d-none d-md-block` class)
- The instructional text "Snap pictures of your receipts and let Odoo automatically create expenses for you" remains
### Reason
Removal of proprietary mobile app store references while maintaining the informational content about mobile expense features that can be accessed through web browsers or alternative app distribution methods.
---
**Patch Created:** 2025-08-27
**Applied By:** Claude Code Assistant

View file

@ -0,0 +1,23 @@
# Reports
Report definitions and templates in hr_expense.
```mermaid
classDiagram
```
## Available Reports
### PDF/Document Reports
- **Expenses Report** (PDF/Print)
## Report Files
- **hr_expense_report.xml** (XML template/definition)
## Notes
- Named reports above are accessible through Odoo's reporting menu
- Python files define report logic and data processing
- XML files contain report templates, definitions, and formatting
- Reports are integrated with Odoo's printing and email systems

View file

@ -0,0 +1,46 @@
# Security
Access control and security definitions in hr_expense.
## Access Control Lists (ACLs)
Model access permissions defined in:
- **[ir.model.access.csv](../hr_expense/security/ir.model.access.csv)**
- 19 model access rules
## Record Rules
Row-level security rules defined in:
- **[ir_rule.xml](../hr_expense/security/ir_rule.xml)**
## Security Groups & Configuration
Security groups and permissions defined in:
- **[hr_expense_security.xml](../hr_expense/security/hr_expense_security.xml)**
- 3 security groups defined
- **[ir_rule.xml](../hr_expense/security/ir_rule.xml)**
```mermaid
graph TB
subgraph "Security Layers"
A[Users] --> B[Groups]
B --> C[Access Control Lists]
C --> D[Models]
B --> E[Record Rules]
E --> F[Individual Records]
end
```
Security files overview:
- **[hr_expense_security.xml](../hr_expense/security/hr_expense_security.xml)**
- Security groups, categories, and XML-based rules
- **[ir.model.access.csv](../hr_expense/security/ir.model.access.csv)**
- Model access permissions (CRUD rights)
- **[ir_rule.xml](../hr_expense/security/ir_rule.xml)**
- Security groups, categories, and XML-based rules
Notes
- Access Control Lists define which groups can access which models
- Record Rules provide row-level security (filter records by user/group)
- Security groups organize users and define permission sets
- All security is enforced at the ORM level by Odoo

View file

@ -0,0 +1,5 @@
# Troubleshooting
- Ensure Python and Odoo environment matches repo guidance.
- Check database connectivity and logs if startup fails.
- Validate that dependent addons listed in DEPENDENCIES.md are installed.

View file

@ -0,0 +1,7 @@
# Usage
Start Odoo including this addon (from repo root):
```bash
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon hr_expense
```

View file

@ -0,0 +1,12 @@
# Wizards
Transient models exposed as UI wizards in hr_expense.
```mermaid
classDiagram
class AccountPaymentRegister
class HrExpenseApproveDuplicate
class HrExpenseRefuseWizard
class HrExpenseSplit
class HrExpenseSplitWizard
```

View file

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models
from . import wizard

View file

@ -0,0 +1,75 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Expenses',
'version': '2.0',
'category': 'Human Resources/Expenses',
'sequence': 70,
'summary': 'Submit, validate and reinvoice employee expenses',
'description': """
Manage expenses by Employees
============================
This application allows you to manage your employees' daily expenses. It gives you access to your employees fee notes and give you the right to complete and validate or refuse the notes. After validation it creates an invoice for the employee.
Employee can encode their own expenses and the validation flow puts it automatically in the accounting after validation by managers.
The whole flow is implemented as:
---------------------------------
* Draft expense
* Submitted by the employee to his manager
* Approved by his manager
* Validation by the accountant and accounting entries creation
This module also uses analytic accounting and is compatible with the invoice on timesheet module so that you are able to automatically re-invoice your customers' expenses if your work by project.
""",
'website': 'https://www.odoo.com/app/expenses',
'depends': ['hr_contract', 'account', 'web_tour'],
'data': [
'security/hr_expense_security.xml',
'security/ir.model.access.csv',
'data/digest_data.xml',
'data/mail_activity_type_data.xml',
'data/mail_alias_data.xml',
'data/mail_message_subtype_data.xml',
'data/mail_templates.xml',
'data/hr_expense_sequence.xml',
'data/hr_expense_data.xml',
'wizard/hr_expense_refuse_reason_views.xml',
'wizard/hr_expense_approve_duplicate_views.xml',
'wizard/hr_expense_split_wizard_views.xml',
'views/hr_expense_views.xml',
'views/mail_activity_views.xml',
'security/ir_rule.xml',
'report/hr_expense_report.xml',
'views/account_move_views.xml',
'views/account_payment_views.xml',
'views/hr_department_views.xml',
'views/res_config_settings_views.xml',
'views/account_journal_dashboard.xml',
],
'demo': ['data/hr_expense_demo.xml'],
'installable': True,
'application': True,
'assets': {
'web.assets_backend': [
'hr_expense/static/src/components/*.js',
'hr_expense/static/src/components/*.xml',
'hr_expense/static/src/mixins/*.js',
'hr_expense/static/src/views/*.js',
'hr_expense/static/src/views/*.xml',
'hr_expense/static/src/scss/hr_expense.scss',
'hr_expense/static/src/xml/**/*',
'hr_expense/static/src/js/tours/*.js',
],
'web.assets_tests': [
'hr_expense/static/tests/tours/expense_upload_tours.js',
],
'web.qunit_mobile_suite_tests': [
'hr_expense/static/tests/expense_mobile_tests.js',
],
},
'license': 'LGPL-3',
}

View file

@ -0,0 +1,17 @@
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<data>
<record id="digest_tip_hr_expense_0" model="digest.tip">
<field name="name">Tip: Snap pictures of your receipts with the remote app</field>
<field name="sequence">1100</field>
<field name="group_id" ref="base.group_user" />
<field name="tip_description" type="html">
<div>
<p class="tip_title">Tip: Snap pictures of your receipts with the remote app</p>
<p class="tip_content">Do not keep your expense tickets in your pockets any longer. Just snap a picture of your receipt and let Odoo digitalizes it for you. The OCR and Artificial Intelligence will fill the data automatically.</p>
<img src="https://download.odoocdn.com/digests/hr_expense/static/src/img/expense.png" class="illustration_border" />
</div>
</field>
</record>
</data>
</odoo>

View file

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- sgv note - icons will be replaced. Design task is ongoing -->
<record id="expense_product_meal" model="product.product">
<field name="name">Meals</field>
<field name="description">Restaurants, business lunches, etc.</field>
<field name="standard_price">0.0</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_unit"/>
<field name="uom_po_id" ref="uom.product_uom_unit"/>
<field name="default_code">FOOD</field>
<field name="can_be_expensed" eval="True"/>
<field name="sale_ok" eval="False"/>
<field name="purchase_ok" eval="False"/>
<field name="image_1920" type="base64" file="hr_expense/static/img/food.svg"/>
</record>
<record id="expense_product_travel_accommodation" model="product.product">
<field name="name">Travel &amp; Accommodation</field>
<field name="description">Hotel, plane ticket, taxi, etc.</field>
<field name="standard_price">0.0</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_unit"/>
<field name="uom_po_id" ref="uom.product_uom_unit"/>
<field name="default_code">TRANS &amp; ACC</field>
<field name="can_be_expensed" eval="True"/>
<field name="sale_ok" eval="False"/>
<field name="purchase_ok" eval="False"/>
<field name="image_1920" type="base64" file="hr_expense/static/img/transport.svg"/>
</record>
<record id="expense_product_mileage" model="product.product">
<field name="name">Mileage</field>
<field name="standard_price">1.0</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_km"/>
<field name="uom_po_id" ref="uom.product_uom_km"/>
<field name="default_code">MIL</field>
<field name="can_be_expensed" eval="True"/>
<field name="sale_ok" eval="False"/>
<field name="purchase_ok" eval="False"/>
<field name="image_1920" type="base64" file="hr_expense/static/img/mileage.svg"/>
</record>
<record id="expense_product_gift" model="product.product">
<field name="name">Gifts</field>
<field name="description">Gifts to customers or vendors</field>
<field name="standard_price">0.0</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_km"/>
<field name="uom_po_id" ref="uom.product_uom_km"/>
<field name="default_code">GIFT</field>
<field name="can_be_expensed" eval="True"/>
<field name="sale_ok" eval="False"/>
<field name="purchase_ok" eval="False"/>
<field name="image_1920" type="base64" file="hr_expense/static/img/gift.svg"/>
</record>
<record id="expense_product_communication" model="product.product">
<field name="name">Communication</field>
<field name="description">Phone bills, postage, etc.</field>
<field name="standard_price">0.0</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_km"/>
<field name="uom_po_id" ref="uom.product_uom_km"/>
<field name="default_code">COMM</field>
<field name="can_be_expensed" eval="True"/>
<field name="sale_ok" eval="False"/>
<field name="purchase_ok" eval="False"/>
<field name="image_1920" type="base64" file="hr_expense/static/img/communication.svg"/>
</record>
<record id="product_product_no_cost" model="product.product">
<field name="name">Others</field>
<field name="standard_price">0.0</field>
<field name="type">service</field>
<field name="default_code">EXP_GEN</field>
<field name="categ_id" ref="product.cat_expense"/>
<field name="can_be_expensed" eval="True"/>
<field name="image_1920" type="base64" file="hr_expense/static/img/other.svg"/>
</record>
</data>
<data>
<function model="ir.config_parameter" name="set_param" eval="('hr_expense.use_mailgateway', True)"/>
</data>
</odoo>

View file

@ -0,0 +1,230 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="hr.employee_mit" model="hr.employee">
<field name="address_home_id" ref="base.res_partner_address_3"/>
</record>
<record id="hr_expense_account_journal" model="account.journal">
<field name="name">Expense</field>
<field name="code">EXP</field>
<field name="type">purchase</field>
<!-- avoid being selected as default journal -->
<field name="sequence">99</field>
<field name="alias_name">purchase_expense</field>
</record>
<record id="res_partner_address_fp" model="res.partner">
<field name="name">Pieter Parter's Farm</field>
<field name="parent_id" ref="base.partner_root"/>
<field name="street">Chaussée de Namur, 40</field>
<field name="zip">1367</field>
<field name="city">Grand-Rosière-Hottomont</field>
<field name="country_id" ref="base.be"/>
<field name="type">private</field>
</record>
<record id="hr.employee_fme" model="hr.employee">
<field name="address_home_id" ref="res_partner_address_fp"/>
</record>
<record id="hr.employee_al" model="hr.employee">
<field name="address_home_id" ref="res_partner_address_fp"/>
</record>
<!-- ++++++++++++++ Expense sheet for Admin ++++++++++++++-->
<record id="screen_expense" model="hr.expense">
<field name="name">Screen</field>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_our_super_product'): 100}"/>
<field name="product_id" ref="product_product_no_cost"/>
<field eval="289.0" name="total_amount"/>
<field name="date" eval="time.strftime('%Y')+'-04-03'"/>
</record>
<record id="laptop_expense" model="hr.expense">
<field name="name">Laptop</field>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_our_super_product'): 100}"/>
<field name="product_id" ref="product_product_no_cost"/>
<field eval="889.0" name="total_amount"/>
<field name="date" eval="time.strftime('%Y')+'-04-03'"/>
</record>
<record id="travel_admin_by_car_expense" model="hr.expense">
<field name="name">Travel by car</field>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="product_id" ref="expense_product_mileage"/>
<field eval="108.84" name="total_amount"/>
<field name="product_uom_id" ref="uom.product_uom_km"/>
<field eval="320.0" name="quantity"/>
</record>
<record id="breakfast_admin_expense" model="hr.expense">
<field name="name">BreakFast</field>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="product_id" ref="expense_product_meal"/>
<field eval="20" name="total_amount"/>
<field eval="1.0" name="quantity"/>
</record>
<record id="travel_ny_sheet" model="hr.expense.sheet">
<field name="name">Commercial Travel at New York</field>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="state">approve</field>
</record>
<record id="travel_by_air_expense" model="hr.expense">
<field name="name">Travel by Air</field>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_our_super_product'): 100}"/>
<field name="product_id" ref="expense_product_travel_accommodation"/>
<field eval="700.0" name="total_amount"/>
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<field eval="1.0" name="quantity"/>
<field name="date" eval="time.strftime('%Y-%m')+'-12'"/>
<field name="sheet_id" ref="travel_ny_sheet"/>
</record>
<record id="hotel_bill_expense" model="hr.expense">
<field name="name">Hotel Expenses</field>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
<field name="product_id" ref="expense_product_travel_accommodation"/>
<field eval="2000.0" name="total_amount"/>
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<field eval="5.0" name="quantity"/>
<field name="date" eval="time.strftime('%Y-%m')+'-17'"/>
<field name="sheet_id" ref="travel_ny_sheet"/>
</record>
<record id="lunch_customer_bill_expense" model="hr.expense">
<field name="name">Lunch with Customer</field>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
<field name="product_id" ref="expense_product_meal"/>
<field eval="152.8" name="total_amount"/>
<field name="date" eval="time.strftime('%Y-%m')+'-13'"/>
<field eval="1.0" name="quantity"/>
<field name="sheet_id" ref="travel_ny_sheet"/>
</record>
<record id="lunch_bill_expense" model="hr.expense">
<field name="name">Lunch</field>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
<field name="product_id" ref="expense_product_meal"/>
<field name="date" eval="time.strftime('%Y-%m')+'-15'"/>
<field eval="56.8" name="total_amount"/>
<field eval="1.0" name="quantity"/>
<field name="sheet_id" ref="travel_ny_sheet"/>
</record>
<!-- ++++++++++++++ Expense sheet for Demo ++++++++++++++-->
<record id="customer_meeting_sheet" model="hr.expense.sheet">
<field name="name">Customer meeting</field>
<field name="employee_id" ref="hr.employee_qdp"/>
<field name="state">submit</field>
</record>
<record id="travel_demo_by_car_expense" model="hr.expense">
<field name="name">Travel by Car</field>
<field name="employee_id" ref="hr.employee_qdp"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_our_super_product'): 100}"/>
<field name="product_id" ref="expense_product_mileage"/>
<field eval="120.85" name="total_amount"/>
<field name="product_uom_id" ref="uom.product_uom_km"/>
<field name="date" eval="time.strftime('%Y')+'-01-15'"/>
<field eval="152.0" name="quantity"/>
<field name="sheet_id" ref="customer_meeting_sheet"/>
</record>
<record id="lunch_demo_customer_bill_expense" model="hr.expense">
<field name="name">Lunch with Customer</field>
<field name="employee_id" ref="hr.employee_qdp"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
<field name="product_id" ref="product_product_no_cost"/>
<field name="date" eval="time.strftime('%Y')+'-01-15'"/>
<field eval="152.8" name="total_amount"/>
<field name="sheet_id" ref="customer_meeting_sheet"/>
</record>
<!-- ++++++++++++++ Expense sheet for Keith Byrd ++++++++++++++-->
<record id="team_building_sheet" model="hr.expense.sheet">
<field name="name">Team Building</field>
<field name="employee_id" ref="hr.employee_fme"/>
<field name="state">submit</field>
</record>
<record id="pizzas_bill_expense" model="hr.expense">
<field name="name">Pizzas</field>
<field name="employee_id" ref="hr.employee_fme"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
<field name="product_id" ref="expense_product_meal"/>
<field name="date" eval="time.strftime('%Y-%m')+'-05'"/>
<field eval="154" name="total_amount"/>
<field eval="12.0" name="quantity"/>
<field name="sheet_id" ref="team_building_sheet"/>
</record>
<record id="drinks_bill_expense" model="hr.expense">
<field name="name">Drinks</field>
<field name="employee_id" ref="hr.employee_fme"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
<field name="product_id" ref="expense_product_meal"/>
<field name="date" eval="time.strftime('%Y-%m')+'-05'"/>
<field eval="42.5" name="total_amount"/>
<field eval="17.0" name="quantity"/>
<field name="sheet_id" ref="team_building_sheet"/>
</record>
<record id="paintball_bill_expense" model="hr.expense">
<field name="name">Paintball</field>
<field name="employee_id" ref="hr.employee_fme"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
<field name="product_id" ref="product_product_no_cost"/>
<field name="date" eval="time.strftime('%Y-%m')+'-05'"/>
<field eval="25" name="total_amount"/>
<field name="sheet_id" ref="team_building_sheet"/>
</record>
<!-- ++++++++++++++ Expense sheet for Ronnie Hart ++++++++++++++-->
<record id="office_furniture_sheet" model="hr.expense.sheet">
<field name="name">Office furniture</field>
<field name="employee_id" ref="hr.employee_al"/>
<field name="state">submit</field>
</record>
<record id="chair_bill_expense" model="hr.expense">
<field name="name">Chairs</field>
<field name="employee_id" ref="hr.employee_al"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
<field name="product_id" ref="product_product_no_cost"/>
<field name="date" eval="time.strftime('%Y')+'-06-02'"/>
<field eval="55.75" name="total_amount"/>
<field name="sheet_id" ref="office_furniture_sheet"/>
</record>
<record id="lamp_bill_expense" model="hr.expense">
<field name="name">Lamp</field>
<field name="employee_id" ref="hr.employee_al"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
<field name="product_id" ref="product_product_no_cost"/>
<field name="date" eval="time.strftime('%Y')+'-06-02'"/>
<field eval="28.99" name="total_amount"/>
<field name="sheet_id" ref="office_furniture_sheet"/>
</record>
<!-- ++++++++++++++ Expense for Randall Lewis ++++++++++++++-->
<record id="afterwork_bill_expense" model="hr.expense">
<field name="name">Car tyres</field>
<field name="employee_id" ref="hr.employee_stw"/>
<field name="analytic_distribution" eval="{ref('analytic.analytic_nebula'): 100}"/>
<field name="product_id" ref="product_product_no_cost"/>
<field name="date" eval="time.strftime('%Y')+'-03-15'"/>
<field eval="450.58" name="total_amount"/>
</record>
</data>
</odoo>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="seq_hr_expense_invoice" model="ir.sequence">
<field name="name">Expense invoice</field>
<field name="code">hr.expense.invoice</field>
<field name="prefix">EXP/</field>
<field name="padding">3</field>
</record>
</data>
</odoo>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="mail_act_expense_approval" model="mail.activity.type">
<field name="name">Expense Approval</field>
<field name="icon">fa-dollar</field>
<field name="res_model">hr.expense.sheet</field>
</record>
</data>
</odoo>

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- default alias for expenses -->
<record id="mail_alias_expense" model="mail.alias">
<field name="alias_name">expense</field>
<field name="alias_model_id" ref="model_hr_expense"/>
<field name="alias_user_id" ref="base.user_admin"/>
<field name="alias_contact">employees</field>
</record>
</data>
</odoo>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Expense-related subtypes for messaging / Chatter -->
<record id="mt_expense_approved" model="mail.message.subtype">
<field name="name">Approved</field>
<field name="res_model">hr.expense.sheet</field>
<field name="default" eval="True"/>
<field name="description">Expense report approved</field>
</record>
<record id="mt_expense_refused" model="mail.message.subtype">
<field name="name">Refused</field>
<field name="res_model">hr.expense.sheet</field>
<field name="default" eval="True"/>
<field name="description">Expense report refused</field>
</record>
<record id="mt_expense_paid" model="mail.message.subtype">
<field name="name">Paid</field>
<field name="res_model">hr.expense.sheet</field>
<field name="description">Expense report paid</field>
<field name="default" eval="True"/>
</record>
</data>
</odoo>

View file

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<template id="hr_expense_template_refuse_reason">
<p>Your Expense <t t-if="is_sheet">Report </t><t t-esc="name"/> has been refused</p>
<ul class="o_timeline_tracking_value_list">
<li>Reason : <t t-esc="reason"/></li>
</ul>
</template>
<template id="hr_expense_template_register">
<p>Dear <t t-esc="expense.employee_id.name"/>,</p>
<p>
Your expense has been successfully registered.
<t t-if="expense.employee_id.user_id">
You can now submit it to the manager from the following link.
</t>
</p>
<p t-if="expense.product_id">
Category: <t t-esc="expense.product_id.name"/>
</p>
<div t-else="">
<p>Category: not found</p>
<p>The first word of the email subject did not correspond to any category code. You'll have to set the category manually on the expense.</p>
</div>
<p>
Price: <t t-esc="expense.unit_amount"/><t t-esc="expense.currency_id.symbol"/>
</p>
<p t-if="expense.employee_id.user_id">
<br/>
<a t-att-href="'/web#id=%s&amp;model=hr.expense&amp;view_type=form' % (expense.id)" style="background-color: #9E588B; margin-top: 10px; padding: 10px; text-decoration: none; color: #fff; border-radius: 5px; font-size: 16px;">View Expense</a>
</p>
</template>
<template id="hr_expense_template_register_no_user">
<div style="background:#F0F0F0;color:#515166;padding:10px 0px;font-family:Arial,Helvetica,sans-serif;font-size:14px;">
<table style="width:600px;margin:5px auto;">
<tbody>
<tr>
<td><a href="/"><img src="/web/binary/company_logo" style="vertical-align:baseline;max-width:100px;" /></a></td>
</tr>
</tbody>
</table>
<table style="width:600px;margin:0px auto;background:white;border:1px solid #e1e1e1;">
<tbody>
<tr>
<td style="padding:15px 20px 10px 20px;">
<t t-call="hr_expense.hr_expense_template_register"/>
<p style="color:#9E588B;">Powered by <a target="_blank" href="https://www.odoo.com">Odoo</a>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</template>
</data>
</odoo>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,737 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_expense
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Odoo 9.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-08-18 14:07+0000\n"
"PO-Revision-Date: 2016-02-20 10:40+0000\n"
"Last-Translator: Martin Trigaux\n"
"Language-Team: English (Australia) (http://www.transifex.com/odoo/odoo-9/"
"language/en_AU/)\n"
"Language: en_AU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "<strong>Currency:</strong>"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "<strong>Employee:</strong>"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "<strong>Manager:</strong>"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "<strong>Status:</strong>"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "<strong>Total</strong>"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_account_id
msgid "Account"
msgstr ""
#. module: hr_expense
#: model:product.product,name:hr_expense.air_ticket
#: model:product.template,name:hr_expense.air_ticket_product_template
msgid "Air Flight"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_analytic_account_id
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Analytic Account"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "Approve"
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
#: model:mail.message.subtype,name:hr_expense.mt_expense_approved
msgid "Approved"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_bank_journal_id
msgid "Bank Journal"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_product_template_can_be_expensed
msgid "Can be expensed"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
msgid "Cancel"
msgstr "Cancel"
#. module: hr_expense
#: model:product.product,name:hr_expense.car_travel
#: model:product.template,name:hr_expense.car_travel_product_template
msgid "Car Travel Expenses"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Certified honest and conform,<br/>(Date and signature).<br/><br/>"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_my_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_expenses_tree
msgid "Click here to approve"
msgstr ""
#. module: hr_expense
#: model_terms:ir.actions.act_window,help:hr_expense.action_request_approve_expense
#: model_terms:ir.actions.act_window,help:hr_expense.expense_all
msgid "Click here to create new expenses."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_my_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_expenses_tree
msgid "Click here to refuse"
msgstr ""
#. module: hr_expense
#: model:web.tip,description:hr_expense.expense_tip_2
msgid "Click on Action to submit multiple expenses to your manager."
msgstr ""
#. module: hr_expense
#: model_terms:ir.actions.act_window,help:hr_expense.hr_expense_product
msgid "Click to create a new expense category."
msgstr ""
#. module: hr_expense
#: selection:hr.expense,payment_mode:0
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_company_id
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Company"
msgstr ""
#. module: hr_expense
#: model:ir.ui.menu,name:hr_expense.menu_hr_expense_configuration
msgid "Configuration"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Confirmed Expenses"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_create_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_create_uid
msgid "Created by"
msgstr "Created by"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_create_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_create_date
msgid "Created on"
msgstr "Created on"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_currency_id
msgid "Currency"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_date
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Date"
msgstr "Date"
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_hr_department
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_department_id
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Department"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_description
msgid "Description"
msgstr "Description"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_display_name
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_display_name
#: model:ir.model.fields,field_description:hr_expense.field_report_hr_expense_report_expense_display_name
msgid "Display Name"
msgstr "Display Name"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "Documents"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_employee_id
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Employee"
msgstr "Employee"
#. module: hr_expense
#: selection:hr.expense,payment_mode:0
msgid "Employee (to reimburse)"
msgstr ""
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.action_approved_expense
#: model:ir.ui.menu,name:hr_expense.menu_expense_approved
msgid "Employee Expenses"
msgstr ""
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Expense"
msgstr "Expense"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_name
msgid "Expense Description"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_journal_id
msgid "Expense Journal"
msgstr ""
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.hr_expense_product
#: model:ir.ui.menu,name:hr_expense.menu_hr_product
msgid "Expense Products"
msgstr ""
#. module: hr_expense
#: model:mail.message.subtype,description:hr_expense.mt_expense_approved
msgid "Expense approved"
msgstr ""
#. module: hr_expense
#: model:mail.message.subtype,description:hr_expense.mt_expense_confirmed
msgid "Expense confirmed, waiting confirmation"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
msgid "Expense refuse reason"
msgstr ""
#. module: hr_expense
#: model:mail.message.subtype,description:hr_expense.mt_expense_refused
msgid "Expense refused"
msgstr ""
#. module: hr_expense
#: model:ir.ui.menu,name:hr_expense.menu_hr_expense_root
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_department_view_kanban
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_my_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_expenses_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
#: model:product.category,name:hr_expense.cat_expense
msgid "Expenses"
msgstr ""
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.action_hr_expense_report_filtered
#: model:ir.actions.act_window,name:hr_expense.hr_expense_action
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_view_graph
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_view_pivot
msgid "Expenses Analysis"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Expenses Month"
msgstr ""
#. module: hr_expense
#: model:mail.message.subtype,name:hr_expense.mt_department_expense_confirmed
msgid "Expenses To Approve"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Expenses by Month"
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:209
#, python-format
msgid "Expenses must belong to the same Employee."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:212
#, python-format
msgid ""
"Expenses must have an expense journal specified to generate accounting "
"entries."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Expenses of Your Team Member"
msgstr ""
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.action_request_approve_expense
#: model:ir.actions.act_window,name:hr_expense.hr_expense_action_from_department
#: model:ir.model.fields,field_description:hr_expense.field_hr_department_expense_to_approve_count
msgid "Expenses to Approve"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Expenses to Invoice"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Former Employees"
msgstr ""
#. module: hr_expense
#: model_terms:ir.actions.act_window,help:hr_expense.action_approved_expense
msgid ""
"From here the accountant will be able to approve as well as refuse the "
"expenses which are verified by the HR Manager."
msgstr ""
#. module: hr_expense
#: model:ir.actions.server,name:hr_expense.hr_expense_entry_action_server
msgid "Generate Accounting Entries"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Group By"
msgstr ""
#. module: hr_expense
#: model:ir.actions.report.xml,name:hr_expense.action_report_hr_expense
msgid "HR Expense"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "HR Expenses"
msgstr ""
#. module: hr_expense
#: model:product.product,name:hr_expense.hotel_rent
#: model:product.template,name:hr_expense.hotel_rent_product_template
msgid "Hotel Accommodation"
msgstr ""
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_hr_expense_refuse_wizard
msgid "Hr Expense refuse Reason wizard"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_id
#: model:ir.model.fields,field_description:hr_expense.field_report_hr_expense_report_expense_id
msgid "ID"
msgstr "ID"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_account_move_id
msgid "Journal Entry"
msgstr ""
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_account_move_line
msgid "Journal Item"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense___last_update
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard___last_update
#: model:ir.model.fields,field_description:hr_expense.field_report_hr_expense_report_expense___last_update
msgid "Last Modified on"
msgstr "Last Modified on"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_write_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_write_uid
msgid "Last Updated by"
msgstr "Last Updated by"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_write_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_write_date
msgid "Last Updated on"
msgstr "Last Updated on"
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.expense_all
#: model:ir.ui.menu,name:hr_expense.menu_expense_all
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "My Expenses"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "My Team Expenses"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Name"
msgstr "Name"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "New"
msgstr "New"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "New Expense"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "New Mail"
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:276
#, python-format
msgid ""
"No Expense account found for the product %s (or for it's category), please "
"configure one."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:244
#, python-format
msgid "No Home Address found for the employee %s, please configure one."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:240
#, python-format
msgid "No credit account found for the %s journal, please configure one."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "Notes..."
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_attachment_number
msgid "Number of Attachments"
msgstr ""
#. module: hr_expense
#: model_terms:ir.actions.act_window,help:hr_expense.action_request_approve_expense
#: model_terms:ir.actions.act_window,help:hr_expense.expense_all
msgid ""
"Once you have created your expense, submit it to your manager who will "
"validate it."
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
msgid "Paid"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_payment_mode
msgid "Payment By"
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:280
#, python-format
msgid ""
"Please configure Default Expense account for Product expense: "
"`property_account_expense_categ_id`."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "Post Journal Entries"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Price"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_product_id
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Product"
msgstr ""
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_product_template
msgid "Product Template"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Qty"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_quantity
msgid "Quantity"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_description
msgid "Reason"
msgstr "OK"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
msgid "Reason to refuse expense."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
msgid "Refuse"
msgstr ""
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.hr_expense_refuse_wizard_action
msgid "Refuse Expense"
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
#: model:mail.message.subtype,name:hr_expense.mt_expense_refused
msgid "Refused"
msgstr ""
#. module: hr_expense
#: model:ir.ui.menu,name:hr_expense.menu_hr_expense
msgid "Reporting"
msgstr ""
#. module: hr_expense
#: model:web.tip,description:hr_expense.expense_tip_1
msgid "Select the lines you want to submit to be reimbursed."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:77
#, python-format
msgid ""
"Selected Unit of Measure does not belong to the same category as the product "
"Unit of Measure"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "Set to Draft"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,help:hr_expense.field_product_template_can_be_expensed
msgid "Specify whether the product can be selected in an HR expense."
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_state
msgid "Status"
msgstr ""
#. module: hr_expense
#: model:ir.actions.server,name:hr_expense.hr_expense_submit_action_server
msgid "Submit Expenses"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_my_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_expenses_tree
msgid "Submit to Manager"
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
msgid "Submitted"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_untaxed_amount
msgid "Subtotal"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Taxe(s)"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_tax_ids
msgid "Taxes"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,help:hr_expense.field_hr_expense_journal_id
msgid "The journal used when the expense is done."
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,help:hr_expense.field_hr_expense_bank_journal_id
msgid "The payment method used when the expense is paid by the company."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "This document must be dated and signed for reimbursement."
msgstr ""
#. module: hr_expense
#: model:ir.ui.menu,name:hr_expense.menu_expense_to_approve
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
#: model:mail.message.subtype,name:hr_expense.mt_expense_confirmed
msgid "To Approve"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "To Pay"
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
msgid "To Submit"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_total_amount
msgid "Total"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_my_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_expenses_tree
msgid "Total Amount"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_unit_amount
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Unit Price"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_product_uom_id
msgid "Unit of Measure"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "UoM"
msgstr ""
#. module: hr_expense
#: model:web.tip,description:hr_expense.expense_tip_3
msgid ""
"Use the messaging tool to log a note and attach a document to the expense. "
"(e.g. scan of the bill)"
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
msgid "Waiting Payment"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,help:hr_expense.field_hr_expense_state
msgid ""
"When the expense request is created the status is 'To Submit'.\n"
" It is submitted by the employee and request is sent to manager, the status "
"is 'Submitted'. \n"
"If the manager approve it, the status is 'Approved'.\n"
" If the accountant genrate the accounting entries for the expense request, "
"the status is 'Waiting Payment'."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:111
#, python-format
msgid "You can only delete draft or refused expenses!"
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:206
#, python-format
msgid "You can only generate accounting entry for approved expense(s)."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:117
#, python-format
msgid "You can only submit draft expenses!"
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:128
#, python-format
msgid ""
"Your Expense %s has been refused.<br/><ul "
"class=o_timeline_tracking_value_list><li>Reason<span> : </span><span "
"class=o_timeline_tracking_value>%s</span></li></ul>"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "e.g. Business lunch with X"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
msgid "or"
msgstr "or"
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_report_hr_expense_report_expense
msgid "report.hr_expense.report_expense"
msgstr ""
#. module: hr_expense
#. odoo-python
#: code:addons/hr_expense/models/hr_expense.py:0
#, python-format
msgid ""
"The private address of the employee is required to post the expense report. "
"Please add it on the employee form."
msgstr ""

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,208 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_expense
#
# Translators:
# Martin Trigaux <mat@odoo.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~15.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-26 14:21+0000\n"
"PO-Revision-Date: 2017-11-16 08:08+0000\n"
"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n"
"Language-Team: Spanish (Chile) (https://www.transifex.com/odoo/teams/41243/"
"es_CL/)\n"
"Language: es_CL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_account_analytic_account
msgid "Analytic Account"
msgstr "Cuenta analítica"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_approve_duplicate_view_form
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_split
msgid "Cancel"
msgstr "Cancelar"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__company_id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet__company_id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split__company_id
#: model:ir.model.fields.selection,name:hr_expense.selection__hr_expense__payment_mode__company_account
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_sheet_view_search
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_view_search
msgid "Company"
msgstr "Compañía"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__create_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_approve_duplicate__create_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard__create_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet__create_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split__create_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split_wizard__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__create_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_approve_duplicate__create_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard__create_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet__create_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split__create_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split_wizard__create_date
msgid "Created on"
msgstr "Creado en"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__currency_id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet__currency_id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split__currency_id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split_wizard__currency_id
msgid "Currency"
msgstr "Moneda"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__name
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split__name
msgid "Description"
msgstr "Descripción"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__display_name
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_approve_duplicate__display_name
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard__display_name
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet__display_name
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split__display_name
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split_wizard__display_name
msgid "Display Name"
msgstr "Nombre mostrado"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_sheet_view_search
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_view_search
msgid "Group By"
msgstr "Agrupar por"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_approve_duplicate__id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard__id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet__id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split__id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split_wizard__id
msgid "ID"
msgstr "ID (identificación)"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense____last_update
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_approve_duplicate____last_update
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard____last_update
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet____last_update
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split____last_update
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split_wizard____last_update
msgid "Last Modified on"
msgstr "Última modificación en"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__write_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_approve_duplicate__write_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard__write_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet__write_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split__write_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split_wizard__write_uid
msgid "Last Updated by"
msgstr "Última actualización de"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__write_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_approve_duplicate__write_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard__write_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet__write_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split__write_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split_wizard__write_date
msgid "Last Updated on"
msgstr "Última actualización en"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense_sheet
msgid "Price"
msgstr "Precio"
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_product_template
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split__product_id
msgid "Product"
msgstr "Producto"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense_sheet
msgid "Qty"
msgstr "Ctdad"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__quantity
msgid "Quantity"
msgstr "Cantidad"
#. module: hr_expense
#: model:ir.ui.menu,name:hr_expense.menu_hr_expense_reports
msgid "Reporting"
msgstr "Informes"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__state
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet__state
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_sheet_view_search
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_view_search
msgid "Status"
msgstr "Estado"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet__total_amount_taxes
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_split_wizard__total_amount_taxes
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_split
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense_sheet
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_sheet_form
msgid "Taxes"
msgstr "Impuestos"
#. module: hr_expense
#. odoo-python
#: code:addons/hr_expense/models/hr_expense.py:0
#, python-format
msgid ""
"The private address of the employee is required to post the expense report. "
"Please add it on the employee form."
msgstr ""
"Se requiere la dirección privada del empleado para publicar el informe de "
"gastos. Por favor, agréguelo en el formulario de empleado."
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__untaxed_amount
msgid "Total Untaxed Amount In Currency"
msgstr "Total neto en la divisa"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__unit_amount
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_view_expenses_analysis_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense_sheet
msgid "Unit Price"
msgstr "Precio un."
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__product_uom_id
msgid "Unit of Measure"
msgstr "Unidad de medida"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet__untaxed_amount
msgid "Untaxed Amount"
msgstr "Total neto"

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,743 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_expense
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Odoo 9.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-08-18 14:07+0000\n"
"PO-Revision-Date: 2016-06-08 07:10+0000\n"
"Last-Translator: Martin Trigaux\n"
"Language-Team: Telugu (http://www.transifex.com/odoo/odoo-9/language/te/)\n"
"Language: te\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
#, fuzzy
msgid "<strong>Currency:</strong>"
msgstr "Vivarana"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "<strong>Employee:</strong>"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
#, fuzzy
msgid "<strong>Manager:</strong>"
msgstr "Moththamu"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
#, fuzzy
msgid "<strong>Status:</strong>"
msgstr "Moththamu"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "<strong>Total</strong>"
msgstr "Moththamu"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_account_id
msgid "Account"
msgstr ""
#. module: hr_expense
#: model:product.product,name:hr_expense.air_ticket
#: model:product.template,name:hr_expense.air_ticket_product_template
msgid "Air Flight"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_analytic_account_id
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Analytic Account"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "Approve"
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
#: model:mail.message.subtype,name:hr_expense.mt_expense_approved
msgid "Approved"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_bank_journal_id
msgid "Bank Journal"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_product_template_can_be_expensed
msgid "Can be expensed"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
msgid "Cancel"
msgstr ""
#. module: hr_expense
#: model:product.product,name:hr_expense.car_travel
#: model:product.template,name:hr_expense.car_travel_product_template
msgid "Car Travel Expenses"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Certified honest and conform,<br/>(Date and signature).<br/><br/>"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_my_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_expenses_tree
msgid "Click here to approve"
msgstr ""
#. module: hr_expense
#: model_terms:ir.actions.act_window,help:hr_expense.action_request_approve_expense
#: model_terms:ir.actions.act_window,help:hr_expense.expense_all
msgid "Click here to create new expenses."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_my_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_expenses_tree
msgid "Click here to refuse"
msgstr ""
#. module: hr_expense
#: model:web.tip,description:hr_expense.expense_tip_2
msgid "Click on Action to submit multiple expenses to your manager."
msgstr ""
#. module: hr_expense
#: model_terms:ir.actions.act_window,help:hr_expense.hr_expense_product
msgid "Click to create a new expense category."
msgstr ""
#. module: hr_expense
#: selection:hr.expense,payment_mode:0
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_company_id
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Company"
msgstr "కంపెనీ"
#. module: hr_expense
#: model:ir.ui.menu,name:hr_expense.menu_hr_expense_configuration
msgid "Configuration"
msgstr "స్వరూపణం"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Confirmed Expenses"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_create_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_create_uid
msgid "Created by"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_create_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_create_date
msgid "Created on"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_currency_id
msgid "Currency"
msgstr "ద్రవ్యం"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_date
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Date"
msgstr "తేదీ"
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_hr_department
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_department_id
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Department"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_description
msgid "Description"
msgstr "వివరణ"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_display_name
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_display_name
#: model:ir.model.fields,field_description:hr_expense.field_report_hr_expense_report_expense_display_name
msgid "Display Name"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "Documents"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_employee_id
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Employee"
msgstr ""
#. module: hr_expense
#: selection:hr.expense,payment_mode:0
msgid "Employee (to reimburse)"
msgstr ""
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.action_approved_expense
#: model:ir.ui.menu,name:hr_expense.menu_expense_approved
msgid "Employee Expenses"
msgstr ""
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Expense"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_name
msgid "Expense Description"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_journal_id
msgid "Expense Journal"
msgstr ""
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.hr_expense_product
#: model:ir.ui.menu,name:hr_expense.menu_hr_product
msgid "Expense Products"
msgstr ""
#. module: hr_expense
#: model:mail.message.subtype,description:hr_expense.mt_expense_approved
msgid "Expense approved"
msgstr ""
#. module: hr_expense
#: model:mail.message.subtype,description:hr_expense.mt_expense_confirmed
msgid "Expense confirmed, waiting confirmation"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
msgid "Expense refuse reason"
msgstr ""
#. module: hr_expense
#: model:mail.message.subtype,description:hr_expense.mt_expense_refused
msgid "Expense refused"
msgstr ""
#. module: hr_expense
#: model:ir.ui.menu,name:hr_expense.menu_hr_expense_root
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_department_view_kanban
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_my_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_expenses_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
#: model:product.category,name:hr_expense.cat_expense
msgid "Expenses"
msgstr ""
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.action_hr_expense_report_filtered
#: model:ir.actions.act_window,name:hr_expense.hr_expense_action
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_view_graph
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_view_pivot
msgid "Expenses Analysis"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Expenses Month"
msgstr ""
#. module: hr_expense
#: model:mail.message.subtype,name:hr_expense.mt_department_expense_confirmed
msgid "Expenses To Approve"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Expenses by Month"
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:209
#, python-format
msgid "Expenses must belong to the same Employee."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:212
#, python-format
msgid ""
"Expenses must have an expense journal specified to generate accounting "
"entries."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Expenses of Your Team Member"
msgstr ""
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.action_request_approve_expense
#: model:ir.actions.act_window,name:hr_expense.hr_expense_action_from_department
#: model:ir.model.fields,field_description:hr_expense.field_hr_department_expense_to_approve_count
msgid "Expenses to Approve"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Expenses to Invoice"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Former Employees"
msgstr ""
#. module: hr_expense
#: model_terms:ir.actions.act_window,help:hr_expense.action_approved_expense
msgid ""
"From here the accountant will be able to approve as well as refuse the "
"expenses which are verified by the HR Manager."
msgstr ""
#. module: hr_expense
#: model:ir.actions.server,name:hr_expense.hr_expense_entry_action_server
msgid "Generate Accounting Entries"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Group By"
msgstr ""
#. module: hr_expense
#: model:ir.actions.report.xml,name:hr_expense.action_report_hr_expense
msgid "HR Expense"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "HR Expenses"
msgstr ""
#. module: hr_expense
#: model:product.product,name:hr_expense.hotel_rent
#: model:product.template,name:hr_expense.hotel_rent_product_template
msgid "Hotel Accommodation"
msgstr ""
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_hr_expense_refuse_wizard
msgid "Hr Expense refuse Reason wizard"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_id
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_id
#: model:ir.model.fields,field_description:hr_expense.field_report_hr_expense_report_expense_id
msgid "ID"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_account_move_id
msgid "Journal Entry"
msgstr ""
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_account_move_line
msgid "Journal Item"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense___last_update
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard___last_update
#: model:ir.model.fields,field_description:hr_expense.field_report_hr_expense_report_expense___last_update
msgid "Last Modified on"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_write_uid
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_write_uid
msgid "Last Updated by"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_write_date
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_write_date
msgid "Last Updated on"
msgstr ""
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.expense_all
#: model:ir.ui.menu,name:hr_expense.menu_expense_all
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "My Expenses"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "My Team Expenses"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Name"
msgstr "పేరు"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "New"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "New Expense"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "New Mail"
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:276
#, python-format
msgid ""
"No Expense account found for the product %s (or for it's category), please "
"configure one."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:244
#, python-format
msgid "No Home Address found for the employee %s, please configure one."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:240
#, python-format
msgid "No credit account found for the %s journal, please configure one."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "Notes..."
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_attachment_number
msgid "Number of Attachments"
msgstr ""
#. module: hr_expense
#: model_terms:ir.actions.act_window,help:hr_expense.action_request_approve_expense
#: model_terms:ir.actions.act_window,help:hr_expense.expense_all
msgid ""
"Once you have created your expense, submit it to your manager who will "
"validate it."
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
msgid "Paid"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_payment_mode
msgid "Payment By"
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:280
#, python-format
msgid ""
"Please configure Default Expense account for Product expense: "
"`property_account_expense_categ_id`."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "Post Journal Entries"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Price"
msgstr "ధర"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_product_id
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "Product"
msgstr ""
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_product_template
msgid "Product Template"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Qty"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_quantity
msgid "Quantity"
msgstr "పరిమాణం"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard_description
msgid "Reason"
msgstr "సరే"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
msgid "Reason to refuse expense."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
msgid "Refuse"
msgstr ""
#. module: hr_expense
#: model:ir.actions.act_window,name:hr_expense.hr_expense_refuse_wizard_action
msgid "Refuse Expense"
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
#: model:mail.message.subtype,name:hr_expense.mt_expense_refused
msgid "Refused"
msgstr ""
#. module: hr_expense
#: model:ir.ui.menu,name:hr_expense.menu_hr_expense
msgid "Reporting"
msgstr ""
#. module: hr_expense
#: model:web.tip,description:hr_expense.expense_tip_1
msgid "Select the lines you want to submit to be reimbursed."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:77
#, python-format
msgid ""
"Selected Unit of Measure does not belong to the same category as the product "
"Unit of Measure"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "Set to Draft"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,help:hr_expense.field_product_template_can_be_expensed
msgid "Specify whether the product can be selected in an HR expense."
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_state
msgid "Status"
msgstr "స్థితి"
#. module: hr_expense
#: model:ir.actions.server,name:hr_expense.hr_expense_submit_action_server
msgid "Submit Expenses"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_my_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_expenses_tree
msgid "Submit to Manager"
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
msgid "Submitted"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_untaxed_amount
msgid "Subtotal"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Taxe(s)"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_tax_ids
msgid "Taxes"
msgstr "పన్నులు"
#. module: hr_expense
#: model:ir.model.fields,help:hr_expense.field_hr_expense_journal_id
msgid "The journal used when the expense is done."
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,help:hr_expense.field_hr_expense_bank_journal_id
msgid "The payment method used when the expense is paid by the company."
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "This document must be dated and signed for reimbursement."
msgstr ""
#. module: hr_expense
#: model:ir.ui.menu,name:hr_expense.menu_expense_to_approve
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
#: model:mail.message.subtype,name:hr_expense.mt_expense_confirmed
msgid "To Approve"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
msgid "To Pay"
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
msgid "To Submit"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_total_amount
msgid "Total"
msgstr "మొత్తం"
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_my_tree
#: model_terms:ir.ui.view,arch_db:hr_expense.view_expenses_tree
msgid "Total Amount"
msgstr "మొత్తం"
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_unit_amount
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "Unit Price"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_product_uom_id
msgid "Unit of Measure"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense
msgid "UoM"
msgstr ""
#. module: hr_expense
#: model:web.tip,description:hr_expense.expense_tip_3
msgid ""
"Use the messaging tool to log a note and attach a document to the expense. "
"(e.g. scan of the bill)"
msgstr ""
#. module: hr_expense
#: selection:hr.expense,state:0
msgid "Waiting Payment"
msgstr ""
#. module: hr_expense
#: model:ir.model.fields,help:hr_expense.field_hr_expense_state
msgid ""
"When the expense request is created the status is 'To Submit'.\n"
" It is submitted by the employee and request is sent to manager, the status "
"is 'Submitted'. \n"
"If the manager approve it, the status is 'Approved'.\n"
" If the accountant genrate the accounting entries for the expense request, "
"the status is 'Waiting Payment'."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:111
#, python-format
msgid "You can only delete draft or refused expenses!"
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:206
#, python-format
msgid "You can only generate accounting entry for approved expense(s)."
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:117
#, python-format
msgid "You can only submit draft expenses!"
msgstr ""
#. module: hr_expense
#: code:addons/hr_expense/models/hr_expense.py:128
#, python-format
msgid ""
"Your Expense %s has been refused.<br/><ul "
"class=o_timeline_tracking_value_list><li>Reason<span> : </span><span "
"class=o_timeline_tracking_value>%s</span></li></ul>"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_form_view
msgid "e.g. Business lunch with X"
msgstr ""
#. module: hr_expense
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
msgid "or"
msgstr ""
#. module: hr_expense
#: model:ir.model,name:hr_expense.model_report_hr_expense_report_expense
msgid "report.hr_expense.report_expense"
msgstr ""
#~ msgid "Action Needed"
#~ msgstr "Charya Avasaram"
#. module: hr_expense
#. odoo-python
#: code:addons/hr_expense/models/hr_expense.py:0
#, python-format
msgid ""
"The private address of the employee is required to post the expense report. "
"Please add it on the employee form."
msgstr ""
"ఖర్చు నివేదికను పోస్ట్ చేయడానికి ఉద్యోగి యొక్క ప్రైవేట్ చిరునామా అవసరం. దయచేసి దాన్ని ఉద్యోగి ఫారమ్‌లో జోడించండి."

Some files were not shown because too many files have changed in this diff Show more