[MERGE]: Merged with lp:openobject-addons

bzr revid: atp@tinyerp.com-20120628101123-n47qwjvwzl25w0z1
This commit is contained in:
Atul Patel (OpenERP) 2012-06-28 15:41:23 +05:30
commit 858195963b
664 changed files with 12082 additions and 11375 deletions

View File

@ -24,11 +24,12 @@ from datetime import datetime
from dateutil.relativedelta import relativedelta
from operator import itemgetter
import netsvc
import logging
import pooler
from osv import fields, osv
import decimal_precision as dp
from tools.translate import _
_logger = logging.getLogger(__name__)
def check_cycle(self, cr, uid, ids, context=None):
""" climbs the ``self._table.parent_id`` chains for 100 levels or
@ -212,7 +213,6 @@ class account_account(osv.osv):
_name = "account.account"
_description = "Account"
_parent_store = True
logger = netsvc.Logger()
def search(self, cr, uid, args, offset=0, limit=None, order=None,
context=None, count=False):
@ -295,8 +295,7 @@ class account_account(osv.osv):
if aml_query.strip():
wheres.append(aml_query.strip())
filters = " AND ".join(wheres)
self.logger.notifyChannel('addons.'+self._name, netsvc.LOG_DEBUG,
'Filters: %s'%filters)
_logger.debug('Filters: %s',(filters))
# IN might not work ideally in case there are too many
# children_and_consolidated, in that case join on a
# values() e.g.:
@ -312,8 +311,7 @@ class account_account(osv.osv):
" GROUP BY l.account_id")
params = (tuple(children_and_consolidated),) + query_params
cr.execute(request, params)
self.logger.notifyChannel('addons.'+self._name, netsvc.LOG_DEBUG,
'Status: %s'%cr.statusmessage)
_logger.debug('Status: %s',(cr.statusmessage))
for res in cr.dictfetchall():
accounts[res['id']] = res
@ -2095,9 +2093,7 @@ class account_tax(osv.osv):
}
def compute(self, cr, uid, taxes, price_unit, quantity, 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")
_logger.warning("Deprecated, use compute_all(...)['taxes'] instead of compute(...) to manage prices with tax included")
return self._compute(cr, uid, taxes, price_unit, quantity, product, partner)
def _compute(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None):

View File

@ -39,7 +39,7 @@
<field name="quantity"/>
<field name="uos_id" groups="product.group_uom"/>
<field name="price_unit"/>
<field name="discount"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
<field name="price_subtotal"/>
</tree>
</field>
@ -61,8 +61,8 @@
on_change="uos_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id, parent.fiscal_position, price_unit, parent.currency_id, context, parent.company_id)"/>
</div>
<field name="price_unit"/>
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id" on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)"/>
<field name="discount"/>
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id" on_change="onchange_account_id(product_id, parent.partner_id, parent.type, parent.fiscal_position,account_id)" groups="account.group_account_user"/>
<field name="discount" groups="sale.group_discount_per_so_line"/>
<field name="invoice_line_tax_id" context="{'type':parent.type}" domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]" widget="many2many_tags"/>
<field domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id), ('parent_id', '!=', False)]" name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
@ -98,7 +98,7 @@
<group col="4">
<field name="name"/>
<field name="sequence"/>
<field name="account_id"/>
<field name="account_id" groups="account.group_account_user"/>
<field name="manual"/>
<field name="amount"/>
<field name="base" readonly="0"/>
@ -148,7 +148,8 @@
<field name="arch" type="xml">
<form version="7.0">
<header>
<button name="invoice_open" states="draft,proforma2" string="Validate"/>
<button name="invoice_open" states="draft" string="Validate" class="oe_highlight"/>
<button name="invoice_open" states="proforma2" string="Validate"/>
<button name="%(action_account_invoice_refund)d" type='action' string='Ask Refund' states='open,paid'/>
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="base.group_no_one"/>
<button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/>
@ -190,7 +191,7 @@
<field context="{'partner_id': partner_id, 'price_type': 'price_type' in dir() and price_type or False, 'type': type}" name="invoice_line">
<tree string="Invoice lines">
<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.currency_id, context, parent.company_id)"/>
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id" on_change="onchange_account_id(product_id,parent.partner_id,parent.type,parent.fiscal_position,account_id)"/>
<field domain="[('company_id', '=', parent.company_id), ('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id" on_change="onchange_account_id(product_id,parent.partner_id,parent.type,parent.fiscal_position,account_id)" groups="base.group_account_user"/>
<field name="invoice_line_tax_id" view_mode="2" context="{'type':parent.type}" domain="[('parent_id','=',False)]"/>
<field domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id), ('parent_id', '!=', False)]" name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
<field name="quantity"/>
@ -274,9 +275,10 @@
<field name="arch" type="xml">
<form version="7.0">
<header>
<button name="action_invoice_sent" type="object" string="Send by Email" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}"/>
<button name="invoice_print" string="Print Invoice" type="object" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}"/>
<button name="invoice_open" states="draft,proforma2" string="Validate"/>
<button name="action_invoice_sent" type="object" string="Send by Email" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}" class="oe_highlight"/>
<button name="invoice_print" string="Print Invoice" type="object" states="open" attrs="{'invisible':['|',('sent','=',True), ('state', '=', 'draft')]}" class="oe_highlight"/>
<button name="invoice_open" states="draft" string="Validate" class="oe_highlight"/>
<button name="invoice_open" states="proforma2" string="Validate"/>
<button name="invoice_proforma2" states="draft" string="PRO-FORMA" groups="account.group_proforma_invoices"/>
<button name="%(action_account_invoice_refund)d" type='action' string='Refund Invoice' states='paid'/>
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="base.group_no_one"/>
@ -339,7 +341,7 @@
<field name="tax_line" nolabel="1">
<tree editable="bottom" string="Taxes">
<field name="name"/>
<field name="account_id" groups="account.group_account_invoice"/>
<field name="account_id" groups="account.group_account_user"/>
<field name="base" on_change="base_change(base,parent.currency_id,parent.company_id,parent.date_invoice)" readonly="1"/>
<field name="amount" on_change="amount_change(amount,parent.currency_id,parent.company_id,parent.date_invoice)"/>
<field invisible="True" name="base_amount"/>
@ -357,7 +359,7 @@
<field name="amount_tax"/>
<field name="amount_total" class="oe_subtotal_footer_separator"/>
<field name="residual" style="margin-top: 10px"/>
<field name="residual" style="margin-top: 10px" groups="account.group_account_user"/>
<field name="reconciled" invisible="1"/>
</group>
</group>
@ -482,7 +484,12 @@
<field name="domain">[('type','=','out_invoice')]</field>
<field name="context">{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="help">With Customer Invoices you can create and manage sales invoices issued to your customers. OpenERP can also generate draft invoices automatically from sales orders or deliveries. You should only confirm them before sending them to your customers.</field>
<field name="help">
Click here to create a new Invoice.
&lt;p&gt;
An invoice can be generated automatically from a sale order or a delivery order.
The invoice can be send by email.
</field>
</record>
@ -510,7 +517,12 @@
<field name="domain">[('type','=','in_invoice')]</field>
<field name="context">{'default_type': 'in_invoice', 'type': 'in_invoice', 'journal_type': 'purchase'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="help">With Supplier Invoices you can enter and manage invoices issued by your suppliers. OpenERP can also generate draft invoices automatically from purchase orders or receipts. This way, you can control the invoice from your supplier according to what you purchased or received.</field>
<field name="help">
Click here to create Supplier invoice.
&lt;p&gt;
You can control the invoice from your supplier according to what you purchased or received.
OpenERP can also generate draft invoices automatically from purchase orders or receipts.
</field>
</record>
<menuitem action="action_invoice_tree2" id="menu_action_invoice_tree2" parent="menu_finance_payables"/>
@ -523,7 +535,12 @@
<field name="domain">[('type','=','out_refund')]</field>
<field name="context">{'default_type':'out_refund', 'type':'out_refund', 'journal_type': 'sale_refund'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="help">With Customer Refunds you can manage the credit notes for your customers. A refund is a document that credits an invoice completely or partially. You can easily generate refunds and reconcile them directly from the invoice form.</field>
<field name="help">
Click here to create a new customer refund.
&lt;p&gt;
A refund is a document that credits an invoice completely or partially.
You can also generate refunds and reconcile them directly from the invoice form.
</field>
</record>
<record id="action_invoice_tree3_view1" model="ir.actions.act_window.view">
@ -549,7 +566,12 @@
<field name="domain">[('type','=','in_refund')]</field>
<field name="context">{'default_type': 'in_refund', 'type': 'in_refund', 'journal_type': 'purchase_refund'}</field>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="help">With Supplier Refunds you can manage the credit notes you receive from your suppliers. A refund is a document that credits an invoice completely or partially. You can easily generate refunds and reconcile them directly from the invoice form.</field>
<field name="help">
Click here to create a new supplier refund.
&lt;p&gt;
Track refunds you receive from your suppliers.
You can also generate refunds and reconcile them directly from the invoice form.
</field>
</record>
<menuitem action="action_invoice_tree4" id="menu_action_invoice_tree4" parent="menu_finance_payables"/>

View File

@ -555,19 +555,6 @@
<field eval="1" name="number_increment"/>
</record>
<!--
Sequence for analytic account
-->
<record id="seq_type_analytic_account" model="ir.sequence.type">
<field name="name">Analytic account</field>
<field name="code">account.analytic.account</field>
</record>
<record id="seq_analytic_account" model="ir.sequence">
<field name="name">Analytic account sequence</field>
<field name="code">account.analytic.account</field>
<field eval="3" name="padding"/>
<field eval="2708" name="number_next"/>
</record>
<!--
Invoice requests (deprecated)

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-06-20 16:08+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"PO-Revision-Date: 2012-06-25 09:07+0000\n"
"Last-Translator: Ferdinand @ Camptocamp <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: 2012-06-22 04:37+0000\n"
"X-Generator: Launchpad (build 15461)\n"
"X-Launchpad-Export-Date: 2012-06-26 05:22+0000\n"
"X-Generator: Launchpad (build 15482)\n"
#. module: account
#: view:account.invoice.report:0
@ -5437,7 +5437,7 @@ msgstr "Standardauswertung Finanzen"
#: field:account.bank.statement.line,name:0
#: field:account.invoice,reference:0
msgid "Communication"
msgstr "Buchungstext"
msgstr "Kommunikation"
#. module: account
#: model:ir.ui.menu,name:account.menu_analytic_accounting

View File

@ -30,11 +30,11 @@ from tools.translate import _
from osv import fields, osv
import netsvc
import tools
_logger = logging.getLogger(__name__)
class account_installer(osv.osv_memory):
_name = 'account.installer'
_inherit = 'res.config.installer'
__logger = logging.getLogger(_name)
def _get_charts(self, cr, uid, context=None):
modules = self.pool.get('ir.module.module')
@ -149,7 +149,7 @@ class account_installer(osv.osv_memory):
cr, uid, ids, context=context)
chart = self.read(cr, uid, ids, ['charts'],
context=context)[0]['charts']
self.__logger.debug('Installing chart of accounts %s', chart)
_logger.debug('Installing chart of accounts %s', chart)
return modules | set([chart])
account_installer()

View File

@ -3,102 +3,85 @@
<data noupdate="1">
<record id="analytic_root" model="account.analytic.account">
<field name="name" model="res.company" use="name" search="[]"/>
<field name="code">0</field>
</record>
<record id="analytic_absences" model="account.analytic.account">
<field name="name">Leaves</field>
<field name="code">1</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_root"/>
</record>
<record id="analytic_internal" model="account.analytic.account">
<field name="name">Internal</field>
<field name="code">2</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_root"/>
</record>
<record id="analytic_our_super_product" model="account.analytic.account">
<field name="name">Our Super Product</field>
<field name="code">100</field>
<field name="state">open</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_root"/>
</record>
<record id="analytic_project_1" model="account.analytic.account">
<field name="name">Project 1</field>
<field name="code">101</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_root"/>
</record>
<record id="analytic_project_2" model="account.analytic.account">
<field name="name">Project 2</field>
<field name="code">102</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_root"/>
</record>
<record id="analytic_journal_trainings" model="account.analytic.account">
<field name="name">Training</field>
<field name="code">4</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_internal"/>
</record>
<record id="analytic_in_house" model="account.analytic.account">
<field name="name">In House</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_journal_trainings"/>
</record>
<record id="analytic_online" model="account.analytic.account">
<field name="name">Online</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_journal_trainings"/>
</record>
<record id="analytic_support" model="account.analytic.account">
<field name="name">Support</field>
<field name="code">support</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_our_super_product"/>
</record>
<record id="analytic_partners" model="account.analytic.account">
<field name="name">Partners</field>
<field name="code">partners</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_support"/>
</record>
<record id="analytic_customers" model="account.analytic.account">
<field name="name">Customers</field>
<field name="code">customers</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_support"/>
</record>
<record id="analytic_support_internal" model="account.analytic.account">
<field name="name">Internal</field>
<field name="code">3</field>
<field name="type">normal</field>
<field name="type">contract</field>
<field name="parent_id" ref="analytic_support"/>
</record>
<record id="analytic_integration" model="account.analytic.account">
<field name="name">Integration</field>
<field name="code">integration</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_our_super_product"/>
</record>
<record id="analytic_consultancy" model="account.analytic.account">
<field name="name">Consultancy</field>
<field name="code">4</field>
<field name="type">normal</field>
<field name="type">contract</field>
<field name="parent_id" ref="analytic_our_super_product"/>
</record>
<record id="analytic_super_product_trainings" model="account.analytic.account">
<field name="name">Training</field>
<field name="code">5</field>
<field name="type">normal</field>
<field name="type">contract</field>
<field name="parent_id" ref="analytic_our_super_product"/>
</record>
<record id="analytic_seagate_p1" model="account.analytic.account">
<field name="name">Seagate P1</field>
<field name="code">1</field>
<field name="parent_id" ref="analytic_integration"/>
<field name="type">normal</field>
<field name="state">open</field>
@ -106,7 +89,6 @@
</record>
<record id="analytic_seagate_p2" model="account.analytic.account">
<field name="name">Seagate P2</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_integration"/>
<field name="state">open</field>
@ -114,14 +96,12 @@
</record>
<record id="analytic_magasin_bml_1" model="account.analytic.account">
<field name="name">Magasin BML 1</field>
<field name="code">3</field>
<field name="parent_id" ref="analytic_integration"/>
<field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_15"/>
</record>
<record id="analytic_integration_c2c" model="account.analytic.account">
<field name="name">CampToCamp</field>
<field name="code">7</field>
<field name="type">normal</field>
<field eval="str(time.localtime()[0] - 1) + '-08-07'" name="date_start"/>
<field eval="time.strftime('%Y-12-31')" name="date"/>
@ -131,28 +111,24 @@
</record>
<record id="analytic_agrolait" model="account.analytic.account">
<field name="name">Agrolait</field>
<field name="code">3</field>
<field name="parent_id" ref="analytic_customers"/>
<field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_agrolait"/>
</record>
<record id="analytic_asustek" model="account.analytic.account">
<field name="name">Asustek</field>
<field name="code">4</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_customers"/>
<field name="partner_id" ref="base.res_partner_asus"/>
</record>
<record id="analytic_distripc" model="account.analytic.account">
<field name="name">DistriPC</field>
<field name="code">7</field>
<field name="parent_id" ref="analytic_customers"/>
<field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_4"/>
</record>
<record id="analytic_sednacom" model="account.analytic.account">
<field name="name">Sednacom</field>
<field name="code">2</field>
<field eval="str(time.localtime()[0] - 1) + '-05-09'" name="date_start"/>
<field eval="time.strftime('%Y-05-08')" name="date"/>
<field name="parent_id" ref="analytic_partners"/>
@ -162,7 +138,6 @@
</record>
<record id="analytic_thymbra" model="account.analytic.account">
<field name="name">Thymbra</field>
<field name="code">3</field>
<field eval="time.strftime('%Y-02-01')" name="date_start"/>
<field eval="time.strftime('%Y-07-01')" name="date"/>
<field name="type">normal</field>
@ -172,7 +147,6 @@
</record>
<record id="analytic_leclerc" model="account.analytic.account">
<field name="name">Leclerc</field>
<field name="code">10</field>
<field eval="time.strftime('%Y-04-24')" name="date_start"/>
<field eval="str(time.localtime()[0] + 1) + '-04-24'" name="date"/>
<field name="type">normal</field>
@ -181,7 +155,6 @@
</record>
<record id="analytic_desertic_hispafuentes" model="account.analytic.account">
<field name="name">Desertic - Hispafuentes</field>
<field name="code">12</field>
<field eval="time.strftime('%Y-02-01')" name="date_start"/>
<field eval="str(time.localtime()[0] + 1) + '-02-01'" name="date"/>
<field name="type">normal</field>
@ -190,14 +163,12 @@
</record>
<record id="analytic_tiny_at_work" model="account.analytic.account">
<field name="name">OpenERP SA AT Work</field>
<field name="code">15</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_tinyatwork"/>
</record>
<record id="analytic_partners_camp_to_camp" model="account.analytic.account">
<field name="name">Camp to Camp</field>
<field name="code">21</field>
<field eval="time.strftime('%Y-%m-%d', time.localtime(time.time() - 365 * 86400))" name="date_start"/>
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
<field name="type">normal</field>
@ -207,67 +178,56 @@
</record>
<record id="analytic_project_2_support" model="account.analytic.account">
<field name="name">Support</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_project_2"/>
</record>
<record id="analytic_project_2_development" model="account.analytic.account">
<field name="name">Development</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_project_2"/>
</record>
<record id="analytic_project_1_trainings" model="account.analytic.account">
<field name="name">Training</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_project_1"/>
</record>
<record id="analytic_project_1_development" model="account.analytic.account">
<field name="name">Development</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_project_1"/>
</record>
<record id="analytic_administratif" model="account.analytic.account">
<field name="name">Administrative</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_internal"/>
</record>
<record id="analytic_commercial_marketing" model="account.analytic.account">
<field name="name">Commercial &amp; Marketing</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_internal"/>
</record>
<record id="analytic_our_super_product_development" model="account.analytic.account">
<field name="name">Our Super Product Development</field>
<field name="code">3</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_internal"/>
</record>
<record id="analytic_stable" model="account.analytic.account">
<field name="name">Stable</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_our_super_product_development"/>
</record>
<record id="analytic_trunk" model="account.analytic.account">
<field name="name">Trunk</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_our_super_product_development"/>
</record>
<record id="analytic_paid" model="account.analytic.account">
<field name="name">Paid</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_absences"/>
</record>
<record id="analytic_unpaid" model="account.analytic.account">
<field name="name">Unpaid</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_absences"/>
</record>

View File

@ -19,6 +19,7 @@
<field name="partner_id" invisible="1"/>
<field name="state" invisible="1"/>
<field name="type" invisible="1"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
@ -59,7 +60,7 @@
<field name="field_parent">child_complete_ids</field>
<field name="arch" type="xml">
<tree colors="blue:state=='pending';grey:state in ('close','cancelled');blue:type=='view'" string="Analytic account" toolbar="1">
<field name="name"/>
<field name="complete_name"/>
<field name="code"/>
<field name="debit"/>
<field name="credit"/>
@ -71,50 +72,11 @@
<field name="partner_id" invisible="1"/>
<field name="parent_id" invisible="1"/>
<field name="type"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
<record id="view_account_analytic_account_form" model="ir.ui.view">
<field name="name">account.analytic.account.form</field>
<field name="model">account.analytic.account</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Analytic Account" version="7.0">
<sheet>
<group>
<group>
<field name="name" colspan="4"/>
<field name="parent_id" on_change="on_change_parent(parent_id)"/>
<field name="company_id" on_change="on_change_company(company_id)" widget="selection" groups="base.group_multi_company" attrs="{'required': [('type','&lt;&gt;','view')]}"/>
</group>
<group>
<field name="type"/>
<field name="code"/>
</group>
</group>
<notebook>
<page string="Account Data">
<group>
<group string="Contacts">
<field name="partner_id"/>
<field name="user_id"/>
</group>
<group name="contract" string="Contract Data">
<field name="date_start"/>
<field name="date"/>
<field name="quantity_max"/>
</group>
</group>
</page>
<page string="Description">
<field name="description"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="action_account_analytic_account_form" model="ir.actions.act_window">
<field name="name">Analytic Accounts</field>
@ -210,6 +172,7 @@
<field domain="[('type','=','normal')]" name="account_id"/>
<field name="general_account_id" invisible="context.get('to_invoice', False)"/>
<field name="user_id" invisible="1" />
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>

View File

@ -75,10 +75,10 @@ class account_analytic_cost_ledger(report_sxw.rml_parse):
return res
def _account_sum_debit(self, account, date1, date2):
return self._sum_debit(self, [account], date1, date2)
return self._sum_debit([account], date1, date2)
def _account_sum_credit(self, account, date1, date2):
return self._sum_credit(self, [account], date1, date2)
return self._sum_credit([account], date1, date2)
def _account_sum_balance(self, account, date1, date2):
debit = self._account_sum_debit(account, date1, date2)

View File

@ -497,7 +497,7 @@
<para style="terp_default_8">[[ strip_name(line['partner_name'],10) ]]</para>
</td>
<td>
<para style="terp_default_8">[[ strip_name(line['lref'],9) ]]</para>
<para style="terp_default_8">[[ line['lref'] and strip_name(line['lref'],9) ]]</para>
</td>
<td>
<para style="terp_default_8">[[ strip_name(line['move'],9) ]]</para>
@ -590,7 +590,7 @@
<para style="terp_default_8">[[ strip_name(line['partner_name'],20) ]]</para>
</td>
<td>
<para style="terp_default_8">[[ strip_name(line['lref'],9) ]]</para>
<para style="terp_default_8">[[ line['lref'] and strip_name(line['lref'],9) ]]</para>
</td>
<td>
<para style="terp_default_8">[[ strip_name(line['move'],9) ]]</para>

View File

@ -505,7 +505,7 @@
<para style="terp_default_Bold_7_Right">[[ formatLang(sum_credit_account(o), digits=get_digits(dp='Account')) ]]</para>
</td>
<td>
<para style="terp_default_Bold_7_Right">[[ formatLang(sum_balance_account(o), digits=get_digits(dp='Account'), currency = company.currency_id) ]]</para>
<para style="terp_default_Bold_7_Right">[[ formatLang(sum_balance_account(o), digits=get_digits(dp='Account'), currency_obj= company.currency_id) ]]</para>
</td>
<td>
<para style="terp_default_Bold_7_Right">[[ o.currency_id and formatLang(sum_currency_amount_account(o), digits=get_digits(dp='Account'),currency_obj=o.currency_id) or '' ]]</para>
@ -529,7 +529,7 @@
<para style="terp_default_7">[[ strip_name(line['partner_name'],20) ]]</para>
</td>
<td>
<para style="terp_default_7">[[ strip_name(line['lref'],17) ]]</para>
<para style="terp_default_7">[[ line['lref'] and strip_name(line['lref'],17) ]]</para>
</td>
<td>
<para style="terp_default_7">[[ line['move'] ]]</para>

View File

@ -519,7 +519,7 @@
<para style="terp_default_8">[[ line['a_code'] ]]</para>
</td>
<td>
<para style="terp_default_8">[[ strip_name(line['ref'],10) ]] - [[ strip_name(line['name'],15) ]]</para>
<para style="terp_default_8">[[ line['ref'] and strip_name(line['ref'],10) ]] - [[ strip_name(line['name'],15) ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ formatLang((line['debit'])) ]]</para>

View File

@ -524,7 +524,7 @@
<para style="terp_default_8">[[ line['a_code'] ]]</para>
</td>
<td>
<para style="terp_default_8">[[ strip_name(line['ref'],10) ]] - [[ strip_name(line['name'],15) ]]</para>
<para style="terp_default_8">[[ line['ref'] and strip_name(line['ref'],10) ]] - [[ strip_name(line['name'],15) ]]</para>
</td>
<td>
<para style="terp_default_Right_8">[[ formatLang((line['debit'])) ]]</para>

View File

@ -162,7 +162,7 @@
</td>
<td>
<para style="terp_default_8">[[ (o.partner_id and o.partner_id.title and o.partner_id.title.name) or '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]</para>
<para style="terp_default_8">[[ display_address(o.partner_id,'invoice') ]]</para>
<para style="terp_default_8">[[ display_address(o.partner_id) ]]</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>

View File

@ -37,14 +37,14 @@ class account_config_settings(osv.osv_memory):
'company_id': fields.many2one('res.company', 'Company', required=True),
'has_default_company': fields.boolean('Has default company', readonly=True),
'expects_chart_of_accounts': fields.related('company_id', 'expects_chart_of_accounts', type='boolean',
string='Chart of Accounts for this Company',
string='This Company Has its Own Chart of Accounts',
help="""Check this box if this company is a legal entity."""),
'currency_id': fields.related('company_id', 'currency_id', type='many2one', relation='res.currency', required=True,
string='Default Company Currency', help="Main currency of the company."),
'paypal_account': fields.related('company_id', 'paypal_account', type='char', size=128,
string='Paypal Account', help="Paypal account (email) for receiving online payments (credit card, etc.)"),
string='Paypal Account', help="Paypal account (email) for receiving online payments (credit card, etc.) If you set a paypal account, the customer will be able to pay your invoices or quotations with a button \"Pay with Paypal\" in automated emails or through the OpenERP portal."),
'company_footer': fields.related('company_id', 'rml_footer2', type='char', size=250, readonly=True,
string='Bank Accounts on Reports', help="Bank accounts as printed on footer of reports."),
string='Bank Accounts on Reports', help="Bank accounts as printed in the footer of each customer document. This is for information purpose only, you should configure these bank accounts through the above button \"Configure Bank Accounts\"."),
'has_chart_of_accounts': fields.boolean('Company has a chart of accounts'),
'chart_template_id': fields.many2one('account.chart.template', 'Chart Template', domain="[('visible','=', True)]"),
@ -77,12 +77,12 @@ class account_config_settings(osv.osv_memory):
help="""This allows you to check writing and printing.
This installs the module account_check_writing."""),
'module_account_accountant': fields.boolean('Accountant Features',
help="""If you do not check this box, you will be able to do Invoicing & Payments, but not accounting (Journal Items, Chart of Accounts, ...)."""),
help="""If you do not check this box, you will be able to do invoicing & payments, but not accounting (Journal Items, Chart of Accounts, ...)"""),
'module_account_asset': fields.boolean('Assets Management',
help="""This allows you to manage the assets owned by a company or a person.
It keeps track of the depreciation occurred on those assets, and creates account move for those depreciation lines.
This installs the module account_asset. If you do not check this box, you will be able to do invoicing & payments,
but not accounting (Journal Items, Chart of Accounts, ...) """),
This installs the module account_asset. If you do not check this box, you will be able to do invoicing & payments,
but not accounting (Journal Items, Chart of Accounts, ...)"""),
'module_account_budget': fields.boolean('Budget Management',
help="""This allows accountants to manage analytic and crossovered budgets.
Once the master budgets and the budgets are defined,
@ -96,7 +96,7 @@ class account_config_settings(osv.osv_memory):
'module_account_voucher': fields.boolean('Manage Customer Payments',
help="""This includes all the basic requirements of voucher entries for bank, cash, sales, purchase, expense, contra, etc.
This installs the module account_voucher."""),
'module_account_followup': fields.boolean('Manage Customer Payment Follow-Ups',
'module_account_followup': fields.boolean('Manage Customer Payment Follow-ups',
help="""This allows to automate letters for unpaid invoices, with multi-level recalls.
This installs the module account_followup."""),
'module_account_invoice_layout': fields.boolean('Allow Notes and Subtotals',
@ -110,10 +110,12 @@ class account_config_settings(osv.osv_memory):
'group_proforma_invoices': fields.boolean('Allow Pro-forma Invoices',
implied_group='account.group_proforma_invoices',
help="Allows you to put invoices in pro-forma state."),
'default_sale_tax': fields.many2one('account.tax', 'Default Sale Tax'),
'default_purchase_tax': fields.many2one('account.tax', 'Default Purchase Tax'),
'decimal_precision': fields.integer('Decimal Precision',
help="""Set the decimal precision for rounding results in accounting."""),
'default_sale_tax': fields.many2one('account.tax', 'Default Sale Tax',
help="This sale tax will be assigned by default on new products."),
'default_purchase_tax': fields.many2one('account.tax', 'Default Purchase Tax',
help="This purchase tax will be assigned by default on new products."),
'decimal_precision': fields.integer('Decimal Precision on Journal Entries',
help="""As an example, a decimal precision of 2 will allow journal entries like: 9.99 EUR, whereas a decimal precision of 4 will allow journal entries like: 0.0231 EUR."""),
}
def _default_company(self, cr, uid, context=None):

View File

@ -17,52 +17,66 @@
<field name="arch" type="xml">
<form string="Configure Accounting" version="7.0">
<header>
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
<button string="Apply" type="object" name="execute" class="oe_highlight_on_dirty"/>
<button string="Cancel" type="object" name="cancel"/>
</header>
<group col="4">
<field name="has_default_company" invisible="1" />
<field name="has_chart_of_accounts" invisible="1"/>
<field name="company_id" widget="selection" on_change="onchange_company_id(company_id)"
<sheet>
<field name="has_default_company" invisible="1" />
<field name="has_chart_of_accounts" invisible="1"/>
<field name="complete_tax_set" invisible="1"/>
<field name="has_fiscal_year" invisible="1"/>
<group groups="base.group_multi_company">
<field name="company_id" string="Select Company" widget="selection"
on_change="onchange_company_id(company_id)"
attrs="{'invisible': [('has_default_company', '=', True)]}"/>
<field name="expects_chart_of_accounts"/>
</group>
<group string="Select a Chart of Accounts to Install" col="4" attrs="{'invisible': ['|', ('expects_chart_of_accounts','=',False), ('has_chart_of_accounts','=',True)]}">
<field name="chart_template_id" widget="selection" on_change="onchange_chart_template_id(chart_template_id)" domain="[('visible','=', True)]"/>
<div class="oe_form_button_save_dirty">
<group string="Select a Chart of Accounts to Install"
attrs="{'invisible': ['|', ('expects_chart_of_accounts','=',False), ('has_chart_of_accounts','=',True)]}">
<group>
<field name="chart_template_id" widget="selection" domain="[('visible','=', True)]"
on_change="onchange_chart_template_id(chart_template_id)"/>
<field name="code_digits" groups="account.group_account_user"/>
<field name="sale_tax" attrs="{'invisible': ['|', ('chart_template_id','=',False), ('complete_tax_set','=',False)]}"
domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('sale','all'))]"/>
<field name="purchase_tax" attrs="{'invisible': ['|', ('chart_template_id','=',False), ('complete_tax_set','=',False)]}"
domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('purchase', 'all'))]"/>
<field name="sale_tax_rate" attrs="{'invisible': ['|', ('chart_template_id','=',False), ('complete_tax_set','=',True)]}" on_change="onchange_tax_rate(sale_tax_rate)"/>
<field name="purchase_tax_rate" attrs="{'invisible': ['|', ('chart_template_id','=',False), ('complete_tax_set','=',True)]}"/>
</group>
<button string="Install More Chart Templates" icon="gtk-go-forward"
name="%(open_account_charts_modules)d" type="action"/>
<newline/>
<field name="code_digits" groups="account.group_account_user"/>
<newline/>
<field name="complete_tax_set" invisible="1"/>
<field name="sale_tax" attrs="{'invisible': ['|', ('chart_template_id','=',False), ('complete_tax_set','=',False)]}"
domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('sale','all'))]"/>
<field name="purchase_tax" attrs="{'invisible': ['|', ('chart_template_id','=',False), ('complete_tax_set','=',False)]}"
domain="[('chart_template_id', '=', chart_template_id),('parent_id','=',False),('type_tax_use','in',('purchase', 'all'))]"/>
<field name="sale_tax_rate" attrs="{'invisible': ['|', ('chart_template_id','=',False), ('complete_tax_set','=',True)]}" on_change="onchange_tax_rate(sale_tax_rate)"/>
<field name="purchase_tax_rate" attrs="{'invisible': ['|', ('chart_template_id','=',False), ('complete_tax_set','=',True)]}"/>
</group>
</div>
<field name="has_fiscal_year" invisible="1"/>
<group string="No Fiscal Year Defined for this Company" col="4" attrs="{'invisible': ['|', ('expects_chart_of_accounts','=',False), ('has_fiscal_year','=',True)]}">
<field name="date_start" on_change="onchange_start_date(date_start)"/>
<field name="date_stop"/>
<field name="period" colspan="4"/>
<div class="oe_form_button_save_dirty">
<group string="No Fiscal Year Defined for This Company"
attrs="{'invisible': ['|', ('expects_chart_of_accounts','=',False), ('has_fiscal_year','=',True)]}">
<label for="date_start" string="Date Range"/>
<div>
<field name="date_start" on_change="onchange_start_date(date_start)" class="oe_inline"/> -
<field name="date_stop" class="oe_inline"/>
</div>
<field name="period"/>
</group>
</div>
<field name="complete_tax_set" invisible="1"/>
<group string="Accounting Configuration">
<group>
<field name="default_sale_tax" domain="[('type_tax_use','=','sale'), ('company_id','=',company_id)]" attrs="{'invisible': [('has_chart_of_accounts','=',False)]}"/>
<field name="default_sale_tax" domain="[('type_tax_use','=','sale'), ('company_id','=',company_id)]"
attrs="{'invisible': [('has_chart_of_accounts','=',False)]}"/>
<field name="module_account_accountant"/>
<field name="module_account_asset"/>
<field name="currency_id"/>
<field name="decimal_precision"/>
</group>
<group>
<field name="default_purchase_tax" domain="[('type_tax_use','=','purchase'), ('company_id','=',company_id)]" attrs="{'invisible': [('has_chart_of_accounts','=',False)]}"/>
<field name="currency_id"/>
<field name="default_purchase_tax" domain="[('type_tax_use','=','purchase'), ('company_id','=',company_id)]"
attrs="{'invisible': [('has_chart_of_accounts','=',False)]}"/>
<field name="module_account_asset"/>
<field name="module_account_budget"/>
<field name="decimal_precision"/>
</group>
</group>
@ -72,47 +86,55 @@
<field name="purchase_refund_journal_id" invisible="1"/>
<group>
<group string="Customer Invoices">
<label string="Invoice Sequence" for="sale_sequence_prefix"/>
<div>
<field name="sale_sequence_prefix" class="oe_inline"/>
<field name="sale_sequence_next" class="oe_inline" attrs="{'readonly': [('sale_journal_id','=',False)]}"/>
</div>
<label string="Credit Note Sequence" for="sale_refund_sequence_prefix"/>
<div>
<field name="sale_refund_sequence_prefix" class="oe_inline"/>
<field name="sale_refund_sequence_next" class="oe_inline" attrs="{'readonly': [('sale_refund_journal_id','=',False)]}"/>
</div>
<label for="sale_sequence_next"/>
<group>
<field name="sale_sequence_prefix" class="oe_inline" nolabel="1"
help='If you put "%%(year)s" in the prefix, it will be replaced by the current year.'/>
<field name="sale_sequence_next" class="oe_inline" nolabel="1" attrs="{'readonly': [('sale_journal_id','=',False)]}"/>
</group>
<label for="sale_refund_sequence_next"/>
<group>
<field name="sale_refund_sequence_prefix" class="oe_inline" nolabel="1"
help='If you put "%%(year)s" in the prefix, it will be replaced by the current year.'/>
<field name="sale_refund_sequence_next" class="oe_inline" nolabel="1" attrs="{'readonly': [('sale_refund_journal_id','=',False)]}"/>
</group>
<field name="module_account_invoice_layout"/>
<field name="module_account_voucher"/>
<field name="module_account_followup"/>
<field name="group_proforma_invoices"/>
</group>
<group string="Supplier Invoices">
<label string="Supplier Invoice Sequence" for="purchase_sequence_prefix"/>
<div>
<field name="purchase_sequence_prefix" class="oe_inline"/>
<field name="purchase_sequence_next" class="oe_inline" attrs="{'readonly': [('purchase_journal_id','=',False)]}"/>
</div>
<label string="Supplier Credit Note Sequence" for="purchase_refund_sequence_prefix"/>
<div>
<field name="purchase_refund_sequence_prefix" class="oe_inline"/>
<field name="purchase_refund_sequence_next" class="oe_inline"
<label for="purchase_sequence_next"/>
<group>
<field name="purchase_sequence_prefix" class="oe_inline" nolabel="1"
help='If you put "%%(year)s" in the prefix, it will be replaced by the current year.'/>
<field name="purchase_sequence_next" class="oe_inline" nolabel="1" attrs="{'readonly': [('purchase_journal_id','=',False)]}"/>
</group>
<label for="purchase_refund_sequence_next"/>
<group>
<field name="purchase_refund_sequence_prefix" class="oe_inline" nolabel="1"
help='If you put "%%(year)s" in the prefix, it will be replaced by the current year.'/>
<field name="purchase_refund_sequence_next" class="oe_inline" nolabel="1"
attrs="{'readonly': [('purchase_refund_journal_id','=',False)]}"/>
</div>
</group>
<field name="module_account_payment"/>
</group>
<group string="Electronic Payments">
<field name="paypal_account"/>
<field name="paypal_account" placeholder="sales@openerp.com"/>
</group>
<group string="Bank &amp; Cash">
<label string="Configure Bank Accounts :"/>
<label for="id" string="Configure Bank Accounts"/>
<button name="%(action_bank_tree)d" string="Configure Bank Accounts" icon="gtk-go-forward" type="action"/>
<field name="company_footer"/>
<field name="module_account_check_writing"/>
</group>
<group name="analytic_accounting" invisible="1" string="Analytic Accounting"/>
</group>
</sheet>
</form>
</field>
</record>

View File

@ -20,6 +20,7 @@
##############################################################################
from osv import fields, osv
from tools.translate import _
class account_fiscalyear_close_state(osv.osv_memory):
"""
@ -53,10 +54,6 @@ class account_fiscalyear_close_state(osv.osv_memory):
cr.execute('UPDATE account_fiscalyear ' \
'SET state = %s WHERE id = %s', ('done', fy_id))
# Log message for Fiscalyear
fy_pool = self.pool.get('account.fiscalyear')
fy_code = fy_pool.browse(cr, uid, fy_id, context=context).code
fy_pool.log(cr, uid, fy_id, "Fiscal year '%s' is closed, no more modification allowed." % (fy_code))
return {'type': 'ir.actions.act_window_close'}
account_fiscalyear_close_state()

View File

@ -53,11 +53,8 @@ class account_period_close(osv.osv_memory):
cr.execute('update account_journal_period set state=%s where period_id=%s', (mode, id))
cr.execute('update account_period set state=%s where id=%s', (mode, id))
# Log message for Period
for period_id, name in period_pool.name_get(cr, uid, [id]):
period_pool.log(cr, uid, period_id, "Period '%s' is closed, no more modification allowed for this period." % (name))
return {'type': 'ir.actions.act_window_close'}
account_period_close()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -98,7 +98,7 @@ class account_analytic_account(osv.osv):
WHERE account_analytic_account.id IN %s \
AND account_analytic_line.invoice_id IS NULL \
AND account_analytic_line.to_invoice IS NOT NULL \
AND account_analytic_journal.type IN ('purchase','general') \
AND account_analytic_journal.type = 'general' \
GROUP BY account_analytic_account.id;""", (parent_ids,))
for account_id, sum in cr.fetchall():
if account_id not in res:
@ -257,6 +257,12 @@ class account_analytic_account(osv.osv):
res[id] = round(res.get(id, 0.0),2)
return res
def _remaining_hours_to_invoice_calc(self, cr, uid, ids, name, arg, context=None):
res = {}
for account in self.browse(cr, uid, ids, context=context):
res[account.id] = max(account.hours_qtt_est - account.timesheet_ca_invoiced, account.ca_to_invoice)
return res
def _hours_qtt_invoiced_calc(self, cr, uid, ids, name, arg, context=None):
res = {}
for account in self.browse(cr, uid, ids, context=context):
@ -291,15 +297,34 @@ class account_analytic_account(osv.osv):
res[id] = round(res.get(id, 0.0),2)
return res
def _fix_price_to_invoice_calc(self, cr, uid, ids, name, arg, context=None):
sale_obj = self.pool.get('sale.order')
res = {}
for account in self.browse(cr, uid, ids, context=context):
res[account.id] = 0.0
sale_ids = sale_obj.search(cr, uid, [('project_id','=', account.id), ('partner_id', '=', account.partner_id.id)], context=context)
for sale in sale_obj.browse(cr, uid, sale_ids, context=context):
if not sale.invoiced:
res[account.id] += sale.amount_untaxed
for invoice in sale.invoice_ids:
if invoice.state not in ('draft', 'cancel'):
res[account.id] -= invoice.amount_untaxed
return res
def _timesheet_ca_invoiced_calc(self, cr, uid, ids, name, arg, context=None):
lines_obj = self.pool.get('account.analytic.line')
res = {}
for account in self.browse(cr, uid, ids, context=context):
res[account.id] = 0.0
line_ids = lines_obj.search(cr, uid, [('account_id','=', account.id), ('invoice_id','!=',False), ('to_invoice','!=', False), ('journal_id.type', '=', 'general')], context=context)
for line in lines_obj.browse(cr, uid, line_ids, context=context):
res[account.id] += line.invoice_id.amount_untaxed
return res
def _remaining_ca_calc(self, cr, uid, ids, name, arg, context=None):
res = {}
for account in self.browse(cr, uid, ids, context=context):
if account.amount_max != 0:
res[account.id] = account.amount_max - account.ca_invoiced
else:
res[account.id]=0.0
for id in ids:
res[id] = round(res.get(id, 0.0),2)
res[account.id] = max(account.amount_max - account.ca_invoiced, account.fix_price_to_invoice)
return res
def _real_margin_calc(self, cr, uid, ids, name, arg, context=None):
@ -333,6 +358,47 @@ class account_analytic_account(osv.osv):
result.add(line.account_id.id)
return list(result)
def _get_total_estimation(self, account):
tot_est = 0.0
if account.fix_price_invoices:
tot_est += account.amount_max
if account.invoice_on_timesheets:
tot_est += account.hours_qtt_est
return tot_est
def _get_total_invoiced(self, account):
total_invoiced = 0.0
if account.fix_price_invoices:
total_invoiced += account.ca_invoiced
if account.invoice_on_timesheets:
total_invoiced += account.timesheet_ca_invoiced
return total_invoiced
def _get_total_remaining(self, account):
total_remaining = 0.0
if account.fix_price_invoices:
total_remaining += account.remaining_ca
if account.invoice_on_timesheets:
total_remaining += account.remaining_hours_to_invoice
return total_remaining
def _get_total_toinvoice(self, account):
total_toinvoice = 0.0
if account.fix_price_invoices:
total_toinvoice += account.fix_price_to_invoice
if account.invoice_on_timesheets:
total_toinvoice += account.ca_to_invoice
return total_toinvoice
def _sum_of_fields(self, cr, uid, ids, name, arg, context=None):
res = dict([(i, {}) for i in ids])
for account in self.browse(cr, uid, ids, context=context):
res[account.id]['est_total'] = self._get_total_estimation(account)
res[account.id]['invoiced_total'] = self._get_total_invoiced(account)
res[account.id]['remaining_total'] = self._get_total_remaining(account)
res[account.id]['toinvoice_total'] = self._get_total_toinvoice(account)
return res
_columns = {
'is_overdue_quantity' : fields.function(_is_overdue_quantity, method=True, type='boolean', string='Overdue Quantity',
store={
@ -350,7 +416,7 @@ class account_analytic_account(osv.osv):
'ca_theorical': fields.function(_analysis_all, multi='analytic_analysis', type='float', string='Theoretical Revenue',
help="Based on the costs you had on the project, what would have been the revenue if all these costs have been invoiced at the normal sale price provided by the pricelist.",
digits_compute=dp.get_precision('Account')),
'hours_quantity': fields.function(_analysis_all, multi='analytic_analysis', type='float', string='Total Time',
'hours_quantity': fields.function(_analysis_all, multi='analytic_analysis', type='float', string='Total Worked Time',
help="Number of time you spent on the analytic account (from timesheet). It computes quantities on all journal of type 'general'."),
'last_invoice_date': fields.function(_analysis_all, multi='analytic_analysis', type='date', string='Last Invoice Date',
help="If invoice from the costs, this is the date of the latest invoiced."),
@ -363,7 +429,13 @@ class account_analytic_account(osv.osv):
'hours_qtt_invoiced': fields.function(_hours_qtt_invoiced_calc, type='float', string='Invoiced Time',
help="Number of time (hours/days) that can be invoiced plus those that already have been invoiced."),
'remaining_hours': fields.function(_remaining_hours_calc, type='float', string='Remaining Time',
help="Computed using the formula: Maximum Time - Total Time"),
help="Computed using the formula: Maximum Time - Total Worked Time"),
'remaining_hours_to_invoice': fields.function(_remaining_hours_to_invoice_calc, type='float', string='Remaining Time',
help="Computed using the formula: Maximum Time - Total Invoiced Time"),
'fix_price_to_invoice': fields.function(_fix_price_to_invoice_calc, type='float', string='Remaining Time',
help="Sum of quotations for this contract."),
'timesheet_ca_invoiced': fields.function(_timesheet_ca_invoiced_calc, type='float', string='Remaining Time',
help="Sum of timesheet lines invoiced for this contract."),
'remaining_ca': fields.function(_remaining_ca_calc, type='float', string='Remaining Revenue',
help="Computed using the formula: Max Invoice Price - Invoiced Amount.",
digits_compute=dp.get_precision('Account')),
@ -379,10 +451,51 @@ class account_analytic_account(osv.osv):
'real_margin_rate': fields.function(_real_margin_rate_calc, type='float', string='Real Margin Rate (%)',
help="Computes using the formula: (Real Margin / Total Costs) * 100.",
digits_compute=dp.get_precision('Account')),
'fix_price_invoices' : fields.boolean('Fix Price Invoices'),
'invoice_on_timesheets' : fields.boolean("Invoice On Timesheets"),
'month_ids': fields.function(_analysis_all, multi='analytic_analysis', type='many2many', relation='account_analytic_analysis.summary.month', string='Month'),
'user_ids': fields.function(_analysis_all, multi='analytic_analysis', type="many2many", relation='account_analytic_analysis.summary.user', string='User'),
'template_id': fields.many2one('account.analytic.account', 'Template of Contract'),
'hours_qtt_est': fields.float('Estimation of Hours to Invoice'),
'est_total' : fields.function(_sum_of_fields, type="float",multi="sum_of_all", string="Total Estimation"),
'invoiced_total' : fields.function(_sum_of_fields, type="float",multi="sum_of_all", string="Total Invoiced"),
'remaining_total' : fields.function(_sum_of_fields, type="float",multi="sum_of_all", string="Total Remaining", help="Expectation of remaining income for this contract. Computed as the sum of remaining subtotals which, in turn, are computed as the maximum between '(Estimation - Invoiced)' and 'To Invoice' amounts"),
'toinvoice_total' : fields.function(_sum_of_fields, type="float",multi="sum_of_all", string="Total to Invoice", help=" Sum of everything that could be invoiced for this contract."),
}
def open_sale_order_lines(self,cr,uid,ids,context=None):
if context is None:
context = {}
sale_ids = self.pool.get('sale.order').search(cr,uid,[('project_id','=',context.get('search_default_project_id',False)),('partner_id','=',context.get('search_default_partner_id',False))])
names = [record.name for record in self.browse(cr, uid, ids, context=context)]
name = _('Sale Order Lines of %s') % ','.join(names)
return {
'type': 'ir.actions.act_window',
'name': name,
'view_type': 'form',
'view_mode': 'tree,form',
'context': context,
'domain' : [('order_id','in',sale_ids)],
'res_model': 'sale.order.line',
'nodestroy': True,
}
def on_change_template(self, cr, uid, ids, template_id, context=None):
if not template_id:
return {}
res = {'value':{}}
template = self.browse(cr, uid, template_id, context=context)
res['value']['date_start'] = template.date_start
res['value']['date'] = template.date
res['value']['fix_price_invoices'] = template.fix_price_invoices
res['value']['invoice_on_timesheets'] = template.invoice_on_timesheets
res['value']['quantity_max'] = template.quantity_max
res['value']['hours_qtt_est'] = template.hours_qtt_est
res['value']['amount_max'] = template.amount_max
res['value']['to_invoice'] = template.to_invoice.id
res['value']['pricelist_id'] = template.pricelist_id.id
res['value']['description'] = template.description
return res
account_analytic_account()
class account_analytic_account_summary_user(osv.osv):

View File

@ -58,8 +58,8 @@
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
<field name="context">{'search_default_has_partner':1, 'search_default_user_id':uid, 'search_default_draft':1, 'search_default_pending':1, 'search_default_open':1, 'search_default_renew':1}</field>
<field name="domain">[('type','=','normal')]</field>
<field name="context">{'search_default_user_id':uid, 'search_default_draft':1, 'search_default_pending':1, 'search_default_open':1, 'search_default_renew':1}</field>
<field name="domain">[('type','=','contract')]</field>
<field name="search_view_id" ref="view_account_analytic_account_overdue_search"/>
<field name="help">You will find here the contracts to be renewed because the deadline is passed or the working hours are higher than the allocated hours. OpenERP automatically sets these analytic accounts to the pending state, in order to raise a warning during the timesheets recording. Salesmen should review all pending accounts and reopen or close the according to the negotiation with the customer.</field>
</record>
@ -70,8 +70,8 @@
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
<field name="context">{'search_default_has_partner':1, 'search_default_user_id':uid, 'search_default_draft':1, 'search_default_pending':1, 'search_default_open':1}</field>
<field name="domain">[('type','=','normal')]</field>
<field name="context">{'default_type':'contract'}</field>
<field name="domain">[('type','=','contract')]</field>
<field name="search_view_id" ref="view_account_analytic_account_overdue_search"/>
</record>
<menuitem id="base.menu_sales" name="Sales"

View File

@ -4,97 +4,99 @@
<!--
Analytic Account form
Remove information on Account data => because they move on analysis sheet
create a page with invoicing informations
-->
<record id="account_analytic_account_invoice_stat_form" model="ir.ui.view">
<field name="name">account.analytic.account.invoice.stat.form.inherit</field>
<field name="model">account.analytic.account</field>
<field name="type">form</field>
<field name="inherit_id" ref="hr_timesheet_invoice.account_analytic_account_form_form"/>
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<group name="invoice_stats" position="inside">
<field name="hours_qtt_non_invoiced" attrs="{'invisible': [('to_invoice','=',0)]}"/>
<field name="ca_to_invoice" attrs="{'invisible': [('to_invoice','=',0)]}"/>
<label string="" colspan="1"/>
<button
name="%(hr_timesheet_invoice.action_hr_timesheet_invoice_create_final)d"
string="Create Invoice"
type="action"
attrs="{'readonly':[('ca_to_invoice','=',0.0)], 'invisible': [('to_invoice','=',0)]}"
icon="gtk-go-forward"/>
</group>
</field>
</record>
<act_window
id="action_sales_order"
name="Sales Orders"
res_model="sale.order"
src_model="account.analytic.account"
/>
<record id="account_analytic_account_form_form" model="ir.ui.view">
<field name="name">account.analytic.account.invoice.form.inherit</field>
<field name="model">account.analytic.account</field>
<field name="type">form</field>
<field name="inherit_id" ref="account.view_account_analytic_account_form"/>
<field eval="18" name="priority"/>
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
<field eval="40" name="priority"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Invoice Analysis">
<separator colspan="4" string="Work Done Stats"/>
<field name="total_cost"/>
<field name="remaining_ca"/>
<field name="ca_invoiced"/>
<field name="ca_theorical"/>
<newline/>
<field name="hours_quantity"/>
<field name="hours_qtt_invoiced"/>
<field name="remaining_hours"/>
<newline/>
<separator colspan="4" string="Analysis Stats"/>
<field name="revenue_per_hour"/>
<field name="real_margin"/>
<field name="real_margin_rate"/>
<field name="theorical_margin"/>
<separator colspan="4" string="Key Dates"/>
<field name="last_invoice_date"/>
<field name="last_worked_invoiced_date"/>
<field name="last_worked_date"/>
</page>
<page string="Stats by month">
<field colspan="4" name="month_ids" nolabel="1">
<tree string="Month">
<field name="month"/>
<field name="unit_amount" widget="float_time"/>
</tree>
</field>
</page>
<page string="Stats by user">
<field colspan="4" name="user_ids" nolabel="1">
<tree string="Users">
<field name="user"/>
<field name="unit_amount" widget="float_time"/>
</tree>
</field>
</page>
</notebook>
</field>
</record>
<!-- Add information on Account analytic list for the project management -->
<record id="view_account_analytic_account_tree_c2c_2" model="ir.ui.view">
<field name="name">account.analytic.account.tree</field>
<field name="model">account.analytic.account</field>
<field name="inherit_id" ref="account.view_account_analytic_account_list"/>
<field name="type">tree</field>
<field name="arch" type="xml">
<field name="quantity" position="replace">
<field name="hours_quantity"/>
<field name="hours_qtt_non_invoiced"/>
<field name="remaining_hours"/>
<field name="quantity_max"/>
</field>
<xpath expr='//field[@name="type"]' position='after'>
<field name="template_id" on_change="on_change_template(template_id,context)" domain="[('type','=','template')]" attrs="{'invisible': [('type','in',['view', 'normal','template'])]}" context="{'default_type' : 'template'}"/>
</xpath>
<xpath expr='//div[@name="duration"]' position="after" version="7.0">
<label for="quantity_max"/>
<div>
<field name="quantity_max" class="oe_inline"/> / Remaining: <field name="remaining_hours" class="oe_inline"/>
</div>
</xpath>
<xpath expr='//group[@name="invoice_on_timesheets"]' position="replace">
<group name='invoice_on_timesheets' string="Invoice on Timesheets Options" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}" col="4">
<field name="pricelist_id" attrs="{'required': [('invoice_on_timesheets', '=', True)]}"/>
<field name="to_invoice" widget="selection" attrs="{'required': [('invoice_on_timesheets', '=', True)]}"/>
</group>
</xpath>
<xpath expr='//group[@name="master"]' position='after'>
<separator name="toinvoice" string="Invoicing"/>
<table width="100%%">
<tr>
<th></th>
<th></th>
<th><label string="Est.Tot"/></th>
<th><label string="Invoiced"/></th>
<th><label string="Remaining"/></th>
<th><label string="To Invoice"/></th>
<th></th>
</tr><tr>
<td>
<label for="fix_price_invoices"/>
</td><td>
<field name="fix_price_invoices" class="oe_inline"/>
</td><td>
<field class="oe_inline" name="amount_max" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
</td><td>
<field class="oe_inline" name="ca_invoiced" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
</td><td>
<field class="oe_inline" name="remaining_ca" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
</td><td>
<field class="oe_inline" name="fix_price_to_invoice" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
</td><td>
<button name="%(action_sales_order)d" string="All Sales" type="action" context="{'default_partner_id': [partner_id], 'search_default_partner_id': [partner_id],'search_default_project_id': [active_id],'default_project_id': [active_id]}" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
<button name="open_sale_order_lines" string="Lines To Invoice" type="object" context="{'default_partner_id': [partner_id],'default_project_id': active_id,'search_default_uninvoiced': 1,'search_default_project_id': active_id,'search_default_partner_id': [partner_id]}" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
</td>
</tr><tr attrs="{'invisible':[('use_timesheets','=',False)]}">
<td>
<label for="invoice_on_timesheets"/>
</td><td>
<field name="invoice_on_timesheets"/>
</td><td>
<field class="oe_inline" name="hours_qtt_est" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
</td><td>
<field class="oe_inline" name="timesheet_ca_invoiced" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
</td><td>
<field class="oe_inline" name="remaining_hours_to_invoice" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
</td><td>
<field class="oe_inline" name="ca_to_invoice" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
</td><td>
<button name="%(hr_timesheet.act_hr_timesheet_line_evry1_all_form)d" string="All Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}" context="{'default_account_id': active_id,'search_default_account_id': active_id}"/>
<button name="%(hr_timesheet_invoice.act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice)d" string="Timesheets to Invoice" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
</td>
</tr><tr name='total'>
<th>
<label string="Total"/>
</th><td>
</td><td>
<field name="est_total" class="oe_inline" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
</td><td>
<field name="invoiced_total" class="oe_inline"/>
</td><td>
<field name="remaining_total" class="oe_inline"/>
</td><td>
<field name="toinvoice_total" class="oe_inline"/>
</td><td>
</td>
</tr>
</table>
</xpath>
</field>
</record>
@ -106,10 +108,20 @@
<field name="arch" type="xml">
<field name="date" position="before">
<field name="last_invoice_date"/>
<field name="ca_to_invoice"/>
<field name="toinvoice_total"/>
</field>
</field>
</record>
<record id="template_of_contract_action" model="ir.actions.act_window">
<field name="name">Template of Contract</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('type','=','template')]</field>
<field name="context">{'search_default_type':'template','default_type' : 'template'}</field>
</record>
<menuitem action="template_of_contract_action" id="menu_template_of_contract_action" parent="base.menu_base_config"/>
</data>
</openerp>

View File

@ -109,7 +109,6 @@ class crossovered_analytic(report_sxw.rml_parse):
res['ref_qty'] = info[0]['qty']
res['ref_amt'] = info[0]['amt']
self.base_amount = info[0]['amt']
result.append(res)
return result

View File

@ -237,10 +237,10 @@
<para style="terp_default_Centre_9">[[ a['ref_code'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(a['ref_qty']) ]]</para>
<para style="terp_default_Right_9">[[ a['ref_qty'] and formatLang(a['ref_qty']) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ formatLang(a['ref_amt'], currency_obj=company.currency_id) ]]</para>
<para style="terp_default_Right_9">[[ a['ref_amt'] and formatLang(a['ref_amt'], currency_obj=company.currency_id) ]]</para>
</td>
<td>
<para style="terp_default_Right_9">100.00%</para>

View File

@ -23,7 +23,6 @@
import time
from osv import osv, fields
import decimal_precision as dp
import netsvc
from tools.translate import _
class account_bank_statement(osv.osv):

View File

@ -23,13 +23,13 @@
import time
from report import report_sxw
import pooler
import netsvc
logger=netsvc.Logger()
import logging
_logger = logging.getLogger(__name__)
class bank_statement_balance_report(report_sxw.rml_parse):
def set_context(self, objects, data, ids, report_type=None):
#logger.notifyChannel('addons.'+__name__, netsvc.LOG_WARNING, 'set_context, objects = %s, data = %s, ids = %s' % (objects, data, ids))
#_logger.warning('addons.'+__name__, 'set_context, objects = %s, data = %s, ids = %s' % (objects, data, ids))
cr = self.cr
uid = self.uid
context = self.context

View File

@ -274,7 +274,7 @@
<field name="name">account.analytic.account.form.inherot.budget</field>
<field name="type">form</field>
<field name="model">account.analytic.account</field>
<field name="inherit_id" ref="account.view_account_analytic_account_form"/>
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Budget Lines">

View File

@ -20,7 +20,7 @@
<field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml">
<xpath expr="//button[@name='invoice_cancel']" position="replace">
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" icon="gtk-cancel" groups="account.group_account_invoice"/>
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="account.group_account_invoice"/>
</xpath>
</field>
</record>
@ -32,7 +32,7 @@
<field name="inherit_id" ref="account.invoice_supplier_form"/>
<field name="arch" type="xml">
<xpath expr="//button[@name='invoice_cancel']" position="replace">
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" icon="gtk-cancel" groups="account.group_account_invoice"/>
<button name="invoice_cancel" states="draft,proforma2,sale,open" string="Cancel" groups="account.group_account_invoice"/>
</xpath>
</field>
</record>

View File

@ -22,9 +22,7 @@
from osv import osv, fields
import decimal_precision as dp
import netsvc
from tools.translate import _
logger=netsvc.Logger()
class coda_bank_account(osv.osv):
_name= 'coda.bank.account'

View File

@ -24,11 +24,11 @@ import time
import base64
from osv import fields,osv
from tools.translate import _
import netsvc
import logging
import re
from traceback import format_exception
from sys import exc_info
logger=netsvc.Logger()
_logger = logging.getLogger(__name__)
class account_coda_import(osv.osv_memory):
_name = 'account.coda.import'
@ -816,7 +816,7 @@ class account_coda_import(osv.osv_memory):
ttype = line['type'] == 'supplier' and 'payment' or 'receipt',
date = line['val_date'],
context = context)
#logger.notifyChannel('addons.'+self._name, netsvc.LOG_WARNING, 'voucher_dict = %s' % voucher_dict)
#_logger.warning('voucher_dict = %s' % voucher_dict)
voucher_line_vals = False
if voucher_dict['value']['line_ids']:
for line_dict in voucher_dict['value']['line_ids']:
@ -889,22 +889,19 @@ class account_coda_import(osv.osv_memory):
nb_err += 1
err_string += _('\nError ! ') + str(e)
tb = ''.join(format_exception(*exc_info()))
logger.notifyChannel('addons.'+self._name, netsvc.LOG_ERROR,
'Application Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
_logger.error('Application Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
except Exception, e:
cr.rollback()
nb_err += 1
err_string += _('\nSystem Error : ') + str(e)
tb = ''.join(format_exception(*exc_info()))
logger.notifyChannel('addons.'+self._name, netsvc.LOG_ERROR,
'System Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
_logger.error('System Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
except :
cr.rollback()
nb_err += 1
err_string = _('\nUnknown Error : ') + str(e)
tb = ''.join(format_exception(*exc_info()))
logger.notifyChannel('addons.'+self._name, netsvc.LOG_ERROR,
'Unknown Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
_logger.error('Unknown Error while processing Statement %s\n%s' % (statement.get('name', '/'),tb))
# end 'for statement in coda_statements'

View File

@ -20,7 +20,7 @@
##############################################################################
{
'name': 'Followup Management',
'name': 'Follow-up Management',
'version': '1.0',
'category': 'Accounting & Finance',
'description': """
@ -28,16 +28,16 @@ Module to automate letters for unpaid invoices, with multi-level recalls.
==========================================================================
You can define your multiple levels of recall through the menu:
Accounting/Configuration/Miscellaneous/Follow-Ups
Accounting/Configuration/Miscellaneous/Follow-ups
Once it is defined, you can automatically print recalls every day through simply clicking on the menu:
Accounting/Periodical Processing/Billing/Send followups
Accounting/Periodical Processing/Billing/Send follow-ups
It will generate a PDF with all the letters according to the the
different levels of recall defined. You can define different policies
for different companies. You can also send mail to the customer.
Note that if you want to check the followup level for a given partner/account entry, you can do from in the menu:
Note that if you want to check the follow-up level for a given partner/account entry, you can do from in the menu:
Accounting/Reporting/Generic Reporting/Partners/Follow-ups Sent
""",

View File

@ -23,11 +23,11 @@ from osv import fields, osv
class followup(osv.osv):
_name = 'account_followup.followup'
_description = 'Account Follow Up'
_description = 'Account Follow-up'
_columns = {
'name': fields.char('Name', size=64, required=True),
'description': fields.text('Description'),
'followup_line': fields.one2many('account_followup.followup.line', 'followup_id', 'Follow-Up'),
'followup_line': fields.one2many('account_followup.followup.line', 'followup_id', 'Follow-up'),
'company_id': fields.many2one('res.company', 'Company', required=True),
}
_defaults = {
@ -38,7 +38,7 @@ followup()
class followup_line(osv.osv):
_name = 'account_followup.followup.line'
_description = 'Follow-Up Criteria'
_description = 'Follow-up Criteria'
_columns = {
'name': fields.char('Name', size=64, required=True),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of follow-up lines."),

View File

@ -3,7 +3,7 @@
<data noupdate="1">
<record id="demo_followup1" model="account_followup.followup">
<field name="name">Default Follow-Up</field>
<field name="name">Default Follow-up</field>
<field name="company_id" ref="base.main_company"/>
<field name="description">First letter after 15 net days, 30 net days and 45 days end of month levels.</field>
</record>

View File

@ -6,7 +6,7 @@
<field name="model">account_followup.followup.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Follow-Up Steps">
<tree string="Follow-up Steps">
<field name="name"/>
<field name="delay"/>
<field name="start"/>
@ -19,7 +19,7 @@
<field name="model">account_followup.followup.line</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Follow-Up Steps" version="7.0">
<form string="Follow-up Steps" version="7.0">
<group col="4">
<field name="name"/>
<field name="delay"/>
@ -43,7 +43,7 @@
<field name="model">account_followup.followup</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Follow-Up" version="7.0">
<form string="Follow-up" version="7.0">
<group col="4">
<field name="name"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
@ -58,7 +58,7 @@
<field name="model">account_followup.followup</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Follow-Up">
<tree string="Follow-up">
<field name="name"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
@ -70,9 +70,9 @@
<field name="model">account_followup.followup</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Followup">
<search string="Search Follow-up">
<group>
<field name="name" string="Followup"/>
<field name="name" string="Follow-up"/>
<separator orientation="vertical"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
@ -81,16 +81,16 @@
</record>
<record id="action_account_followup_definition_form" model="ir.actions.act_window">
<field name="name">Follow-Ups</field>
<field name="name">Follow-ups</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account_followup.followup</field>
<field name="search_view_id" ref="view_account_followup_filter"/>
<field name="view_type">form</field>
<field name="help">Define follow up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages.</field>
<field name="help">Define follow-up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages.</field>
</record>
<menuitem action="action_account_followup_definition_form" id="account_followup_menu" parent="account.menu_configuration_misc"/>
<report auto="False" id="account_followup_followup_report" menu="False" model="account_followup.followup" name="account_followup.followup.print" rml="account_followup/report/account_followup_print.rml" string="Followup Report"/>
<report auto="False" id="account_followup_followup_report" menu="False" model="account_followup.followup" name="account_followup.followup.print" rml="account_followup/report/account_followup_print.rml" string="Follow-up Report"/>
<record id="account_move_line_partner_tree" model="ir.ui.view">
<field name="name">account.move.line.partner.tree</field>

View File

@ -17,7 +17,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.followup:0
msgid "Search Followup"
msgid "Search Follow-up"
msgstr ""
#. module: account_followup
@ -34,12 +34,12 @@ msgstr ""
#. module: account_followup
#: view:account_followup.followup:0
#: field:account_followup.followup,followup_line:0
msgid "Follow-Up"
msgid "Follow-up"
msgstr ""
#. module: account_followup
#: help:account.followup.print.all,test_print:0
msgid "Check if you want to print followups without changing followups level."
msgid "Check if you want to print follow-ups without changing follow-ups level."
msgstr ""
#. module: account_followup
@ -80,7 +80,7 @@ msgstr ""
#. module: account_followup
#: model:ir.actions.act_window,help:account_followup.action_followup_stat
msgid "Follow up on the reminders sent over to your partners for unpaid invoices."
msgid "Follow-up on the reminders sent over to your partners for unpaid invoices."
msgstr ""
#. module: account_followup
@ -91,7 +91,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Follow up Entries with period in current year"
msgid "Follow-up Entries with period in current year"
msgstr ""
#. module: account_followup
@ -117,7 +117,7 @@ msgstr ""
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.action_account_followup_definition_form
#: model:ir.ui.menu,name:account_followup.account_followup_menu
msgid "Follow-Ups"
msgid "Follow-ups"
msgstr ""
#. module: account_followup
@ -175,7 +175,7 @@ msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_followup
msgid "Account Follow Up"
msgid "Account Follow-up"
msgstr ""
#. module: account_followup
@ -227,7 +227,7 @@ msgstr ""
#. module: account_followup
#: field:account_followup.stat,date_followup:0
#: field:account_followup.stat.by.partner,date_followup:0
msgid "Latest followup"
msgid "Latest follow-up"
msgstr ""
#. module: account_followup
@ -269,7 +269,7 @@ msgstr ""
#: model:ir.actions.act_window,name:account_followup.action_account_followup_print
#: model:ir.actions.act_window,name:account_followup.action_account_followup_print_all
#: model:ir.ui.menu,name:account_followup.account_followup_print_menu
msgid "Send followups"
msgid "Send follow-ups"
msgstr ""
#. module: account_followup
@ -280,13 +280,13 @@ msgstr ""
#. module: account_followup
#: field:account_followup.followup.line,followup_id:0
#: field:account_followup.stat,followup_id:0
msgid "Follow Ups"
msgid "Follow-ups"
msgstr ""
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:296
#, python-format
msgid "All E-mails have been successfully sent to Partners:.\n"
msgid "All Emails have been successfully sent to Partners:.\n"
"\n"
"%s"
msgstr ""
@ -308,7 +308,7 @@ msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_stat_by_partner
msgid "Followup Statistics by Partner"
msgid "Follow-up Statistics by Partner"
msgstr ""
#. module: account_followup
@ -326,7 +326,7 @@ msgstr ""
#, python-format
msgid "\n"
"\n"
"E-Mail sent to following Partners successfully. !\n"
"Email sent to following Partners successfully. !\n"
"\n"
"%s"
msgstr ""
@ -354,7 +354,7 @@ msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "Print Follow Ups"
msgid "Print Follow-ups"
msgstr ""
#. module: account_followup
@ -364,7 +364,7 @@ msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_stat
msgid "Followup Statistics"
msgid "Follow-up Statistics"
msgstr ""
#. module: account_followup
@ -430,7 +430,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Follow-Up lines"
msgid "Follow-up lines"
msgstr ""
#. module: account_followup
@ -453,7 +453,7 @@ msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_print
#: model:ir.model,name:account_followup.model_account_followup_print_all
msgid "Print Followup & Send Mail to Customers"
msgid "Print Follow-up & Send Mail to Customers"
msgstr ""
#. module: account_followup
@ -464,12 +464,12 @@ msgstr ""
#. module: account_followup
#: model:ir.actions.report.xml,name:account_followup.account_followup_followup_report
msgid "Followup Report"
msgid "Follow-up Report"
msgstr ""
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "Follow-Up Steps"
msgid "Follow-up Steps"
msgstr ""
#. module: account_followup
@ -480,7 +480,7 @@ msgstr ""
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:307
#, python-format
msgid "Followup Summary"
msgid "Follow-up Summary"
msgstr ""
#. module: account_followup
@ -496,12 +496,12 @@ msgstr ""
#. module: account_followup
#: field:account_followup.stat.by.partner,max_followup_id:0
msgid "Max Follow Up Level"
msgid "Max Follow-up Level"
msgstr ""
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.action_view_account_followup_followup_form
msgid "Review Invoicing Follow-Ups"
msgid "Review Invoicing Follow-ups"
msgstr ""
#. module: account_followup
@ -511,7 +511,7 @@ msgstr ""
#. module: account_followup
#: model:ir.actions.act_window,help:account_followup.action_account_followup_definition_form
msgid "Define follow up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages."
msgid "Define follow-up levels and their related messages and delay. For each step, specify the message and the day of delay. Use the legend to know the using code to adapt the email content to the good context (good name, good date) and you can manage the multi language of messages."
msgstr ""
#. module: account_followup
@ -522,7 +522,7 @@ msgstr ""
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:298
#, python-format
msgid "E-Mail not sent to following Partners, E-mail not available !\n"
msgid "Email not sent to following Partners, Email not available !\n"
"\n"
"%s"
msgstr ""
@ -545,7 +545,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Followup Level"
msgid "Follow-up Level"
msgstr ""
#. module: account_followup
@ -556,7 +556,7 @@ msgstr ""
#. module: account_followup
#: constraint:account_followup.followup:0
msgid "Only One Followup by Company."
msgid "Only One Follow-up by Company."
msgstr ""
#. module: account_followup
@ -682,11 +682,11 @@ msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Latest Followup Date"
msgid "Latest Follow-up Date"
msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_followup_line
msgid "Follow-Up Criteria"
msgid "Follow-up Criteria"
msgstr ""

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<document filename="Account Followup.pdf">
<template title="Account Followup" author="OpenERP S.A. (sales@openerp.com)" allowSplitting="20">
<document filename="Account Follow-up.pdf">
<template title="Account Follow-up" author="OpenERP S.A. (sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="31.0" y1="28.0" width="532" height="786"/>
</pageTemplate>

View File

@ -24,7 +24,7 @@ import tools
class account_followup_stat(osv.osv):
_name = "account_followup.stat"
_description = "Followup Statistics"
_description = "Follow-up Statistics"
_rec_name = 'partner_id'
_auto = False
_columns = {

View File

@ -7,7 +7,7 @@
<field name="model">account_followup.stat</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Follow-Up lines">
<tree string="Follow-up lines">
<field name="partner_id"/>
<field name="date_move"/>
<field name="date_move_last"/>
@ -28,7 +28,7 @@
<field name="model">account_followup.stat</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Follow-Up lines" type="bar">
<graph string="Follow-up lines" type="bar">
<field name="partner_id"/>
<field name="balance" operator="+"/>
</graph>
@ -47,7 +47,7 @@
<filter icon="terp-go-year" string="This Fiscal year"
name="fiscalyear"
domain="[('period_id','in','current_year')]"
help="Follow up Entries with period in current year"/>
help="Follow-up Entries with period in current year"/>
<separator orientation="vertical"/>
<filter icon="terp-camera_test" string="Not Litigation"
domain="[('blocked','=', False)]"
@ -62,8 +62,8 @@
<separator orientation="vertical"/>
<filter string="Litigation" icon="terp-camera_test" context="{'group_by':'blocked'}" />
<separator orientation="vertical"/>
<filter string="Followup Level" icon="terp-stock_effects-object-colorize" name="followup_level" context="{'group_by':'followup_id'}" />
<filter string="Latest Followup Date" icon="terp-go-month" context="{'group_by':'date_followup'}" />
<filter string="Follow-up Level" icon="terp-stock_effects-object-colorize" name="followup_level" context="{'group_by':'followup_id'}" />
<filter string="Latest Follow-up Date" icon="terp-go-month" context="{'group_by':'date_followup'}" />
<separator orientation="vertical" groups="base.group_multi_company"/>
<filter string="Company" groups="base.group_multi_company" icon="terp-go-home" context="{'group_by':'company_id'}" />
</group>
@ -77,7 +77,7 @@
<field name="view_mode">tree,graph</field>
<field name="context">{'search_default_followup_level':1}</field>
<field name="search_view_id" ref="view_account_followup_stat_search"/>
<field name="help">Follow up on the reminders sent over to your partners for unpaid invoices.</field>
<field name="help">Follow-up on the reminders sent over to your partners for unpaid invoices.</field>
</record>
<menuitem action="action_followup_stat" id="menu_action_followup_stat_follow" parent="account.next_id_22" groups="account.group_account_user"/>

View File

@ -3,14 +3,14 @@
<data>
<record id="account_followup_comp_rule" model="ir.rule">
<field name="name">Account Followup multi company rule</field>
<field name="name">Account Follow-up multi company rule</field>
<field model="ir.model" name="model_id" ref="model_account_followup_followup"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="account_followup_stat_by_partner_comp_rule" model="ir.rule">
<field name="name">Account Followup Statistics by Partner Rule</field>
<field name="name">Account Follow-up Statistics by Partner Rule</field>
<field ref="model_account_followup_stat_by_partner" name="model_id"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>

View File

@ -1,23 +1,23 @@
-
In order to test account followup module in OpenERP, I change the state of invoice to "open".
In order to test account follow-up module in OpenERP, I change the state of invoice to "open".
-
!record {model: account.invoice, id: account.demo_invoice_0}:
check_total: 14.0
-
!workflow {model: account.invoice, action: invoice_open, ref: account.demo_invoice_0}
-
I create a followup.
I create a follow-up.
-
!record {model: account.followup.print, id: account_followup_print_0}:
{}
-
I select the followup to send it to the partner.
I select the follow-up to send it to the partner.
-
!python {model: account.followup.print}: |
self.do_continue(cr, uid, [ref("account_followup_print_0")], {"active_ids": [ref("account_followup.account_followup_print_menu")], "active_id": ref("account_followup.account_followup_print_menu"),
})
-
I select partners whom I want to send followups.
I select partners whom I want to send follow-ups.
-
!record {model: account.followup.print.all, id: account_followup_print_all_0}:
email_body: 'Date : %(date)s\n\nDear %(partner_name)s,\n\nPlease find in attachment
@ -28,7 +28,7 @@
- base.res_partner_desertic_hispafuentes
partner_lang: 1
-
I send a followup mail to partner.
I send a follow-up mail to partner.
-
!python {model: account.followup.print.all}: |
import time

View File

@ -1,10 +1,10 @@
-
In order to test the report I print followup report.
In order to test the report I print follow-up report.
-
!python {model: account.followup.print.all}: |
import time
ctx = {'form_view_ref':'account_followup.view_account_followup_print_all', 'followup_id': ref('account_followup.demo_followup1'),'date': time.strftime('%Y-%m-%d'),'model': 'account_followup.followup','active_ids':[ref('account_followup_print_all_0')], 'company_id':ref('base.main_company')}
data_dict = {'email_conf': 1}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_followup_print_all', context=ctx, wiz_data=data_dict,wiz_buttons=["Print Follow Ups"], our_module='account_followup')
test_reports.try_report_action(cr, uid, 'action_account_followup_print_all', context=ctx, wiz_data=data_dict,wiz_buttons=["Print Follow-ups"], our_module='account_followup')

View File

@ -28,7 +28,7 @@ from tools.translate import _
class account_followup_print(osv.osv_memory):
_name = 'account.followup.print'
_description = 'Print Followup & Send Mail to Customers'
_description = 'Print Follow-up & Send Mail to Customers'
_columns = {
'date': fields.date('Follow-up Sending Date', required=True, help="This field allow you to select a forecast date to plan your follow-ups"),
'followup_id': fields.many2one('account_followup.followup', 'Follow-up', required=True),
@ -71,14 +71,14 @@ account_followup_print()
class account_followup_stat_by_partner(osv.osv):
_name = "account_followup.stat.by.partner"
_description = "Followup Statistics by Partner"
_description = "Follow-up Statistics by Partner"
_rec_name = 'partner_id'
_auto = False
_columns = {
'partner_id': fields.many2one('res.partner', 'Partner', readonly=True),
'date_move':fields.date('First move', readonly=True),
'date_move_last':fields.date('Last move', readonly=True),
'date_followup':fields.date('Latest followup', readonly=True),
'date_followup':fields.date('Latest follow-up', readonly=True),
'max_followup_id': fields.many2one('account_followup.followup.line',
'Max Follow Up Level', readonly=True, ondelete="cascade"),
'balance':fields.float('Balance', readonly=True),
@ -90,7 +90,7 @@ class account_followup_stat_by_partner(osv.osv):
# Here we don't have other choice but to create a virtual ID based on the concatenation
# of the partner_id and the company_id, because if a partner is shared between 2 companies,
# we want to see 2 lines for him in this table. It means that both company should be able
# to send him followups separately . An assumption that the number of companies will not
# to send him follow-ups separately . An assumption that the number of companies will not
# reach 10 000 records is made, what should be enough for a time.
cr.execute("""
create or replace view account_followup_stat_by_partner as (
@ -118,7 +118,7 @@ account_followup_stat_by_partner()
class account_followup_print_all(osv.osv_memory):
_name = 'account.followup.print.all'
_description = 'Print Followup & Send Mail to Customers'
_description = 'Print Follow-up & Send Mail to Customers'
_columns = {
'partner_ids': fields.many2many('account_followup.stat.by.partner', 'partner_stat_rel', 'osv_memory_id', 'partner_id', 'Partners', required=True),
'email_conf': fields.boolean('Send email confirmation'),
@ -126,7 +126,7 @@ class account_followup_print_all(osv.osv_memory):
'partner_lang': fields.boolean('Send Email in Partner Language', help='Do not change message text, if you want to send email in partner language, or configure from company'),
'email_body': fields.text('Email body'),
'summary': fields.text('Summary', required=True, readonly=True),
'test_print': fields.boolean('Test Print', help='Check if you want to print followups without changing followups level.')
'test_print': fields.boolean('Test Print', help='Check if you want to print follow-ups without changing follow-ups level.')
}
def _get_summary(self, cr, uid, context=None):
if context is None:
@ -289,15 +289,15 @@ class account_followup_print_all(osv.osv_memory):
msg += partner.name + '\n'
msg_unsent += msg
if not msg_unsent:
summary = _("All E-mails have been successfully sent to Partners:.\n\n%s") % msg_sent
summary = _("All Emails have been successfully sent to Partners:.\n\n%s") % msg_sent
else:
msg_unsent = _("E-Mail not sent to following Partners, E-mail not available !\n\n%s") % msg_unsent
msg_sent = msg_sent and _("\n\nE-Mail sent to following Partners successfully. !\n\n%s") % msg_sent
msg_unsent = _("Email not sent to following Partners, Email not available !\n\n%s") % msg_unsent
msg_sent = msg_sent and _("\n\nEmail sent to following Partners successfully. !\n\n%s") % msg_sent
line = '=========================================================================='
summary = msg_unsent + line + msg_sent
context.update({'summary': summary})
else:
context.update({'summary': '\n\n\nE-Mail has not been sent to any partner. If you want to send it, please tick send email confirmation on wizard.'})
context.update({'summary': '\n\n\nEmail has not been sent to any partner. If you want to send it, please tick send email confirmation on wizard.'})
return {
'name': _('Followup Summary'),

View File

@ -7,12 +7,12 @@
<field name="model">account.followup.print</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Send followups" version="7.0">
<form string="Send follow-ups" version="7.0">
<header>
<button name="do_continue" string="Continue" colspan="1" type="object" icon="gtk-ok"/>
<button special="cancel" string="Cancel" icon='gtk-cancel'/>
</header>
<separator string="Send Follow-Ups"/>
<separator string="Send Follow-ups"/>
<label string ="This feature allows you to send reminders to partners with pending invoices. You can send them the default message for unpaid invoices or manually enter a message should you need to remind them of a specific information."/>
<group col="4">
<field name="followup_id"/>
@ -23,7 +23,7 @@
</record>
<record id="action_account_followup_print" model="ir.actions.act_window">
<field name="name">Send followups</field>
<field name="name">Send follow-ups</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.followup.print</field>
<field name="view_type">form</field>
@ -75,7 +75,7 @@
<field name="model">account.followup.print.all</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Send followups" version="7.0">
<form string="Send follow-ups" version="7.0">
<header>
<button name="do_mail" string="Send Mails" colspan="1" type="object" icon="gtk-execute"/>
<button name="do_print" string="Print Follow Ups" colspan="1" type="object" icon="gtk-print"/>
@ -126,7 +126,7 @@
</record>
<record id="action_account_followup_print_all" model="ir.actions.act_window">
<field name="name">Send followups</field>
<field name="name">Send follow-ups</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.followup.print.all</field>
<field name="view_type">form</field>

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-05-09 09:04+0000\n"
"PO-Revision-Date: 2012-06-25 05:21+0000\n"
"Last-Translator: Tomomi Mengelberg <tomomi.mengelberg@aquasys.co.jp>\n"
"Language-Team: Japanese <ja@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: 2012-05-10 05:20+0000\n"
"X-Generator: Launchpad (build 15213)\n"
"X-Launchpad-Export-Date: 2012-06-26 05:22+0000\n"
"X-Generator: Launchpad (build 15482)\n"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
@ -120,7 +120,7 @@ msgstr "詳細"
#. module: account_invoice_layout
#: help:account.invoice.line,sequence:0
msgid "Gives the sequence order when displaying a list of invoice lines."
msgstr ""
msgstr "請求書行のリスト表示は、シーケンスの順序になっています。"
#. module: account_invoice_layout
#: report:account.invoice.layout:0

View File

@ -193,7 +193,7 @@
</td>
<td>
<para style="terp_default_8">[[ (o.partner_id and o.partner_id.title and o.partner_id.title.name) or '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]</para>
<para style="terp_default_8">[[ display_address(o.partner_id, 'invoice') ]]</para>
<para style="terp_default_8">[[ display_address(o.partner_id) ]]</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>

View File

@ -197,7 +197,7 @@
</td>
<td>
<para style="terp_default_8">[[ (o.partner_id and o.partner_id.title and o.partner_id.title.name) or '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]</para>
<para style="terp_default_8">[[ display_address(o.partner_id, 'invoice') ]]</para>
<para style="terp_default_8">[[ display_address(o.partner_id) ]]</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>

View File

@ -250,6 +250,7 @@ class account_voucher(osv.osv):
_name = 'account.voucher'
_description = 'Accounting Voucher'
_inherit = ['mail.thread']
_order = "date desc, id desc"
# _rec_name = 'number'
_columns = {
@ -323,7 +324,7 @@ class account_voucher(osv.osv):
'amount': _get_amount,
'type':_get_type,
'state': 'draft',
'pay_now': 'pay_later',
'pay_now': 'pay_now',
'name': '',
'date': lambda *a: time.strftime('%Y-%m-%d'),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.voucher',context=c),
@ -334,6 +335,11 @@ class account_voucher(osv.osv):
'payment_rate_currency_id': _get_payment_rate_currency,
}
def create(self, cr, uid, vals, context=None):
voucher = super(account_voucher, self).create(cr, uid, vals, context=context)
self.create_send_note(cr, uid, [voucher], context=context)
return voucher
def compute_tax(self, cr, uid, ids, context=None):
tax_pool = self.pool.get('account.tax')
partner_pool = self.pool.get('res.partner')
@ -556,7 +562,7 @@ class account_voucher(osv.osv):
@return: Returns a dict which contains new values, and context
"""
def _remove_noise_in_o2m():
"""if the line is partially reconciled, then we must pay attention to display it only once and
"""if the line is partially reconciled, then we must pay attention to display it only once and
in the good o2m.
This function returns True if the line is considered as noise and should not be displayed
"""
@ -1249,12 +1255,16 @@ class account_voucher(osv.osv):
'state': 'posted',
'number': name,
})
self.post_send_note(cr, uid, [voucher.id], context=context)
if voucher.journal_id.entry_posted:
move_pool.post(cr, uid, [move_id], context={})
# We automatically reconcile the account move lines.
reconcile = False
for rec_ids in rec_list_ids:
if len(rec_ids) >= 2:
move_line_pool.reconcile_partial(cr, uid, rec_ids, writeoff_acc_id=voucher.writeoff_acc_id.id, writeoff_period_id=voucher.period_id.id, writeoff_journal_id=voucher.journal_id.id)
reconcile = move_line_pool.reconcile_partial(cr, uid, rec_ids, writeoff_acc_id=voucher.writeoff_acc_id.id, writeoff_period_id=voucher.period_id.id, writeoff_journal_id=voucher.journal_id.id)
if reconcile:
self.reconcile_send_note(cr, uid, [voucher.id], context=context)
return True
def copy(self, cr, uid, id, default={}, context=None):
@ -1270,6 +1280,32 @@ class account_voucher(osv.osv):
default['date'] = time.strftime('%Y-%m-%d')
return super(account_voucher, self).copy(cr, uid, id, default, context)
# -----------------------------------------
# OpenChatter notifications and need_action
# -----------------------------------------
_document_type = {
'sale': 'Sales Receipt',
'purchase': 'Purchase Receipt',
'payment': 'Supplier Payment',
'receipt': 'Customer Payment',
False: 'Payment',
}
def create_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context):
message = "%s <b>created</b>." % self._document_type[obj.type or False]
self.message_append_note(cr, uid, [obj.id], body=message, context=context)
def post_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context):
message = "%s '%s' is <b>posted</b>." % (self._document_type[obj.type or False], obj.move_id.name)
self.message_append_note(cr, uid, [obj.id], body=message, context=context)
def reconcile_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context):
message = "%s <b>reconciled</b>." % self._document_type[obj.type or False]
self.message_append_note(cr, uid, [obj.id], body=message, context=context)
account_voucher()
class account_voucher_line(osv.osv):

View File

@ -2,15 +2,18 @@
<openerp>
<data>
<record id="view_invoice_customer" model="ir.ui.view">
<field name="name">account.invoice.customer.pay</field>
<field name="model">account.invoice</field>
<field name="type">form</field>
<field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml">
<button name="invoice_open" position="after">
<button name="invoice_pay_customer" type="object" string="Register Payment" states="open" icon="gtk-go-forward"/>
</button>
</field>
<field name="name">account.invoice.customer.pay</field>
<field name="model">account.invoice</field>
<field name="type">form</field>
<field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml">
<xpath expr="//button[@name='invoice_open'][last()]" position="after">
<button name="invoice_pay_customer" type="object" string="Register Payment"
attrs="{'invisible': ['|', ('state','!=','open'), ('sent','=',True)]}"/>
<button name="invoice_pay_customer" type="object" string="Register Payment"
attrs="{'invisible': ['|', ('state','!=','open'), ('sent','=',False)]}" class="oe_highlight"/>
</xpath>
</field>
</record>
<record id="view_invoice_supplier" model="ir.ui.view">
<field name="name">account.invoice.supplier.pay</field>
@ -18,9 +21,9 @@
<field name="type">form</field>
<field name="inherit_id" ref="account.invoice_supplier_form"/>
<field name="arch" type="xml">
<button name="invoice_open" position="after">
<button name="invoice_pay_customer" type="object" string="Pay" states="open" icon="gtk-go-forward"/>
</button>
<xpath expr="//button[@name='invoice_open'][last()]" position="after">
<button name="invoice_pay_customer" type="object" string="Pay" states="open" class="oe_highlight"/>
</xpath>
</field>
</record>
</data>

View File

@ -11,7 +11,7 @@
<field name="number"/>
<field name="reference"/>
<field name="partner_id"/>
<field name="journal_id"/>
<field name="journal_id" groups="account.group_account_user"/>
<field name="period_id" invisible="context.get('visible', True)"/>
<field name="type" invisible="context.get('visible', True)"/>
<field name="amount" sum="Total Amount"/>
@ -110,7 +110,10 @@
</field>
</page>
</notebook>
</sheet>
</sheet>
<footer>
<field name="message_ids" widget="ThreadView"/>
</footer>
</form>
</field>
</record>

View File

@ -72,4 +72,4 @@ report_sxw.report_sxw(
parser=report_voucher,header="external"
)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -93,4 +93,4 @@ report_sxw.report_sxw(
parser=report_voucher_print,header="external"
)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -143,7 +143,7 @@
<field name="arch" type="xml">
<form version="7.0">
<header>
<button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)"/>
<button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)" class="oe_highlight"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" invisible="context.get('line_type', False)"/>
<button name="cancel_voucher" string="Unreconcile" type="object" states="posted" invisible="context.get('line_type', False)" confirm="Are you sure to unreconcile and cancel this record ?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" invisible="context.get('line_type', False)"/>
@ -183,8 +183,8 @@
<field name="date_original" readonly="1"/>
<field name="date_due" readonly="1"/>
<field name="amount_original" readonly="1"/>
<field name="amount_unreconciled" readonly="1"/>
<field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)"/>
<field name="amount_unreconciled" readonly="1" groups="account.group_account_user"/>
<field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)" groups="account.group_account_user"/>
<field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)"/>
</tree>
</field>
@ -199,8 +199,8 @@
<field name="date_original" readonly="1"/>
<field name="date_due" readonly="1"/>
<field name="amount_original" readonly="1"/>
<field name="amount_unreconciled" readonly="1"/>
<field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)"/>
<field name="amount_unreconciled" readonly="1" groups="account.group_account_user"/>
<field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)" groups="account.group_account_user"/>
<field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)"/>
</tree>
</field>
@ -257,6 +257,9 @@
</page>
</notebook>
</sheet>
<footer>
<field name="message_ids" widget="ThreadView"/>
</footer>
</form>
</field>
</record>
@ -270,7 +273,9 @@
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="view_voucher_filter_vendor_pay"/>
<field name="target">current</field>
<field name="help">The supplier payment form allows you to track the payment you do to your suppliers. When you select a supplier, the payment method and an amount for the payment, OpenERP will propose to reconcile your payment with the open supplier invoices or bills.</field>
<field name="help">Click on "Create" to register a supplier payment.
&lt;p&gt;
Track payments you do to your supplier and amounts you pay.</field>
</record>
<record id="action_vendor_payment_tree" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
@ -295,7 +300,7 @@
<field name="arch" type="xml">
<form version="7.0">
<header>
<button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)"/>
<button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)" class="oe_highlight"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" invisible="context.get('line_type', False)"/>
<button name="cancel_voucher" string="Unreconcile" type="object" states="posted" invisible="context.get('line_type', False)" confirm="Are you sure to unreconcile and cancel this record ?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" invisible="context.get('line_type', False)"/>
@ -425,6 +430,9 @@
</page>
</notebook>
</sheet>
<footer>
<field name="message_ids" widget="ThreadView"/>
</footer>
</form>
</field>
</record>
@ -438,7 +446,11 @@
<field name="search_view_id" ref="view_voucher_filter_customer_pay"/>
<field name="view_id" eval="False"/>
<field name="target">current</field>
<field name="help">Sales payment allows you to register the payments you receive from your customers. In order to record a payment, you must enter the customer, the payment method (=the journal) and the payment amount. OpenERP will propose to you automatically the reconciliation of this payment with the open invoices or sales receipts.</field>
<field name="help">
Click on create to register a payment.
&lt;p&gt;
Enter the customer and the payment method and then, either create manually a payment record or OpenERP will propose to you automatically the reconciliation of this payment with the open invoices or sales receipts.
</field>
</record>
<record id="action_vendor_receipt_tree" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>

View File

@ -80,8 +80,8 @@
<field name="arch" type="xml">
<form version="7.0">
<header>
<button name="proforma_voucher" string="Validate" states="draft"/>
<button name="%(act_pay_voucher)d" context="{'narration':narration, 'title':'Customer Payment', 'type':'receipt', 'partner_id':partner_id, 'reference':reference, 'amount':amount}" type="action" string="Pay" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}"/>
<button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/>
<button name="%(act_pay_voucher)d" context="{'narration':narration, 'title':'Customer Payment', 'type':'receipt', 'partner_id':partner_id, 'reference':reference, 'amount':amount}" type="action" string="Pay" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}" class="oe_highlight"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" />
<button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to confirm this record ?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
@ -119,7 +119,7 @@
<page string="Sales Information">
<field name="line_cr_ids" on_change="onchange_price(line_cr_ids, tax_id, partner_id)" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}">
<tree string="Sales Lines" editable="bottom">
<field name="account_id" domain="[('user_type.report_type','=','income'),('type','!=','view')]" widget="selection"/>
<field name="account_id" domain="[('user_type.report_type','=','income'),('type','!=','view')]" widget="selection" groups="account.group_account_user"/>
<field name="name"/>
<field name="amount" sum="Total"/>
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
@ -167,6 +167,9 @@
</page>
</notebook>
</sheet>
<footer>
<field name="message_ids" widget="ThreadView"/>
</footer>
</form>
</field>
</record>
@ -181,7 +184,11 @@
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="view_voucher_filter_sale"/>
<field name="target">current</field>
<field name="help">When you sell products to a customer, you can give him a sales receipt or an invoice. When the sales receipt is confirmed, it creates journal items automatically and you can record the customer payment related to this sales receipt.</field>
<field name="help">
Click here to create a sale receipt.
&lt;p&gt;
When the sales receipt is confirmed, you can record the customer payment related to this sales receipt.
</field>
</record>
<record id="action_sale_receipt_tree" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
@ -217,8 +224,8 @@
<field name="arch" type="xml">
<form version="7.0">
<header>
<button name="proforma_voucher" string="Validate" states="draft"/>
<button name="%(act_pay_bills)d" context="{'narration':narration, 'title':'Bill Payment', 'type':'payment', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay Bill" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}"/>
<button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/>
<button name="%(act_pay_bills)d" context="{'narration':narration, 'title':'Bill Payment', 'type':'payment', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay Bill" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}" class="oe_highlight"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" />
<button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to confirm this record ?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
@ -259,7 +266,7 @@
<page string="Bill Information">
<field name="line_dr_ids" on_change="onchange_price(line_dr_ids, tax_id, partner_id)" context="{'journal_id':journal_id,'partner_id':partner_id}">
<tree string="Expense Lines" editable="bottom">
<field name="account_id" widget="selection" domain="[('user_type.report_type','=','expense'), ('type','!=','view')]"/>
<field name="account_id" widget="selection" domain="[('user_type.report_type','=','expense'), ('type','!=','view')]" groups="account.group_account_user"/>
<field name="name"/>
<field name="amount"/>
<field name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
@ -313,6 +320,9 @@
</page>
</notebook>
</sheet>
<footer>
<field name="message_ids" widget="ThreadView"/>
</footer>
</form>
</field>
</record>
@ -325,6 +335,11 @@
<field name="view_id" eval="False"/>
<field name="search_view_id" eval="view_voucher_filter_vendor"/>
<field name="target">current</field>
<field name="help">
Click here to create a purchase receipt.
&lt;p&gt;
When the purchase receipt is confirmed, you can record the supplier payment related to this purchase receipt.
</field>
</record>
<record id="action_purchase_receipt_tree" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>

View File

@ -25,7 +25,7 @@
"author" : "OpenERP SA",
"website" : "http://www.openerp.com",
"category": 'Hidden/Dependency',
"depends" : ["base", "decimal_precision"],
"depends" : ["base", "decimal_precision", "mail"],
"description": """
Module for defining analytic accounting object.
===============================================
@ -37,6 +37,8 @@ that have no counterpart in the general financial accounts.
"init_xml" : [],
"update_xml": ['security/analytic_security.xml',
"security/ir.model.access.csv",
"analytic_sequence.xml",
"analytic_view.xml"
],
'demo_xml': [
],

View File

@ -27,6 +27,7 @@ import decimal_precision as dp
class account_analytic_account(osv.osv):
_name = 'account.analytic.account'
_inherit = ['mail.thread']
_description = 'Analytic Account'
def _compute_level_tree(self, cr, uid, ids, child_ids, res, field_names, context=None):
@ -155,7 +156,11 @@ class account_analytic_account(osv.osv):
'name': fields.char('Account Name', size=128, required=True),
'complete_name': fields.function(_complete_name_calc, type='char', string='Full Account Name'),
'code': fields.char('Code/Reference', size=24, select=True),
'type': fields.selection([('view','View'), ('normal','Normal')], 'Account Type', help='If you select the View Type, it means you won\'t allow to create journal entries using that account.'),
'type': fields.selection([('view','Analytic View'), ('normal','Analytic Account'),('contract','Contract or Project'),('template','Template of Project')], 'Type of Account', required=True,
help="If you select the View Type, it means you won\'t allow to create journal entries using that account.\n"\
"The type 'Analytic account' stands for usual accounts that you only want to use in accounting.\n"\
"If you select Contract or Project, it offers you the possibility to manage the validity and the invoicing options for this account.\n"\
"The special type 'Template of Project' allows you to define a template with default data that you can reuse easily."),
'description': fields.text('Description'),
'parent_id': fields.many2one('account.analytic.account', 'Parent Analytic Account', select=2),
'child_ids': fields.one2many('account.analytic.account', 'parent_id', 'Child Accounts'),
@ -166,23 +171,28 @@ class account_analytic_account(osv.osv):
'credit': fields.function(_debit_credit_bal_qtty, type='float', string='Credit', multi='debit_credit_bal_qtty', digits_compute=dp.get_precision('Account')),
'quantity': fields.function(_debit_credit_bal_qtty, type='float', string='Quantity', multi='debit_credit_bal_qtty'),
'quantity_max': fields.float('Maximum Time', help='Sets the higher limit of time to work on the contract.'),
'partner_id': fields.many2one('res.partner', 'Partner'),
'user_id': fields.many2one('res.users', 'Account Manager'),
'partner_id': fields.many2one('res.partner', 'Customer'),
'user_id': fields.many2one('res.users', 'Project Manager'),
'manager_id': fields.many2one('res.users', 'Account Manager'),
'date_start': fields.date('Date Start'),
'date': fields.date('Date End', select=True),
'company_id': fields.many2one('res.company', 'Company', required=False), #not required because we want to allow different companies to use the same chart of account, except for leaf accounts.
'state': fields.selection([('template', 'Template'),('draft','New'),('open','Open'), ('cancelled', 'Cancelled'),('pending','Pending'),('close','Closed')], 'Status', required=True,
help='* When an account is created its in \'Draft\' state.\
\n* If any associated partner is there, it can be in \'Open\' state.\
\n* If any pending balance is there it can be in \'Pending\'. \
\n* And finally when all the transactions are over, it can be in \'Close\' state. \
\n* The project can be in either if the states \'Template\' and \'Running\'.\n If it is template then we can make projects based on the template projects. If its in \'Running\' state it is a normal project.\
\n If it is to be reviewed then the state is \'Pending\'.\n When the project is completed the state is set to \'Done\'.'),
'state': fields.selection([('template', 'Template'),('draft','New'),('open','In Progress'), ('cancelled', 'Cancelled'),('pending','To Renew'),('close','Closed')], 'Status', required=True,),
'currency_id': fields.function(_currency, fnct_inv=_set_company_currency,
store = {
'res.company': (_get_analytic_account, ['currency_id'], 10),
}, string='Currency', type='many2one', relation='res.currency'),
}
def on_change_partner_id(self, cr, uid, ids,partner_id, name, context={}):
res={}
if partner_id:
partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
if partner.user_id:
res['manager_id'] = partner.user_id.id
if not name:
res['name'] = _('Contract: ') + partner.name
return {'value': res}
def _default_company(self, cr, uid, context=None):
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
@ -197,6 +207,7 @@ class account_analytic_account(osv.osv):
_defaults = {
'type': 'normal',
'company_id': _default_company,
'code' : lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'account.analytic.account'),
'state': 'open',
'user_id': lambda self, cr, uid, ctx: uid,
'partner_id': lambda self, cr, uid, ctx: ctx.get('partner_id', False),
@ -266,6 +277,17 @@ class account_analytic_account(osv.osv):
account = self.search(cr, uid, args, limit=limit, context=context)
return self.name_get(cr, uid, account, context=context)
def create(self, cr, uid, vals, context=None):
contract = super(account_analytic_account, self).create(cr, uid, vals, context=context)
if contract:
self.create_send_note(cr, uid, [contract], context=context)
return contract
def create_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context):
self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context)
self.message_append_note(cr, uid, [obj.id], body=_("Contract for <em>%s</em> has been <b>created</b>.") % (obj.partner_id.name), context=context)
account_analytic_account()
@ -290,17 +312,17 @@ class account_analytic_line(osv.osv):
}
_order = 'date desc'
def _check_no_view(self, cr, uid, ids, context=None):
analytic_lines = self.browse(cr, uid, ids, context=context)
for line in analytic_lines:
if line.account_id.type == 'view':
return False
return True
_constraints = [
(_check_no_view, 'You can not create analytic line on view account.', ['account_id']),
]
]
account_analytic_line()

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="seq_type_analytic_account_main" model="ir.sequence.type">
<field name="name">Analytic account</field>
<field name="code">account.analytic.account</field>
</record>
<record id="seq_analytic_account_base" model="ir.sequence">
<field name="name">Analytic account sequence</field>
<field name="code">account.analytic.account</field>
<field name="prefix">AA</field>
<field name="padding">3</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_account_analytic_account_form" model="ir.ui.view">
<field name="name">analytic.analytic.account.form</field>
<field name="model">account.analytic.account</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form version="7.0">
<sheet string="Analytic Account">
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name"/>
</h1>
<group>
<group>
<field name="partner_id" on_change="on_change_partner_id(partner_id, name)" attrs="{'required':[('type','=','contract')]}"/>
<field name="parent_id" on_change="on_change_parent(parent_id)" attrs="{'invisible': [('type','in',['contract','template'])]}"/>
<field name="type"/>
</group>
<group>
<field name="code"/>
<field name="manager_id"/>
<field name="company_id" on_change="on_change_company(company_id)" widget="selection" groups="base.group_multi_company" attrs="{'required': [('type','&lt;&gt;','view')]}"/>
</group>
</group>
<notebook>
<page string="Contract Information" name="contract_page" attrs="{'invisible':[('type','not in',['contract', 'template'])]}">
<group name="master">
<group string="Validity" name="contract">
<label for="date_start" string="Duration"/>
<div name="duration">
<field name="date_start" class="oe_inline"/> - <field name="date" class="oe_inline"/>
</div>
</group>
<group name="project">
<separator string="Project Management" name="project_sep" invisible="1"/>
</group>
</group>
<separator string="Terms and Conditions" name="description"/>
<field name="description"/>
</page>
</notebook>
</sheet>
<footer>
<field name="message_ids" widget="ThreadView"/>
</footer>
</form>
</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,24 @@
# -*- 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 analytic_contract_expense_project
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -19,28 +19,28 @@
#
##############################################################################
{
'name': 'Billing Rates on Contracts',
'version': '1.0',
'name': 'Projects Management: hr_expense link',
'version': '1.1',
'category': 'Sales Management',
'description': """
This module allows you to define what is the default invoicing rate for a specific journal on a given account.
==============================================================================================================
This module is for modifying project view to show some data related to the hr_expense module.
======================================================================================================
This is mostly used when a user encodes his timesheet: the values are retrieved and the fields are auto-filled. But the possibility to change these values is still available.
Obviously if no data has been recorded for the current account, the default value is given as usual by the account data so that this module is perfectly compatible with older configurations.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'images': ['images/analytic_journal_billing_rate.jpeg'],
'depends': ['analytic_user_function', 'account', 'hr_timesheet_invoice'],
'init_xml': [],
'update_xml': ['analytic_journal_billing_rate_view.xml', 'security/ir.model.access.csv'],
""",
"author": "OpenERP S.A.",
"website": "http://www.openerp.com/",
"depends": ["analytic_contract_hr_expense","project"],
"init_xml": [],
"update_xml": [
"analytic_contract_expense_project_view.xml",
],
'demo_xml': [],
"css" : [
],
'installable': True,
'auto_install': False,
'certificate': '0030271787965',
'auto_install': True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,37 @@
# -*- 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/>.
#
##############################################################################
from osv import osv
class project_project(osv.osv):
_inherit = "project.project"
def open_hr_expense(self, cr, uid, ids, context=None):
account_ids = [x.analytic_account_id.id for x in self.browse(cr, uid, ids, context=context)]
return self.pool.get('account.analytic.account').open_hr_expense(cr, uid, account_ids, context=context)
def hr_to_invoice_expense(self, cr, uid, ids, context=None):
account_ids = [x.analytic_account_id.id for x in self.browse(cr, uid, ids, context=context)]
return self.pool.get('account.analytic.account').hr_to_invoice_expense(cr, uid, account_ids, context=context)
project_project()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="project_form_expense_form" model="ir.ui.view">
<field name="name">project.project.form.expense.inherit</field>
<field name="model">project.project</field>
<field name="type">form</field>
<field name="inherit_id" ref="analytic_contract_project.project_account_analytic_account_form"/>
<field eval="20" name="priority"/>
<field name="arch" type="xml">
<xpath expr='//tr[@name="total"]' position='before'>
<tr>
<td>
<label for="charge_expenses"/>
</td><td>
<field name="charge_expenses"/>
</td><td>
<field class="oe_form_inline" name="est_expenses" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
</td><td>
<field class="oe_form_inline" name="expense_invoiced" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
</td><td>
<field class="oe_form_inline" name="remaining_expense" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
</td><td>
<field class="oe_form_inline" name="expense_to_invoice" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
</td><td>
<button name="open_hr_expense" string="All Expenses" type="object" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
<button name="hr_to_invoice_expense" string="Expenses to Invoice" type="object" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
</td>
</tr>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@ -19,6 +19,6 @@
#
##############################################################################
import analytic_journal_billing_rate
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
import analytic_contract_hr_expense
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,47 @@
# -*- 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': 'Contracts Management: hr_expense link',
'version': '1.1',
'category': 'Sales Management',
'description': """
This module is for modifying account analytic view to show some data related to the hr_expense module.
======================================================================================================
""",
"author": "OpenERP S.A.",
"website": "http://www.openerp.com/",
"depends": ["hr_expense","account_analytic_analysis"],
"init_xml": [],
"update_xml": [
"analytic_contract_hr_expense_view.xml",
],
'demo_xml': [],
"css" : [
],
'installable': True,
'auto_install': True,
'certificate': '',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,160 @@
# -*- 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/>.
#
##############################################################################
from osv import osv, fields
from osv.orm import intersect, except_orm
import tools.sql
from tools.translate import _
from decimal_precision import decimal_precision as dp
class account_analytic_account(osv.osv):
_name = "account.analytic.account"
_inherit = "account.analytic.account"
def _get_total_estimation(self, account):
tot_est = super(account_analytic_account, self)._get_total_estimation(account)
if account.charge_expenses:
tot_est += account.est_expenses
return tot_est
def _get_total_invoiced(self, account):
total_invoiced = super(account_analytic_account, self)._get_total_invoiced(account)
if account.charge_expenses:
total_invoiced += account.expense_invoiced
return total_invoiced
def _get_total_remaining(self, account):
total_remaining = super(account_analytic_account, self)._get_total_remaining(account)
if account.charge_expenses:
total_remaining += account.remaining_expense
return total_remaining
def _get_total_toinvoice(self, account):
total_toinvoice = super(account_analytic_account, self)._get_total_toinvoice(account)
if account.charge_expenses:
total_toinvoice += account.expense_to_invoice
return total_toinvoice
def _remaining_expnse_calc(self, cr, uid, ids, name, arg, context=None):
res = {}
for account in self.browse(cr, uid, ids, context=context):
if account.est_expenses != 0:
res[account.id] = max(account.est_expenses - account.expense_invoiced, account.expense_to_invoice)
else:
res[account.id]=0.0
return res
def _expense_to_invoice_calc(self, cr, uid, ids, name, arg, context=None):
res = {}
res_final = {}
child_ids = tuple(ids) #We don't want consolidation for each of these fields because those complex computation is resource-greedy.
for i in child_ids:
res[i] = 0.0
if not child_ids:
return res
if child_ids:
cr.execute("""SELECT account_analytic_account.id, \
COALESCE(SUM (product_template.list_price * \
account_analytic_line.unit_amount * \
((100-hr_timesheet_invoice_factor.factor)/100)), 0.0) \
AS ca_to_invoice \
FROM product_template \
JOIN product_product \
ON product_template.id = product_product.product_tmpl_id \
JOIN account_analytic_line \
ON account_analytic_line.product_id = product_product.id \
JOIN account_analytic_journal \
ON account_analytic_line.journal_id = account_analytic_journal.id \
JOIN account_analytic_account \
ON account_analytic_account.id = account_analytic_line.account_id \
JOIN hr_timesheet_invoice_factor \
ON hr_timesheet_invoice_factor.id = account_analytic_account.to_invoice \
WHERE account_analytic_account.id IN %s \
AND account_analytic_line.invoice_id IS NULL \
AND account_analytic_line.to_invoice IS NOT NULL \
AND account_analytic_journal.type = 'purchase' \
GROUP BY account_analytic_account.id;""",(child_ids,))
for account_id, sum in cr.fetchall():
res[account_id] = sum
res_final = res
return res_final
def _expense_invoiced_calc(self, cr, uid, ids, name, arg, context=None):
lines_obj = self.pool.get('account.analytic.line')
res = {}
for account in self.browse(cr, uid, ids, context=context):
res[account.id] = 0.0
line_ids = lines_obj.search(cr, uid, [('account_id','=', account.id), ('invoice_id','!=',False), ('to_invoice','!=', False), ('journal_id.type', '=', 'purchase')], context=context)
for line in lines_obj.browse(cr, uid, line_ids, context=context):
res[account.id] += line.invoice_id.amount_untaxed
return res
_columns = {
'charge_expenses' : fields.boolean('Charge Expenses'),
'expense_invoiced' : fields.function(_expense_invoiced_calc, type="float"),
'expense_to_invoice' : fields.function(_expense_to_invoice_calc, type='float'),
'remaining_expense' : fields.function(_remaining_expnse_calc, type="float"),
'est_expenses': fields.float('Estimation of Expenses to Invoice'),
}
def on_change_template(self, cr, uid, id, template_id, context=None):
res = super(account_analytic_account, self).on_change_template(cr, uid, id, template_id, context=context)
if template_id and 'value' in res:
template = self.browse(cr, uid, template_id, context=context)
res['value']['charge_expenses'] = template.charge_expenses
res['value']['est_expenses'] = template.est_expenses
return res
def open_hr_expense(self, cr, uid, ids, context=None):
line_ids = self.pool.get('hr.expense.line').search(cr,uid,[('analytic_account', 'in', ids)])
domain = [('line_ids', 'in', line_ids)]
names = [record.name for record in self.browse(cr, uid, ids, context=context)]
name = _('Expenses of %s') % ','.join(names)
return {
'type': 'ir.actions.act_window',
'name': name,
'view_type': 'form',
'view_mode': 'tree,form',
'domain' : domain,
'res_model': 'hr.expense.expense',
'nodestroy': True,
}
def hr_to_invoice_expense(self, cr, uid, ids, context=None):
domain = [('invoice_id','=',False),('to_invoice','!=',False), ('journal_id.type', '=', 'purchase'), ('account_id', 'in', ids)]
names = [record.name for record in self.browse(cr, uid, ids, context=context)]
name = _('Expenses to Invoice of %s') % ','.join(names)
return {
'type': 'ir.actions.act_window',
'name': name,
'view_type': 'form',
'view_mode': 'tree,form',
'domain' : domain,
'res_model': 'account.analytic.line',
'nodestroy': True,
}
account_analytic_account()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="account_analytic_account_form_expense_form" model="ir.ui.view">
<field name="name">account.analytic.account.form.expense.inherit</field>
<field name="model">account.analytic.account</field>
<field name="type">form</field>
<field eval="60" name="priority"/>
<field name="arch" type="xml">
<xpath expr='//tr[@name="total"]' position='before'>
<tr>
<td>
<label for="charge_expenses"/>
</td><td>
<field name="charge_expenses"/>
</td><td>
<field class="oe_form_inline" name="est_expenses" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
</td><td>
<field class="oe_form_inline" name="expense_invoiced" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
</td><td>
<field class="oe_form_inline" name="remaining_expense" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
</td><td>
<field class="oe_form_inline" name="expense_to_invoice" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
</td><td>
<group>
<button name="open_hr_expense" string="All Expenses" type="object" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
<button name="hr_to_invoice_expense" string="Expenses to Invoice" type="object" attrs="{'invisible': [('charge_expenses','=',False)]}"/>
</group>
</td>
</tr>
</xpath>
</field>
</record>
<!--<record id="project_form_expense_form" model="ir.ui.view">
<field name="name">project.project.form.expense.inherit</field>
<field name="model">project.project</field>
<field name="type">form</field>
<field name="inherit_id" ref="analytic_contract_project.project_account_analytic_account_form"/>
<field eval="20" name="priority"/>
<field name="arch" type="xml">
<xpath expr='//div[@name="end_of_tabl_hook"]' position='before'>
<tr>
<th class="oe_border_right">Charge Expenses</th>
<td><field name="charge_expenses" nolabel="1"/></td>
<td><field class="oe_th_110px" name="est_expenses" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></td>
<td class="oe_th_110px"><field name="expense_invoiced" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></td>
<td class="oe_th_110px oe_border_right"><field name="remaining_expense" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></td>
<td class="oe_th_110px"><field name="expense_to_invoice" nolabel="1" attrs="{'invisible': [('charge_expenses','=',0)]}"/></td>
<td width="10px"></td>
<td><button icon="gtk-select-all" class= "oe_btn_width" name="open_hr_expense" string="Expenses" type="object" attrs="{'invisible': [('charge_expenses','=',0)]}"/></td>
<td><button icon="terp-dolar" class= "oe_btn_width" name="hr_to_invoiced_expense" string="Invoice Expenses" type="object" attrs="{'invisible': [('charge_expenses','=',0)]}"/></td>
</tr>
</xpath>
</field>
</record>-->
</data>
</openerp>

View File

@ -0,0 +1,24 @@
# -*- 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 analytic_contract_project
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,37 @@
# -*- 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" : "Contract On Project",
"version": "1.1",
"author" : "OpenERP SA",
"website" : "http://www.openerp.com",
"depends" : ["project", "account_analytic_analysis"],
"description": """
Add "Contract Data" in project view.
""",
"init_xml" : [],
"update_xml": ["analytic_contract_project_view.xml"],
'demo_xml': [],
'installable': True,
'auto_install': True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,83 @@
# -*- 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/>.
#
##############################################################################
from osv import fields, osv
from tools.translate import _
class project_project(osv.osv):
_inherit = 'project.project'
_defaults = {
'use_timesheets': True,
}
def open_sale_order_lines(self,cr,uid,ids,context=None):
account_ids = [x.analytic_account_id.id for x in self.browse(cr, uid, ids, context=context)]
return self.pool.get('account.analytic.account').open_sale_order_lines(cr, uid, account_ids, context=context)
def open_timesheets_to_invoice(self,cr,uid,ids,context=None):
if context is None:
context = {}
analytic_account_id = self.browse(cr, uid, ids[0], context=context).analytic_account_id.id
context.update({'search_default_account_id': analytic_account_id, 'default_account_id': analytic_account_id, 'search_default_to_invoice': 1})
return {
'type': 'ir.actions.act_window',
'name': _('Timesheet Lines to Invoice'),
'view_type': 'form',
'view_mode': 'tree,form',
'context': context,
'domain' : [('invoice_id','=',False),('to_invoice','!=',False), ('journal_id.type', '=', 'general')],
'res_model': 'account.analytic.line',
'nodestroy': True,
}
def open_timesheets(self, cr, uid, ids, context=None):
""" open Timesheets view """
project = self.browse(cr, uid, ids[0], context)
try:
journal_id = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_timesheet', 'analytic_journal').id
except ValueError:
journal_id = False
view_context = {
'search_default_account_id': [project.analytic_account_id.id],
'default_account_id': project.analytic_account_id.id,
'default_journal_id': journal_id,
}
return {
'type': 'ir.actions.act_window',
'name': _('Bill Tasks Works'),
'res_model': 'account.analytic.line',
'view_type': 'form',
'view_mode': 'tree,form',
'context': view_context,
'nodestroy': True,
}
project_project()
class task(osv.osv):
_inherit = "project.task"
def create(self, cr, uid, vals, context=None):
task_id = super(task, self).create(cr, uid, vals, context=context)
task_browse = self.browse(cr, uid, task_id, context=context)
self.pool.get('account.analytic.account').message_append_note(cr, uid, [task_browse.project_id.analytic_account_id.id], body=_("Task <em>%s</em> has been <b>created</b>.") % (task_browse.name), context=context)
return task_id
task()

View File

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="project_account_analytic_account_form" model="ir.ui.view">
<field name="name">project.project.form.inherit</field>
<field name="model">project.project</field>
<field name="type">form</field>
<field name="inherit_id" ref="project.edit_project"/>
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<xpath expr='//page[@name="team"]' position='after'>
<page string="Contract Data">
<group>
<group string="Validity">
<label for="date_start" string="Duration"/>
<div name="duration">
<field name="date_start" class="oe_inline"/> - <field name="date" class="oe_inline"/>
</div>
<label for="quantity_max"/>
<div>
<field name="quantity_max" class="oe_inline"/>
<field name="company_uom_id" readonly="1" class="oe_inline"/> / Remaining:
<field name="remaining_hours" class="oe_inline"/>
<field name="company_uom_id" readonly="1" class="oe_inline"/>
</div>
</group>
<group string="Invoice Options">
<field name="manager_id" />
<field name="pricelist_id" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/>
<field name="to_invoice" widget="selection" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/>
</group>
</group>
<separator name="toinvoice" string="Invoicing"/>
<table width="100%%">
<tr>
<th></th>
<th></th>
<th><label string="Est.Tot"/></th>
<th><label string="Invoiced"/></th>
<th><label string="Remaining"/></th>
<th><label string="To Invoice"/></th>
<th></th>
</tr><tr>
<td>
<label for="fix_price_invoices"/>
</td><td>
<field name="fix_price_invoices" class="oe_inline"/>
</td><td>
<field class="oe_inline" name="amount_max" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
</td><td>
<field class="oe_inline" name="ca_invoiced" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
</td><td>
<field class="oe_inline" name="remaining_ca" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
</td><td>
<field class="oe_inline" name="fix_price_to_invoice" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
</td><td>
<button name="%(account_analytic_analysis.action_sales_order)d" string="All Sales" type="action" context="{'default_partner_id': [partner_id], 'search_default_partner_id': [partner_id], 'default_project_id': analytic_account_id, 'search_default_project_id': analytic_account_id}" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
<button name="open_sale_order_lines" string="Lines To Invoice" type="object" context="{'default_partner_id': [partner_id],'default_project_id': analytic_account_id,'search_default_uninvoiced': 1,'search_default_project_id': analytic_account_id,'search_default_partner_id': [partner_id]}" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/></td>
</tr><tr attrs="{'invisible':[('use_timesheets','=',False)]}">
<td>
<label for="invoice_on_timesheets"/>
</td><td>
<field name="invoice_on_timesheets"/>
</td><td>
<field class="oe_inline" name="hours_qtt_est" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
</td><td>
<field class="oe_inline" name="timesheet_ca_invoiced" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
</td><td>
<field class="oe_inline" name="remaining_hours_to_invoice" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
</td><td>
<field class="oe_inline" name="ca_to_invoice" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/>
</td><td>
<button name="%(hr_timesheet.act_hr_timesheet_line_evry1_all_form)d" string="All Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}" context="{'default_account_id': analytic_account_id,'search_default_account_id': analytic_account_id}"/>
<button name="open_timesheets_to_invoice" string="Timesheets to Invoice" type="object" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
</td>
</tr><tr name="total">
<th>
<label string="Total"/>
</th><td>
</td><td>
<field name="est_total" class="oe_inline" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/>
</td><td>
<field name="invoiced_total" class="oe_inline"/>
</td><td>
<field name="remaining_total" class="oe_inline"/>
</td><td>
<field name="toinvoice_total" class="oe_inline"/>
</td><td>
</td>
</tr>
</table>
<separator string="Terms and Conditions" name="description"/>
<field name="description"/>
</page>
</xpath>
</field>
</record>
<record id="project_invoice_form" model="ir.ui.view">
<field name="name">Inherit project form : Invoicing Data</field>
<field name="model">project.project</field>
<field name="type">form</field>
<field name="inherit_id" ref="project.edit_project"/>
<field name="arch" type="xml">
<xpath expr='//tr[@name="use_tasks_row"]' position='after'>
<tr>
<td><group><field name="use_timesheets"/></group></td>
<td><button icon="terp-gtk-go-back-rtl" name="open_timesheets" string="Timesheets" type="object" attrs="{'invisible':[('use_timesheets','=', 0)]}"/></td>
</tr>
</xpath>
</field>
</record>
<record id="contract_inherited_form" model="ir.ui.view">
<field name="name">Inherit contract form : adding UoM</field>
<field name="model">account.analytic.account</field>
<field name="type">form</field>
<field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
<field name="priority">50</field>
<field name="arch" type="xml">
<xpath expr='//field[@name="remaining_hours"]' position='after'>
<field name="company_uom_id" readonly="1" class="oe_inline"/>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@ -1,121 +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/>.
#
##############################################################################
from osv import fields,osv
class analytic_journal_rate_grid(osv.osv):
_name="analytic_journal_rate_grid"
_description= "Relation table between journals and billing rates"
_columns={
'journal_id': fields.many2one('account.analytic.journal', 'Analytic Journal', required=True,),
'account_id': fields.many2one("account.analytic.account", "Analytic Account", required=True,),
'rate_id': fields.many2one("hr_timesheet_invoice.factor", "Invoicing Rate",),
}
analytic_journal_rate_grid()
class account_analytic_account(osv.osv):
_inherit = "account.analytic.account"
_columns = {
'journal_rate_ids': fields.one2many('analytic_journal_rate_grid', 'account_id', 'Invoicing Rate per Journal'),
}
account_analytic_account()
class hr_analytic_timesheet(osv.osv):
_inherit = "hr.analytic.timesheet"
def on_change_account_id(self, cr, uid, ids, account_id, user_id=False, unit_amount=0, journal_id=0):
res = {}
if not (account_id):
#avoid a useless call to super
return res
if not (journal_id):
return super(hr_analytic_timesheet, self).on_change_account_id(cr, uid, ids,account_id, user_id, unit_amount)
#get the browse record related to journal_id and account_id
temp = self.pool.get('analytic_journal_rate_grid').search(cr, uid, [('journal_id', '=', journal_id),('account_id', '=', account_id) ])
if not temp:
#if there isn't any record for this journal_id and account_id
return super(hr_analytic_timesheet, self).on_change_account_id(cr, uid, ids,account_id,user_id, unit_amount)
else:
#get the old values from super and add the value from the new relation analytic_journal_rate_grid
r = self.pool.get('analytic_journal_rate_grid').browse(cr, uid, temp)[0]
res.setdefault('value',{})
res['value']= super(hr_analytic_timesheet, self).on_change_account_id(cr, uid, ids, account_id, user_id, unit_amount)['value']
if r.rate_id.id:
res['value']['to_invoice'] = r.rate_id.id
return res
def on_change_journal_id(self, cr, uid, ids, journal_id, account_id):
res = {}
if not (journal_id and account_id):
return res
#get the browse record related to journal_id and account_id
temp = self.pool.get('analytic_journal_rate_grid').search(cr, uid, [('journal_id', '=', journal_id),('account_id', '=', account_id) ])
if temp:
#add the value from the new relation analytic_user_funct_grid
r = self.pool.get('analytic_journal_rate_grid').browse(cr, uid, temp)[0]
res.setdefault('value',{})
if r.rate_id.id:
res['value']['to_invoice'] = r.rate_id.id
return res
to_invoice = self.pool.get('account.analytic.account').read(cr, uid, [account_id], ['to_invoice'])[0]['to_invoice']
if to_invoice:
res.setdefault('value',{})
res['value']['to_invoice'] = to_invoice[0]
return res
hr_analytic_timesheet()
class account_invoice(osv.osv):
_inherit = "account.invoice"
def _get_analytic_lines(self, cr, uid, id, context=None):
iml = super(account_invoice, self)._get_analytic_lines(cr, uid, id, context=context)
for il in iml:
if il['account_analytic_id'] and il.get('analytic_lines', False):
#get the browse record related to journal_id and account_id
journal_id = il['analytic_lines'][0][2]['journal_id']
account_id = il['analytic_lines'][0][2]['account_id']
if journal_id and account_id:
temp = self.pool.get('analytic_journal_rate_grid').search(cr, uid, [('journal_id', '=', journal_id),('account_id', '=', account_id)], context=context)
if temp:
r = self.pool.get('analytic_journal_rate_grid').browse(cr, uid, temp, context=context)[0]
il['analytic_lines'][0][2]['to_invoice'] = r.rate_id.id
return iml
account_invoice()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -1,82 +0,0 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!-- analytic_journal_rate_grid views -->
<record model="ir.ui.view" id="analytic_journal_rate_grid_tree">
<field name="name">analytic_journal_rate_grid.tree</field>
<field name="model">analytic_journal_rate_grid</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Billing Rate per Journal for this Analytic Account" editable="bottom">
<field name="journal_id" required="1"/>
<field name="rate_id" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="analytic_journal_rate_grid_form">
<field name="name">analytic_journal_rate_grid.form</field>
<field name="model">analytic_journal_rate_grid</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Billing Rate per Journal for this Analytic Account">
<field name="journal_id" required="1"/>
<field name="rate_id" />
</form>
</field>
</record>
<!-- account.analytic.account inherited view -->
<record model="ir.ui.view" id="view_account_analytic_account_form_inherit">
<field name="name">account.analytic.account.form</field>
<field name="model">account.analytic.account</field>
<field name="type">form</field>
<field name="inherit_id" ref="hr_timesheet_invoice.account_analytic_account_form_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='to_invoice']" position="after">
<field name="journal_rate_ids" nolabel="1" colspan="4"/>
</xpath>
</field>
</record>
<!-- hr_timesheet_sheet.sheet inherited view -->
<record model="ir.ui.view" id="hr_timesheet_sheet_form_inherit">
<field name="name">hr.timesheet.sheet.form</field>
<field name="model">hr_timesheet_sheet.sheet</field>
<field name="type">form</field>
<field name="inherit_id" ref="hr_timesheet_sheet.hr_timesheet_sheet_form"/>
<field name="arch" type="xml">
<xpath expr="/form/sheet/notebook/page/field[@name='timesheet_ids']/tree/field[@name='account_id']" position="replace">
<field name="account_id" domain="[('type','=','normal'),('state', '&lt;&gt;', 'close')]" on_change="on_change_account_id(account_id, user_id, unit_amount, journal_id)"/>
</xpath>
</field>
</record>
<!-- hr.analytic.timesheet inherited views -->
<record model="ir.ui.view" id="hr_timesheet_line_form_inherit">
<field name="name">hr.analytic.timesheet.form</field>
<field name="model">hr.analytic.timesheet</field>
<field name="type">form</field>
<field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@string='Information']//field[@name='account_id']" position="replace">
<field name="account_id" domain="[('type','=','normal'),('state', '&lt;&gt;', 'close')]" on_change="on_change_account_id(account_id, user_id, unit_amount, journal_id)" select="1"/>
</xpath>
</field>
</record>
<record model="ir.ui.view" id="hr_timesheet_line_form_inherit_2">
<field name="name">hr.analytic.timesheet.form</field>
<field name="model">hr.analytic.timesheet</field>
<field name="type">form</field>
<field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@string='Information']//field[@name='journal_id']" position="replace">
<field name="journal_id" select="1" required="1" on_change="on_change_journal_id(journal_id, account_id)"/>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@ -1,78 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.1rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-02-08 00:35+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: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""

View File

@ -1,89 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-01-05 20:55+0000\n"
"Last-Translator: kifcaliph <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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "يومية تحليلية"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "قيمة الفواتير لكل يومية للحساب التحليلي هذا"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "حساب تحليلي"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "جدول العلاقة بين اليوميات ومعدلات الفواتير"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "قيمة الفاتورة لكل يومية"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "فاتورة"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "قيمة الفاتورة"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "خطأ! لا يمكنك إنشاء حسابات تحليلية متكررة."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "خط سجل الدوام"
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr "خطأ! العملة لابد و أن تكون مثل العملة للشركة المختارة"
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "القيم التحليلية للفواتير اليومية, حدد قيمة الفاتورة الافتراضية ليومية محددة"

View File

@ -1,93 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-03-01 20:24+0000\n"
"Last-Translator: Dimitar Markov <dimitar.markov@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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Аналитичен дневник"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Аналитична сметка"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Фактура"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "Грешка! Не можете да създавате рекурсивни аналитични сметки."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Ред в графика"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Невалиден XML за преглед на архитектурата"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "Името на обекта трябва да започва с \"x_\" и да не съдържа никакви специални "
#~ "символи!"
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr ""
#~ "Грешка! Валутата трябва да бъде същата като валутата на избраната компания"

View File

@ -1,86 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2010-08-03 00:19+0000\n"
"Last-Translator: Mantavya Gajjar (Open ERP) <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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Analitička knjiženja"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Cijana naplate po knjiženju za ovo Analitičko konto"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Analitičko konto"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Tabela relacija između knjiženja i cijene naplate"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Cijena po knjiženju"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Neodgovarajući XML za arhitekturu prikaza!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "Naziv objekta mora počinjati sa x_ i ne smije sadržavati specijalne znakove!"

View File

@ -1,133 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2009-09-29 06: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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Diari analític"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Taxa de facturació per diari per aquesta compte analítica"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Compte analític"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Taula de relació entre diaris i taxes de facturació"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Taxa de facturació per diari"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Factura"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Taxa de facturació"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "Error! No podeu crear comptes analítics recursius."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Línia del full de serveis"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML invàlid per a la definició de la vista!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "El nom de l'objecte ha de començar amb x_ i no contenir cap caràcter "
#~ "especial!"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Rati facturació diari analític"
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr ""
#~ "Error! La moneda ha de ser la mateixa que la moneda de la companyia "
#~ "seleccionada"
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "Taxa de facturació d'un diari analític. Defineix la taxa de facturació per "
#~ "defecte per a un diari en concret."
#~ msgid ""
#~ "\n"
#~ "\n"
#~ " This module allows you to define what is the default invoicing rate for "
#~ "a specific journal on a given account. This is mostly used when a user "
#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
#~ "filled... but the possibility to change these values is still available.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given as usual by the account data so that this module is "
#~ "perfectly compatible with older configurations.\n"
#~ "\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ " Aquest mòdul us permet definir el percentatge de facturació per a un "
#~ "cert diari en un compte donat. S'utilitza principalment quan un usuari "
#~ "codifica el seu full de serveis: els valors són recuperats i els camps són "
#~ "auto emplenats tot i que la possibilitat de canviar-los està encara "
#~ "disponible.\n"
#~ "\n"
#~ "Òbviament si no s'ha guardat dades per al compte actual, es proporciona el "
#~ "valor per defecte per a les dades del compte com sempre, pel que aquest "
#~ "mòdul és perfectament compatible amb configuracions anteriors.\n"
#~ "\n"
#~ " "

View File

@ -1,78 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""

View File

@ -1,79 +0,0 @@
# Danish translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-11-09 21:41+0000\n"
"Last-Translator: OpenERP Danmark / Henning Dinsen <Unknown>\n"
"Language-Team: Danish <da@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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Faktura"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""

View File

@ -1,133 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-01-13 19:15+0000\n"
"Last-Translator: Ferdinand @ Camptocamp <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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr "Die Rechnungsnummer muss je Firma eindeutig sein"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Analytisches Journal"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr "ungültige BBA Kommunikations Stuktur"
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Abrechnungsquote nach Journal"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Analytisches Konto"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Relation zwischen Journal und Abrechnungsquote"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Abrechnungsquote nach Journal"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Rechnung"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
"Bestätigte und abgerechnete Zeitaufzeichungen können nicht geändert werden"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Abrechnungsquote"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "Fehler ! Sie können keine rekursiven Analytische Konten definieren."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Zeiterfassung Positionen"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Fehlerhafter xml Code für diese Ansicht!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "Der Objekt Name muss mit einem x_ starten und darf keine Sonderzeichen "
#~ "beinhalten"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Analytisches Journal Verrechnungssatz"
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "Abrechnungsquote für analytische Buchungen. Definieren Sie einen "
#~ "Standardwert je spezifiziertem Journal."
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr "Fehler! Die Währung muss der Währung der gewählten Firma entsprechen"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ " This module allows you to define what is the default invoicing rate for "
#~ "a specific journal on a given account. This is mostly used when a user "
#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
#~ "filled... but the possibility to change these values is still available.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given as usual by the account data so that this module is "
#~ "perfectly compatible with older configurations.\n"
#~ "\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ " Diese Anwendung ermöglicht Ihnen die Definition einer Standard "
#~ "Abrechnungsquote für ein analytisches Konto bei Buchung im Kontext eines "
#~ "bestimmten Journals. Angewendet wird die Abrechnungsquote meistens, wenn ein "
#~ "Benutzer seine Zeiterfassung auf bestimmte Konten vornimmt. Dabei werden "
#~ "dann die Konten und Beträge automatisch vorausgefüllt, mit der Möglichkeit "
#~ "diese\n"
#~ "individuell anzupassen.\n"
#~ "\n"
#~ " Wenn keine Konfiguration bei der Eingabe eines Kontos gefunden wird, "
#~ "würde weiterhin der Standardwert des Kontos verwendet, so dass dieses Modul "
#~ "gleichzeitig kompatibel mit älteren Konfigurationseinstellungen ist.\n"
#~ "\n"
#~ " "

View File

@ -1,92 +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: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2010-12-29 10:33+0000\n"
"Last-Translator: Dimitris Andavoglou <dimitrisand@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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Ημερολόγιο Αναλυτικής"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr ""
"Ποσοστό Τιμολόγησης ανα Ημερολόγιο για αυτόν τον Αναλυτικό Λογαριασμό"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Αναλυτικός Λογαριασμός"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Πίνακας σχέσεων μεταξύ ημερολογίων και ποσοστών χρέωσης"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Ποσό Τιμολόγησης ανα Ημερολόγιο"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Τιμολόγιο"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Ποσό Τιμολόγησης"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Γραμμή Φύλλου Xρόνου Eργασίας"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Ποσό Τιμολόγησης Ημερολόγιου Αναλυτικής"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Άκυρο XML για Αρχιτεκτονική Όψης!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "Το όνομα του αντικειμένου θα πρέπει να ξεκινάει με x_ και να μην περιέχει "
#~ "ειδικούς χαρακτήρες!"

View File

@ -1,130 +0,0 @@
# English (United Kingdom) translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-01-23 13:36+0000\n"
"Last-Translator: mrx5682 <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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr "Invoice Number must be unique per Company!"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Analytic Journal"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr "Invalid BBA Structured Communication !"
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Billing Rate per Journal for this Analytic Account"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Analytic Account"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Relation table between journals and billing rates"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Invoicing Rate per Journal"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Invoice"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr "You cannot modify an entry in a Confirmed/Done timesheet !."
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Invoicing Rate"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "Error! You can not create recursive analytic accounts."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Timesheet Line"
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr ""
#~ "Error! The currency has to be the same as that of the selected company"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ " This module allows you to define what is the default invoicing rate for "
#~ "a specific journal on a given account. This is mostly used when a user "
#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
#~ "filled... but the possibility to change these values is still available.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given as usual by the account data so that this module is "
#~ "perfectly compatible with older configurations.\n"
#~ "\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ " This module allows you to define the default invoicing rate for a "
#~ "specific journal on a given account. This is mostly used when a user encodes "
#~ "their timesheet: the values are retrieved and the fields are auto-filled... "
#~ "but the possibility to change these values is still available.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given by the account data so that this module is perfectly "
#~ "compatible with older configurations.\n"
#~ "\n"
#~ " "
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Analytic Journal Billing Rate"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "The Object name must start with x_ and not contain any special characters!"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Invalid XML for View Architecture!"

View File

@ -1,133 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-01-11 10:47+0000\n"
"Last-Translator: Borja López Soilán (NeoPolus) <borjalopezsoilan@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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Diario analítico"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Tasa de facturación por diario para esta cuenta analítica"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Cuenta analítica"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Tabla de relación entre diarios y tasas de facturación"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Tasa de facturación por diario"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Factura"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Tasa de facturación"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "¡Error! No puede crear cuentas analíticas recursivas."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Línea hoja de servicios"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML inválido para la definición de la vista!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
#~ "especial!"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Tasa facturación diario analítico"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ " This module allows you to define what is the default invoicing rate for "
#~ "a specific journal on a given account. This is mostly used when a user "
#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
#~ "filled... but the possibility to change these values is still available.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given as usual by the account data so that this module is "
#~ "perfectly compatible with older configurations.\n"
#~ "\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ " Este módulo le permite definir el porcentaje de facturación para un "
#~ "cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
#~ "usuario codifica su hoja de servicios: los valores son recuperados y los "
#~ "campos son auto rellenados aunque la posibilidad de cambiar estos valores "
#~ "está todavía disponible.\n"
#~ "\n"
#~ " Obviamente si no se ha guardado datos para la cuenta actual, se "
#~ "proporciona el valor por defecto para los datos de la cuenta como siempre "
#~ "por lo que este módulo es perfectamente compatible con configuraciones "
#~ "anteriores.\n"
#~ "\n"
#~ " "
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr ""
#~ "¡Error! La divisa tiene que ser la misma que la establecida en la compañía "
#~ "seleccionada"
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "Tasa de facturación de un diario analítico. Define la tasa de facturación "
#~ "por defecto para un diario en concreto."

View File

@ -1,90 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2009-09-14 18:33+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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Libro Diario analítico"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Tasa de facturación por libro diario para esta cuenta analítica"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Cuenta Analítica"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Tabla de relación entre libros diarios y tasas de facturación"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Tasa de facturación por libro diario"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Tasa de facturación"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Tasa facturación del libro diario analítico"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML inválido para la definición de la vista!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún caracter "
#~ "especial!"

View File

@ -1,136 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-02-15 15:53+0000\n"
"Last-Translator: Freddy Gonzalez <freddy.gonzalez@clearcorp.co.cr>\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: 2012-02-16 05:06+0000\n"
"X-Generator: Launchpad (build 14781)\n"
"Language: \n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr "¡El número de factura debe ser único por compañía!"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Diario analítico"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr "¡Estructura de comunicación BBA no válida!"
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Tasa de facturación por diario para esta cuenta analítica"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Cuenta analítica"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Tabla de relación entre diarios y tasas de facturación"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Tasa de facturación por diario"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Factura"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
"No se puede modificar una entrada en un parte de horas Confirmado / ¡Ya "
"está!."
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Tasa de facturación"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "¡Error! No puede crear cuentas analíticas recursivas."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Línea hoja de servicios"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML inválido para la definición de la vista!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
#~ "especial!"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Tasa facturación diario analítico"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ " This module allows you to define what is the default invoicing rate for "
#~ "a specific journal on a given account. This is mostly used when a user "
#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
#~ "filled... but the possibility to change these values is still available.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given as usual by the account data so that this module is "
#~ "perfectly compatible with older configurations.\n"
#~ "\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ " Este módulo le permite definir el porcentaje de facturación para un "
#~ "cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
#~ "usuario codifica su hoja de servicios: los valores son recuperados y los "
#~ "campos son auto rellenados aunque la posibilidad de cambiar estos valores "
#~ "está todavía disponible.\n"
#~ "\n"
#~ " Obviamente si no se ha guardado datos para la cuenta actual, se "
#~ "proporciona el valor por defecto para los datos de la cuenta como siempre "
#~ "por lo que este módulo es perfectamente compatible con configuraciones "
#~ "anteriores.\n"
#~ "\n"
#~ " "
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr ""
#~ "¡Error! La divisa tiene que ser la misma que la establecida en la compañía "
#~ "seleccionada"
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "Tasa de facturación de un diario analítico. Define la tasa de facturación "
#~ "por defecto para un diario en concreto."

View File

@ -1,133 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-01-13 03:51+0000\n"
"Last-Translator: Cristian Salamea (Gnuthink) <ovnicraft@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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Diario analítico"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Tasa de facturación por diario para esta cuenta analítica"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Cuenta analítica"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Tabla de relación entre diarios y tasas de facturación"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Tasa de facturación por diario"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Factura"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Tasa de facturación"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "¡Error! No puede crear cuentas analíticas recursivas."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Línea hoja de servicios"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML inválido para la definición de la vista!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
#~ "especial!"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Tasa facturación diario analítico"
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "Tasa de facturación diario analítico. Define la tasa de facturación por "
#~ "defecto para un diario en concreto."
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr ""
#~ "¡Error! La divisa tiene que ser la misma que la establecida en la compañía "
#~ "seleccionada"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ " This module allows you to define what is the default invoicing rate for "
#~ "a specific journal on a given account. This is mostly used when a user "
#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
#~ "filled... but the possibility to change these values is still available.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given as usual by the account data so that this module is "
#~ "perfectly compatible with older configurations.\n"
#~ "\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ " Este módulo le permite definir el porcentaje de facturación para un "
#~ "cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
#~ "usuario codifica su hoja de servicios: los valores son recuperados y los "
#~ "campos son auto rellenados aunque la posibilidad de cambiar estos valores "
#~ "está todavía disponible.\n"
#~ "\n"
#~ " Obviamente si no se ha guardado datos para la cuenta actual, se "
#~ "proporciona el valor por defecto para los datos de la cuenta como siempre "
#~ "por lo que este módulo es perfectamente compatible con configuraciones "
#~ "anteriores.\n"
#~ "\n"
#~ " "

View File

@ -1,124 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-03 16:56+0000\n"
"PO-Revision-Date: 2011-01-11 10:47+0000\n"
"Last-Translator: Borja López Soilán (NeoPolus) <borjalopezsoilan@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: 2011-09-05 05:37+0000\n"
"X-Generator: Launchpad (build 13830)\n"
#. module: analytic_journal_billing_rate
#: model:ir.module.module,description:analytic_journal_billing_rate.module_meta_information
msgid ""
"\n"
"\n"
" This module allows you to define what is the default invoicing rate for "
"a specific journal on a given account. This is mostly used when a user "
"encodes his timesheet: the values are retrieved and the fields are auto-"
"filled... but the possibility to change these values is still available.\n"
"\n"
" Obviously if no data has been recorded for the current account, the "
"default value is given as usual by the account data so that this module is "
"perfectly compatible with older configurations.\n"
"\n"
" "
msgstr ""
"\n"
"\n"
" Este módulo le permite definir el porcentaje de facturación para un "
"cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
"usuario codifica su hoja de servicios: los valores son recuperados y los "
"campos son auto rellenados aunque la posibilidad de cambiar estos valores "
"está todavía disponible.\n"
"\n"
" Obviamente si no se ha guardado datos para la cuenta actual, se "
"proporciona el valor por defecto para los datos de la cuenta como siempre "
"por lo que este módulo es perfectamente compatible con configuraciones "
"anteriores.\n"
"\n"
" "
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Diario analítico"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Factura"
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Tasa de facturación por diario para esta cuenta analítica"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Cuenta analítica"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Tabla de relación entre diarios y tasas de facturación"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Tasa de facturación por diario"
#. module: analytic_journal_billing_rate
#: model:ir.module.module,shortdesc:analytic_journal_billing_rate.module_meta_information
msgid ""
"Analytic Journal Billing Rate, Define the default invoicing rate for a "
"specific journal"
msgstr ""
"Tasa de facturación de un diario analítico. Define la tasa de facturación "
"por defecto para un diario en concreto."
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid ""
"Error! The currency has to be the same as the currency of the selected "
"company"
msgstr ""
"¡Error! La divisa tiene que ser la misma que la establecida en la compañía "
"seleccionada"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Tasa de facturación"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "¡Error! No puede crear cuentas analíticas recursivas."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Línea hoja de servicios"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML inválido para la definición de la vista!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
#~ "especial!"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Tasa facturación diario analítico"

View File

@ -1,121 +0,0 @@
# Spanish (Paraguay) translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-03-07 23:16+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Paraguay) <es_PY@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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Diario analítico"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Tasa de facturación por diario para esta cuenta analítica"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Cuenta Analítica"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Tabla de relación entre diarios y tasas de facturación"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Tasa de facturación por diario"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Factura"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Tasa de facturación"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "¡Error! No puede crear cuentas analíticas recursivas."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Línea hoja de servicios"
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "Tasa de facturación diario analítico. Define la tasa de facturación por "
#~ "defecto para un diario en concreto."
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr ""
#~ "¡Error! La moneda debe ser la misma que la moneda de la compañía seleccionada"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ " This module allows you to define what is the default invoicing rate for "
#~ "a specific journal on a given account. This is mostly used when a user "
#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
#~ "filled... but the possibility to change these values is still available.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given as usual by the account data so that this module is "
#~ "perfectly compatible with older configurations.\n"
#~ "\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ " Este módulo le permite definir el porcentaje de facturación para un "
#~ "cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
#~ "usuario codifica su hoja de servicios: los valores son recuperados y los "
#~ "campos son auto rellenados aunque la posibilidad de cambiar estos valores "
#~ "está todavía disponible.\n"
#~ "\n"
#~ " Obviamente si no se ha guardado datos para la cuenta actual, se "
#~ "proporciona el valor por defecto para los datos de la cuenta como siempre "
#~ "por lo que este módulo es perfectamente compatible con configuraciones "
#~ "anteriores.\n"
#~ "\n"
#~ " "

View File

@ -1,124 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-03 16:56+0000\n"
"PO-Revision-Date: 2011-01-11 10:47+0000\n"
"Last-Translator: Borja López Soilán (NeoPolus) <borjalopezsoilan@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: 2011-09-05 05:37+0000\n"
"X-Generator: Launchpad (build 13830)\n"
#. module: analytic_journal_billing_rate
#: model:ir.module.module,description:analytic_journal_billing_rate.module_meta_information
msgid ""
"\n"
"\n"
" This module allows you to define what is the default invoicing rate for "
"a specific journal on a given account. This is mostly used when a user "
"encodes his timesheet: the values are retrieved and the fields are auto-"
"filled... but the possibility to change these values is still available.\n"
"\n"
" Obviously if no data has been recorded for the current account, the "
"default value is given as usual by the account data so that this module is "
"perfectly compatible with older configurations.\n"
"\n"
" "
msgstr ""
"\n"
"\n"
" Este módulo le permite definir el porcentaje de facturación para un "
"cierto diario en una cuenta dada. Se utiliza principalmente cuando un "
"usuario codifica su hoja de servicios: los valores son recuperados y los "
"campos son auto rellenados aunque la posibilidad de cambiar estos valores "
"está todavía disponible.\n"
"\n"
" Obviamente si no se ha guardado datos para la cuenta actual, se "
"proporciona el valor por defecto para los datos de la cuenta como siempre "
"por lo que este módulo es perfectamente compatible con configuraciones "
"anteriores.\n"
"\n"
" "
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Diario analítico"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Factura"
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Tasa de facturación por diario para esta cuenta analítica"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Cuenta analítica"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Tabla de relación entre diarios y tasas de facturación"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Tasa de facturación por diario"
#. module: analytic_journal_billing_rate
#: model:ir.module.module,shortdesc:analytic_journal_billing_rate.module_meta_information
msgid ""
"Analytic Journal Billing Rate, Define the default invoicing rate for a "
"specific journal"
msgstr ""
"Tasa de facturación de un diario analítico. Define la tasa de facturación "
"por defecto para un diario en concreto."
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid ""
"Error! The currency has to be the same as the currency of the selected "
"company"
msgstr ""
"¡Error! La divisa tiene que ser la misma que la establecida en la compañía "
"seleccionada"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Tasa de facturación"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "¡Error! No puede crear cuentas analíticas recursivas."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Línea hoja de servicios"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML inválido para la definición de la vista!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
#~ "especial!"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Tasa facturación diario analítico"

View File

@ -1,86 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2009-11-09 16:30+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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Analüütiline päevik"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Arve esitamise määr päeviku kohta sellel analüütilisel kontol"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Analüütiline konto"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Seoste tabel päevikute ja arve esitamise määrade vahel"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Arveldamise määr päeviku kohta"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Arveldamise määr"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Vigane XML vaate arhitektuurile!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !"

View File

@ -1,79 +0,0 @@
# Persian translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-12-18 17:01+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Persian <fa@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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""

View File

@ -1,91 +0,0 @@
# Finnish translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-08-08 07:40+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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Analyyttinen päiväkirja"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Veloitushinta päiväkirjoittain tälle analyyttiselle tilille"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Analyyttinen tili"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Suhdetaulu päiväkirjojen ja veloituhintojen välillä"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Veloitushinta päiväkirjoittain"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Lasku"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Laskutushinta"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "Virhe! Et voi luoda sisäkkäisiä analyyttisiä tilejä."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Tuntilistan rivi"
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr "Virhe! Valuutan tulee olla sama kun valitun yrityksen valutta."
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "Analyyttisen päiväkirjan veloitushinta, määrittele oletushinta tietylle "
#~ "päiväkirjalle"

View File

@ -1,133 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-01-18 16:44+0000\n"
"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) "
"<maxime.chambreuil@savoirfairelinux.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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Journal Analytique"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Taux de Facturation par Journal pour ce Compte Analytique"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Compte Analytique"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Tableau de Relations entre les journaux et les taux de Facturations"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Taux de Facturation par Journal"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Facture"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Taux de Facturation"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "Erreur ! Vous ne pouvez pas créer de comptes analytiques récursifs."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Ligne de prestation"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML non valide pour l'architecture de la vue"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères "
#~ "spéciaux !"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Taux de Facturation des Journaux Analytiques"
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "Taux de facturation par journal analytique. Définir le taux de facturation "
#~ "par défaut pour un journal donné"
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr ""
#~ "Erreur ! La monnaie doit être la même que la monnaie de la société "
#~ "sélectionnée"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ " This module allows you to define what is the default invoicing rate for "
#~ "a specific journal on a given account. This is mostly used when a user "
#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
#~ "filled... but the possibility to change these values is still available.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given as usual by the account data so that this module is "
#~ "perfectly compatible with older configurations.\n"
#~ "\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ " Ce module vous permet de définir quel est le taux de facturation par "
#~ "défaut pour un journal spécifique et pour un compte donné. Ceci est surtout "
#~ "utilisé quand un utilisateur saisit sa feuille de temps : les valeurs sont "
#~ "récupérées et les champs sont automatiquement remplis... mais la possibilité "
#~ "de changer ces valeurs est toujours disponible.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given as usual by the account data so that this module is "
#~ "perfectly compatible with older configurations.\n"
#~ "\n"
#~ " "

View File

@ -1,132 +0,0 @@
# translation of analytic-journal-billing-rate-es.po to Galego
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
# Frco. Javier Rial Rodríguez <fjrial@cesga.es>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: analytic-journal-billing-rate-es\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-02-07 10:37+0000\n"
"Last-Translator: Alberto Luengo Cabanillas (Pexego) <alberto@pexego.es>\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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Diario analítico"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Taxa de facturación por diario para esta conta analítica"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Conta analítica"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Táboa de relación entre diarios e taxas de facturación"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Taxa de facturación por diario"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Factura"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Taxa de facturación"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "¡Erro! Non pode crear contas analíticas recorrentes."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Liña de parte de horas"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML non válido para a definición da vista!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "¡O nome do obxecto debe comezar con x_ y e non conter ningún carácter "
#~ "especial!"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Taxa facturación diario analítico"
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "Taxa Analítico de Diario de Facturación, Define o taxa de facturación por "
#~ "defecto para un diario específico"
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr "¡Erro! A divisa ten que se-la mesma ca da compañía seleccionada"
#~ msgid ""
#~ "\n"
#~ "\n"
#~ " This module allows you to define what is the default invoicing rate for "
#~ "a specific journal on a given account. This is mostly used when a user "
#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
#~ "filled... but the possibility to change these values is still available.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given as usual by the account data so that this module is "
#~ "perfectly compatible with older configurations.\n"
#~ "\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ " Este módulo permítelle establecer cal é a taxa de facturación por "
#~ "defecto para un diario específico nunha determinada conta. Isto é usado "
#~ "sobre todo cando un usuario cubre o seu parte de horas: os valores son "
#~ "recuperados e os campos son cubertos automáticamente... pero a posibilidade "
#~ "de modificar estes valores aínda está dispoñible.\n"
#~ "\n"
#~ " Por suposto, se ningún dato foi rexistrado para a conta actual, o valor "
#~ "por defecto é dado como de costume polos datos da conta para que este módulo "
#~ "sexa perfectamente compatible coas configuracións máis antigas.\n"
#~ "\n"
#~ " "

View File

@ -1,79 +0,0 @@
# Gujarati translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-03-06 18:22+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Gujarati <gu@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: 2012-03-07 05:13+0000\n"
"X-Generator: Launchpad (build 14907)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "વિશ્લેષણાત્મક ખાતું"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "ત્રુટિ! તમે અંદરોઅંદર વિશ્લેષણાત્મક ખાતાઓ ન બનાવી શકો."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""

View File

@ -1,83 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-12-08 15:46+0000\n"
"Last-Translator: Goran Kliska <gkliska@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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Dnevnik analitike"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Stupanj naplate po temeljnici za ovaj analitički račun"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Analitički konto"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Relacijska tablica između temeljnica i stupnjeva naplate"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Račun"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "Greška! Ne možete kreirati rekurzivna analitička konta."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr "Greška! Valuta ne odgovara valuti organizacije."

View File

@ -1,119 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-01-30 18:59+0000\n"
"Last-Translator: NOVOTRADE RENDSZERHÁZ ( novotrade.hu ) "
"<openerp@novotrade.hu>\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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Gyűjtőnapló"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "A gyűjtőkód naplónkénti számlázási rátája"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Gyűjtőkód"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Naplók és számlázási ráták közötti kapcsolati tábla"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Naplónkénti számlázási ráta"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Számla"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Számlázási ráta"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "Hiba! Nem hozhat létre rekurzív gyűjtőkódokat."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Munkaidő-kimutatás sora"
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr ""
#~ "Hiba! A pénznemnek meg kell egyeznie a kiválasztott vállalat pénznemével."
#~ msgid ""
#~ "\n"
#~ "\n"
#~ " This module allows you to define what is the default invoicing rate for "
#~ "a specific journal on a given account. This is mostly used when a user "
#~ "encodes his timesheet: the values are retrieved and the fields are auto-"
#~ "filled... but the possibility to change these values is still available.\n"
#~ "\n"
#~ " Obviously if no data has been recorded for the current account, the "
#~ "default value is given as usual by the account data so that this module is "
#~ "perfectly compatible with older configurations.\n"
#~ "\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ "\n"
#~ " Ez a modul lehetővé teszi annak meghatározását, hogy mi a gyűjtőkód "
#~ "naplójának alapértelmezett számlázási rátája. Leginkább akkor használják, "
#~ "amikor a felhasználó berögzíti a munkaidő-kimutatását: az értékek feljönnek "
#~ "és a mezők automatikusan kitöltődnek... De ezeket az értékeket meg lehet "
#~ "változtatni.\n"
#~ "\n"
#~ " Nyilvánvalóan, ha az aktuális gyűjtőkódra nem vittek be adatot, az "
#~ "alapértelmezett érték a könyvelési adatokból kerül meghatározásra.\n"
#~ "\n"
#~ " "
#~ msgid ""
#~ "Analytic Journal Billing Rate, Define the default invoicing rate for a "
#~ "specific journal"
#~ msgstr ""
#~ "Gyűjtőnapló számlázási ráta. Az adott naplóra meghatározza az "
#~ "alapértelmezett számlázási rátát."

View File

@ -1,86 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2010-08-03 00:27+0000\n"
"Last-Translator: Mantavya Gajjar (Open ERP) <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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Jurnal Analisis"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Akun Analisis"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML tidak sah untuk Menampilkan Arsitektur!"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "Nama Objek harus berawalan dengan x_ dan tidak mengandung karakter khusus !"

View File

@ -1,97 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2011-01-17 20:25+0000\n"
"Last-Translator: Nicola Riolini - Micronaet <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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "Giornale conti analitici"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "Tasso di fatturazione per Giornale per questo Conto Analitico"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "Conto analitico"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "Tabella di relazione tra Giornali e tassi di fatturazione"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "Tasso di fatturazione diviso per Giornale"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "Fattura"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "Tasso di fatturazione"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "Errore! Non è possibile creare conti analitici ricorsivi."
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "Linea del Timesheet"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr ""
#~ "Il nome dell'oggetto deve iniziare per x_ e non deve contenere caratteri "
#~ "speciali!"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML non valido per Visualizzare l'architettura!"
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "Giornale Conti Analitici Tasso di fatturazione"
#~ msgid ""
#~ "Error! The currency has to be the same as the currency of the selected "
#~ "company"
#~ msgstr ""
#~ "Errore! La valuta deve essere la stessa di quella impostata nell'azienda "
#~ "selezionata"

View File

@ -1,79 +0,0 @@
# Japanese translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-04-26 08:50+0000\n"
"Last-Translator: Tomomi Mengelberg <tomomi.mengelberg@aquasys.co.jp>\n"
"Language-Team: Japanese <ja@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: 2012-04-27 04:38+0000\n"
"X-Generator: Launchpad (build 15149)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr "請求書番号は会社ごとに固有である必要があります。"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "分析仕訳帳"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr "無効なBBAブロードバンドアクセス構造の通信"
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "この分析アカウントの仕訳ごとの請求割合"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "分析アカウント"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "仕訳帳と請求割合の関連表"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "仕訳ごとの請求割合"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr "請求書"
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr "確認済み/完了した勤務表の記入項目を変更することはできません。"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "請求割合"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr "エラー。反復した分析アカウントを作成することはできません。"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr "勤務表の行"

View File

@ -1,89 +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: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2009-09-08 14:10+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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "분석 저널"
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "이 분석 계정을 위한 저널 당 청구 비율"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr "분석 계정"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "저널과 청구 비율 간의 관계"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "저널 당 인보이스 비율"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr "청구 비율"
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""
#~ msgid "Analytic Journal Billing Rate"
#~ msgstr "분석 저널 청구 비율"
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
#~ msgstr "오브젝트 이름은 x_로 시작해야 하며, 특수 문자를 포함하면 안 됩니다 !"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "유효하지 않은 뷰 아키텍처를 위한 XML !"

View File

@ -1,78 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * analytic_journal_billing_rate
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2009-09-08 14:43+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: 2012-02-09 06:45+0000\n"
"X-Generator: Launchpad (build 14763)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""

View File

@ -1,79 +0,0 @@
# Latvian translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
"PO-Revision-Date: 2012-05-28 13:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Latvian <lv@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: 2012-05-29 04:46+0000\n"
"X-Generator: Launchpad (build 15316)\n"
#. module: analytic_journal_billing_rate
#: sql_constraint:account.invoice:0
msgid "Invoice Number must be unique per Company!"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.invoice:0
msgid "Invalid BBA Structured Communication !"
msgstr ""
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
#: model:ir.model,name:analytic_journal_billing_rate.model_account_analytic_account
msgid "Analytic Account"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr ""
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:hr.analytic.timesheet:0
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
msgstr ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
msgid "Invoicing Rate"
msgstr ""
#. module: analytic_journal_billing_rate
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""

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