[Merge]with: lp:openobject-addons

bzr revid: dbr@tinyerp.com-20111219093545-qm0qbxnkl9ycwgko
This commit is contained in:
DBR (OpenERP)
2011-12-19 15:05:45 +05:30
208 changed files with 17245 additions and 12680 deletions
+1 -2
View File
@@ -104,6 +104,7 @@ module named account_voucher.
'account_invoice_view.xml',
'partner_view.xml',
'data/account_data.xml',
'data/data_financial_report.xml',
'data/data_account_type.xml',
'account_invoice_workflow.xml',
'project/project_view.xml',
@@ -122,8 +123,6 @@ module named account_voucher.
'ir_sequence_view.xml',
'company_view.xml',
'board_account_view.xml',
"wizard/account_report_profit_loss_view.xml",
"wizard/account_report_balance_sheet_view.xml",
"edi/invoice_action_data.xml",
"account_bank_view.xml",
"account_pre_install.yml"
+58 -11
View File
@@ -130,6 +130,43 @@ account_payment_term_line()
class account_account_type(osv.osv):
_name = "account.account.type"
_description = "Account Type"
def _get_current_report_type(self, cr, uid, ids, name, arg, context=None):
obj_data = self.pool.get('ir.model.data')
obj_financial_report = self.pool.get('account.financial.report')
res = {}
financial_report_ref = {
'asset': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_assets0')[1], context=context),
'liability': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_liability0')[1], context=context),
'income': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_income0')[1], context=context),
'expense': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_expense0')[1], context=context),
}
for record in self.browse(cr, uid, ids, context=context):
res[record.id] = 'none'
for key, financial_report in financial_report_ref.items():
list_ids = [x.id for x in financial_report.account_type_ids]
if record.id in list_ids:
res[record.id] = key
return res
def _save_report_type(self, cr, uid, account_type_id, field_name, field_value, arg, context=None):
obj_data = self.pool.get('ir.model.data')
obj_financial_report = self.pool.get('account.financial.report')
#unlink if it exists somewhere in the financial reports related to BS or PL
financial_report_ref = {
'asset': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_assets0')[1], context=context),
'liability': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_liability0')[1], context=context),
'income': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_income0')[1], context=context),
'expense': obj_financial_report.browse(cr, uid, obj_data.get_object_reference(cr, uid, 'account','account_financial_report_expense0')[1], context=context),
}
for key, financial_report in financial_report_ref.items():
list_ids = [x.id for x in financial_report.account_type_ids]
if account_type_id in list_ids:
obj_financial_report.write(cr, uid, [financial_report.id], {'account_type_ids': [(3, account_type_id)]})
#write it in the good place
if field_value != 'none':
return obj_financial_report.write(cr, uid, [financial_report_ref[field_value].id], {'account_type_ids': [(4, account_type_id)]})
_columns = {
'name': fields.char('Account Type', size=64, required=True, translate=True),
'code': fields.char('Code', size=32, required=True),
@@ -139,19 +176,16 @@ class account_account_type(osv.osv):
'Balance' will generally be used for cash accounts.
'Detail' will copy each existing journal item of the previous year, even the reconciled ones.
'Unreconciled' will copy only the journal items that were unreconciled on the first day of the new fiscal year."""),
'sign': fields.selection([(-1, 'Reverse balance sign'), (1, 'Preserve balance sign')], 'Sign on Reports', required=True, help='For accounts that are typically more debited than credited and that you would like to print as negative amounts in your reports, you should reverse the sign of the balance; e.g.: Expense account. The same applies for accounts that are typically more credited than debited and that you would like to print as positive amounts in your reports; e.g.: Income account.'),
'report_type':fields.selection([
('none','/'),
('income','Profit & Loss (Income Accounts)'),
('expense','Profit & Loss (Expense Accounts)'),
('asset','Balance Sheet (Asset Accounts)'),
('liability','Balance Sheet (Liability Accounts)')
],'P&L / BS Category', select=True, readonly=False, help="This field is used to generate legal reports: profit and loss, balance sheet.", required=True),
'report_type': fields.function(_get_current_report_type, fnct_inv=_save_report_type, type='selection', string='P&L / BS Category',
selection= [('none','/'),
('income', _('Profit & Loss (Income account)')),
('expense', _('Profit & Loss (Expense account)')),
('asset', _('Balance Sheet (Asset account)')),
('liability', _('Balance Sheet (Liability account)'))], help="This field is used to generate legal reports: profit and loss, balance sheet.", required=True),
'note': fields.text('Description'),
}
_defaults = {
'close_method': 'none',
'sign': 1,
'report_type': 'none',
}
_order = "code"
@@ -2912,6 +2946,7 @@ class account_financial_report(osv.osv):
return res
def _get_balance(self, cr, uid, ids, name, args, context=None):
account_obj = self.pool.get('account.account')
res = {}
res_all = {}
for report in self.browse(cr, uid, ids, context=context):
@@ -2922,6 +2957,12 @@ class account_financial_report(osv.osv):
# it's the sum of balance of the linked accounts
for a in report.account_ids:
balance += a.balance
elif report.type == 'account_type':
# it's the sum of balance of the leaf accounts with such an account type
report_types = [x.id for x in report.account_type_ids]
account_ids = account_obj.search(cr, uid, [('user_type','in', report_types), ('type','!=','view')], context=context)
for a in account_obj.browse(cr, uid, account_ids, context=context):
balance += a.balance
elif report.type == 'account_report' and report.account_report_id:
# it's the amount of the linked report
res2 = self._get_balance(cr, uid, [report.account_report_id.id], 'balance', False, context=context)
@@ -2944,7 +2985,6 @@ class account_financial_report(osv.osv):
'parent_id': fields.many2one('account.financial.report', 'Parent'),
'children_ids': fields.one2many('account.financial.report', 'parent_id', 'Account Report'),
'sequence': fields.integer('Sequence'),
'note': fields.text('Notes'),
'balance': fields.function(_get_balance, 'Balance'),
'level': fields.function(_get_level, string='Level', store=True, type='integer'),
'type': fields.selection([
@@ -2954,13 +2994,20 @@ class account_financial_report(osv.osv):
('account_report','Report Value'),
],'Type'),
'account_ids': fields.many2many('account.account', 'account_account_financial_report', 'report_line_id', 'account_id', 'Accounts'),
'display_detail': fields.boolean('Display details', help='Display every account with its balance instead of the sum.'),
'display_detail': fields.selection([
('no_detail','No detail'),
('detail_flat','Display children flat'),
('detail_with_hierarchy','Display children with hierarchy')
], 'Display details'),
'account_report_id': fields.many2one('account.financial.report', 'Report Value'),
'account_type_ids': fields.many2many('account.account.type', 'account_account_financial_report_type', 'report_id', 'account_type_id', 'Account Types'),
'sign': fields.selection([(-1, 'Reverse balance sign'), (1, 'Preserve balance sign')], 'Sign on Reports', required=True, help='For accounts that are typically more debited than credited and that you would like to print as negative amounts in your reports, you should reverse the sign of the balance; e.g.: Expense account. The same applies for accounts that are typically more credited than debited and that you would like to print as positive amounts in your reports; e.g.: Income account.'),
}
_defaults = {
'type': 'sum',
'display_detail': 'detail_flat',
'sign': 1,
}
account_financial_report()
+5 -10
View File
@@ -261,7 +261,7 @@ class account_invoice(osv.osv):
'partner_bank_id': fields.many2one('res.partner.bank', 'Bank Account',
help='Bank Account Number, Company bank account if Invoice is customer or supplier refund, otherwise Partner bank account number.', readonly=True, states={'draft':[('readonly',False)]}),
'move_lines':fields.function(_get_lines, type='many2many', relation='account.move.line', string='Entry Lines'),
'residual': fields.function(_amount_residual, digits_compute=dp.get_precision('Account'), string='Residual',
'residual': fields.function(_amount_residual, digits_compute=dp.get_precision('Account'), string='To Pay',
store={
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line','move_id'], 50),
'account.invoice.tax': (_get_invoice_tax, None, 50),
@@ -610,15 +610,15 @@ class account_invoice(osv.osv):
res[r[0]].append( r[1] )
return res
def copy(self, cr, uid, id, default={}, context=None):
if context is None:
context = {}
def copy(self, cr, uid, id, default=None, context=None):
default = default or {}
default.update({
'state':'draft',
'number':False,
'move_id':False,
'move_name':False,
'internal_number': False,
'period_id': False,
})
if 'date_invoice' not in default:
default.update({
@@ -1642,12 +1642,7 @@ class res_partner(osv.osv):
}
def copy(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
if context is None:
context = {}
default = default or {}
default.update({'invoice_ids' : []})
return super(res_partner, self).copy(cr, uid, id, default, context)
+5 -7
View File
@@ -120,7 +120,7 @@
<field name="number"/>
<field name="partner_id" groups="base.group_user"/>
<field name="reference" invisible="1"/>
<field name="name"/>
<field name="name" invisible="1"/>
<field name="journal_id" invisible="1"/>
<field name="period_id" invisible="1" groups="account.group_account_user"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
@@ -269,15 +269,13 @@
<newline/>
<field name="date_invoice"/>
<field name="period_id" domain="[('state', '=', 'draft')]" groups="account.group_account_user" widget="selection"/>
<group colspan="2" col="1" groups="account.group_account_user">
<label align="0.0" string="(keep empty to use the current period)"/>
</group>
<field name="payment_term" widget="selection"/>
<newline/>
<field domain="[('company_id', '=', company_id),('type','=', 'receivable')]" name="account_id" groups="account.group_account_user"/>
<field name="name" groups="base.group_extended"/>
</group>
<notebook colspan="4">
<page string="Invoice">
<field domain="[('company_id', '=', company_id),('type','=', 'receivable')]" name="account_id" groups="account.group_account_user"/>
<field name="name"/>
<field name="payment_term" widget="selection"/>
<field colspan="4" name="invoice_line" nolabel="1" widget="one2many_list" context="{'type': type}"/>
<group col="1" colspan="2">
<field name="tax_line" nolabel="1">
+7 -7
View File
@@ -787,7 +787,6 @@
<group col="2" colspan="2">
<separator string="Reporting Configuration" colspan="4"/>
<field name="report_type" select="2"/>
<field name="sign" />
</group>
<group col="2" colspan="2">
<separator string="Closing Method" colspan="4"/>
@@ -2781,10 +2780,14 @@ action = pool.get('res.config').next(cr, uid, [], context)
<field name="parent_id"/>
<field name="sequence"/>
<field name="type"/>
<field name="sign"/>
</group>
<notebook colspan="4">
<page string="Report" attrs="{'invisible': [('state','!=','confirm')]}">
<field name="display_detail" attrs="{'invisible': [('type','!=','accounts')]}"/>
<notebook colspan="6">
<page string="Report">
<group colspan="4" col="4">
<field name="display_detail" attrs="{'invisible': [('type','not in',['accounts','account_type'])]}" colspan="2"/>
<label string="" colspan="2"/>
</group>
<newline/>
<field name="account_ids" nolabel="1" colspan="6" attrs="{'invisible': [('type', '!=', 'accounts')]}"/>
<newline/>
@@ -2793,9 +2796,6 @@ action = pool.get('res.config').next(cr, uid, [], context)
<field name="account_type_ids" nolabel="1" attrs="{'invisible': [('type', '!=', 'account_type')]}"/>
<newline/>
</page>
<page string="Notes" attrs="{'invisible': [('state','!=','confirm')]}">
<field name="note" nolabel="1" colspan="4"/>
</page>
</notebook>
</form>
</field>
+19 -85
View File
@@ -1,26 +1,6 @@
<openerp>
<data>
<!-- Types -->
<record model="account.account.type" id="conf_account_type_receivable">
<field name="name">Receivable</field>
<field name="code">receivable</field>
<field name="report_type">income</field>
<field name="close_method">unreconciled</field>
</record>
<record model="account.account.type" id="conf_account_type_payable">
<field name="name">Payable</field>
<field name="code">payable</field>
<field name="report_type">expense</field>
<field name="close_method">unreconciled</field>
</record>
<record model="account.account.type" id="conf_account_type_view">
<field name="name">View</field>
<field name="code">view</field>
<field name="close_method">none</field>
</record>
<record model="account.account.type" id="account_type_income_view1">
<field name="name">Income View</field>
<field name="code">view</field>
@@ -41,78 +21,32 @@
<field name="code">liability</field>
<field name="report_type">liability</field>
</record>
<record model="account.account.type" id="conf_account_type_income">
<field name="name">Income</field>
<field name="code">income</field>
<field name="report_type">income</field>
<field name="close_method">none</field>
</record>
<record model="account.account.type" id="conf_account_type_expense">
<field name="name">Expense</field>
<field name="code">expense</field>
<field name="report_type">expense</field>
<field name="close_method">none</field>
</record>
<record model="account.account.type" id="conf_account_type_tax">
<field name="name">Tax</field>
<field name="code">tax</field>
<field name="report_type">expense</field>
<field name="close_method">unreconciled</field>
<field name="report_type">expense</field>
</record>
<record model="account.account.type" id="conf_account_type_cash">
<field name="name">Cash</field>
<field name="code">cash</field>
<field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="conf_account_type_liability">
<field name="name">Liability</field>
<field name="code">liability</field>
<field name="report_type">liability</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="conf_account_type_asset">
<field name="name">Asset</field>
<field name="code">asset</field>
<field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="conf_account_type_equity">
<field name="name">Equity</field>
<field name="code">equity</field>
<field name="close_method">balance</field>
<field name="report_type">liability</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="conf_account_type_bnk">
<field name="name">Bank</field>
<field name="code">bank</field>
<field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="conf_account_type_chk">
<record model="account.account.type" id="conf_account_type_chk">
<field name="name">Check</field>
<field name="code">check</field>
<field name="report_type">asset</field>
<field name="close_method">balance</field>
<field name="report_type">asset</field>
</record>
<!-- Account Templates-->
<record id="conf_chart0" model="account.account.template">
<field name="code">0</field>
<field name="name">Configurable Account Chart</field>
<field eval="0" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="conf_account_type_view"/>
<field name="user_type" ref="data_account_type_view"/>
</record>
<!-- Balance Sheet -->
@@ -122,7 +56,7 @@
<field name="name">Balance Sheet</field>
<field ref="conf_chart0" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="conf_account_type_view"/>
<field name="user_type" ref="data_account_type_view"/>
</record>
<record id="conf_fas" model="account.account.template">
@@ -162,7 +96,7 @@
<field name="name">Purchased Stocks</field>
<field ref="conf_cas" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="conf_account_type_asset"/>
<field name="user_type" ref="data_account_type_asset"/>
</record>
<record id="conf_a_recv" model="account.account.template">
@@ -171,7 +105,7 @@
<field ref="conf_cas" name="parent_id"/>
<field name="type">receivable</field>
<field eval="True" name="reconcile"/>
<field name="user_type" ref="conf_account_type_receivable"/>
<field name="user_type" ref="data_account_type_receivable"/>
</record>
<record id="conf_ova" model="account.account.template">
@@ -179,7 +113,7 @@
<field name="name">Tax Paid</field>
<field ref="conf_cas" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="conf_account_type_asset"/>
<field name="user_type" ref="data_account_type_asset"/>
</record>
<record id="conf_bnk" model="account.account.template">
@@ -195,7 +129,7 @@
<field name="name">Opening Income Account</field>
<field ref="conf_cas" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="conf_account_type_income"/>
<field name="user_type" ref="data_account_type_income"/>
</record>
<record id="conf_cli" model="account.account.template">
@@ -212,7 +146,7 @@
<field ref="conf_cli" name="parent_id"/>
<field name="type">payable</field>
<field eval="True" name="reconcile"/>
<field name="user_type" ref="conf_account_type_payable"/>
<field name="user_type" ref="data_account_type_payable"/>
</record>
<record id="conf_iva" model="account.account.template">
@@ -220,7 +154,7 @@
<field name="name">Tax Received</field>
<field ref="conf_cli" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="conf_account_type_liability"/>
<field name="user_type" ref="data_account_type_liability"/>
</record>
<record id="conf_a_reserve_and_surplus" model="account.account.template">
@@ -229,7 +163,7 @@
<field ref="conf_cli" name="parent_id"/>
<field name="type">other</field>
<field eval="True" name="reconcile"/>
<field name="user_type" ref="conf_account_type_liability"/>
<field name="user_type" ref="data_account_type_liability"/>
</record>
<record id="conf_o_expense" model="account.account.template">
@@ -237,7 +171,7 @@
<field name="name">Opening Expense Account</field>
<field ref="conf_cli" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="conf_account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
</record>
<!-- Profit and Loss -->
@@ -247,7 +181,7 @@
<field name="name">Profit and Loss</field>
<field ref="conf_chart0" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="conf_account_type_view"/>
<field name="user_type" ref="data_account_type_view"/>
</record>
<record id="conf_rev" model="account.account.template">
@@ -263,7 +197,7 @@
<field name="name">Product Sales</field>
<field ref="conf_rev" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="conf_account_type_income"/>
<field name="user_type" ref="data_account_type_income"/>
</record>
<record id="conf_cos" model="account.account.template">
@@ -279,7 +213,7 @@
<field name="name">Cost of Goods Sold</field>
<field ref="conf_cos" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="conf_account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
</record>
<record id="conf_ovr" model="account.account.template">
@@ -295,7 +229,7 @@
<field name="name">Expenses</field>
<field ref="conf_ovr" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="conf_account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
</record>
<record id="conf_a_salary_expense" model="account.account.template">
@@ -303,7 +237,7 @@
<field name="name">Salary Expenses</field>
<field ref="conf_ovr" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="conf_account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
</record>
<!-- Taxes -->
@@ -30,21 +30,25 @@
<field name="name">Asset</field>
<field name="code">asset</field>
<field name="close_method">balance</field>
<field name="report_type">asset</field>
</record>
<record model="account.account.type" id="data_account_type_liability">
<field name="name">Liability</field>
<field name="code">liability</field>
<field name="close_method">balance</field>
<field name="report_type">liability</field>
</record>
<record model="account.account.type" id="data_account_type_income">
<field name="name">Income</field>
<field name="code">income</field>
<field name="close_method">none</field>
<field name="report_type">income</field>
</record>
<record model="account.account.type" id="data_account_type_expense">
<field name="name">Expense</field>
<field name="code">expense</field>
<field name="close_method">none</field>
<field name="report_type">expense</field>
</record>
</data>
</openerp>
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!--
Financial Reports
-->
<record id="account_financial_report_balancesheet0" model="account.financial.report">
<field name="name">Balance Sheet</field>
<field name="type">sum</field>
</record>
<record id="account_financial_report_assets0" model="account.financial.report">
<field name="name">Assets</field>
<field name="parent_id" ref="account_financial_report_balancesheet0"/>
<field name="display_detail">detail_with_hierarchy</field>
<field name="type">account_type</field>
</record>
<record id="account_financial_report_liability0" model="account.financial.report">
<field name="name">Liability</field>
<field name="parent_id" ref="account_financial_report_balancesheet0"/>
<field name="display_detail">detail_with_hierarchy</field>
<field name="type">account_type</field>
</record>
<record id="account_financial_report_profitandloss0" model="account.financial.report">
<field name="name">Profit and Loss</field>
<field name="type">sum</field>
</record>
<record id="account_financial_report_income0" model="account.financial.report">
<field name="name">Income</field>
<field name="parent_id" ref="account_financial_report_profitandloss0"/>
<field name="display_detail">detail_with_hierarchy</field>
<field name="type">account_type</field>
</record>
<record id="account_financial_report_expense0" model="account.financial.report">
<field name="name">Expense</field>
<field name="parent_id" ref="account_financial_report_profitandloss0"/>
<field name="display_detail">detail_with_hierarchy</field>
<field name="type">account_type</field>
</record>
</data>
</openerp>
+32 -79
View File
@@ -5,58 +5,11 @@
Account Type
-->
<record id="account_type_root" model="account.account.type">
<field name="name">View</field>
<field name="code">view</field>
<field name="close_method">none</field>
</record>
<record id="account_type_asset" model="account.account.type">
<field name="name">Asset</field>
<field name="code">asset</field>
<field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_receivable" model="account.account.type">
<field name="name">Receivable</field>
<field name="code">receivable</field>
<field name="report_type">asset</field>
<field name="close_method">unreconciled</field>
</record>
<record id="account_type_liability" model="account.account.type">
<field name="name">Liability</field>
<field name="code">liability</field>
<field name="report_type">liability</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_payable" model="account.account.type">
<field name="name">Payable</field>
<field name="code">payable</field>
<field name="report_type">liability</field>
<field name="close_method">unreconciled</field>
</record>
<record id="account_type_income" model="account.account.type">
<field name="name">Income</field>
<field name="code">income</field>
<field name="report_type">income</field>
<field name="close_method">none</field>
</record>
<record id="account_type_expense" model="account.account.type">
<field name="name">Expense</field>
<field name="code">expense</field>
<field name="report_type">expense</field>
<field name="close_method">none</field>
</record>
<record id="account_type_cash_equity" model="account.account.type">
<field name="name">Equity</field>
<field name="code">equity</field>
<field name="close_method">balance</field>
<field name="report_type">liability</field>
<field name="close_method">balance</field>
</record>
<record id="account_type_cash_moves" model="account.account.type">
<field name="name">Cash</field>
<field name="code">cash</field>
<field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
<!--
@@ -68,7 +21,7 @@
<field name="name">Chart For Automated Tests</field>
<field eval="0" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="account_type_root"/>
<field name="user_type" ref="data_account_type_view"/>
</record>
<!-- Balance Sheet -->
@@ -78,14 +31,14 @@
<field name="name">Balance Sheet - (test)</field>
<field ref="chart0" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="account_type_root"/>
<field name="user_type" ref="data_account_type_view"/>
</record>
<record model="account.account" id="assets_view">
<field name="name">Assets - (test)</field>
<field name="code">X10</field>
<field name="type">view</field>
<field name="user_type" ref="account_type_asset"/>
<field name="user_type" ref="data_account_type_asset"/>
<field name="reconcile" eval="False"/>
<field name="parent_id" ref="bal"/>
</record>
@@ -95,7 +48,7 @@
<field name="name">Fixed Assets - (test)</field>
<field ref="assets_view" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="account_type_asset"/>
<field name="user_type" ref="data_account_type_asset"/>
</record>
<record id="xfa" model="account.account">
@@ -103,7 +56,7 @@
<field name="name">Fixed Asset Account - (test)</field>
<field ref="fas" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account_type_asset"/>
<field name="user_type" ref="data_account_type_asset"/>
</record>
<record id="nca" model="account.account">
@@ -111,7 +64,7 @@
<field name="name">Net Current Assets - (test)</field>
<field ref="assets_view" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="account_type_asset"/>
<field name="user_type" ref="data_account_type_asset"/>
</record>
<record id="cas" model="account.account">
@@ -119,7 +72,7 @@
<field name="name">Current Assets - (test)</field>
<field ref="nca" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="account_type_asset"/>
<field name="user_type" ref="data_account_type_asset"/>
</record>
<record id="stk" model="account.account">
@@ -127,7 +80,7 @@
<field name="name">Purchased Stocks - (test)</field>
<field ref="cas" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account_type_asset"/>
<field name="user_type" ref="data_account_type_asset"/>
</record>
<record id="a_recv" model="account.account">
@@ -136,7 +89,7 @@
<field ref="cas" name="parent_id"/>
<field name="type">receivable</field>
<field eval="True" name="reconcile"/>
<field name="user_type" ref="account_type_receivable"/>
<field name="user_type" ref="data_account_type_receivable"/>
</record>
<record id="ova" model="account.account">
@@ -144,7 +97,7 @@
<field name="name">Output VAT - (test)</field>
<field ref="cas" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account_type_asset"/>
<field name="user_type" ref="data_account_type_asset"/>
</record>
<record id="bnk" model="account.account">
@@ -152,7 +105,7 @@
<field name="name">Bank Current Account - (test)</field>
<field ref="cas" name="parent_id"/>
<field name="type">liquidity</field>
<field name="user_type" ref="account_type_asset"/>
<field name="user_type" ref="data_account_type_asset"/>
</record>
<record id="cash" model="account.account">
@@ -160,7 +113,7 @@
<field name="name">Cash - (test)</field>
<field ref="cas" name="parent_id"/>
<field name="type">liquidity</field>
<field name="user_type" ref="account_type_asset"/>
<field name="user_type" ref="data_account_type_asset"/>
</record>
<record id="o_income" model="account.account">
@@ -168,14 +121,14 @@
<field name="name">Opening Income - (test)</field>
<field ref="cas" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account_type_income"/>
<field name="user_type" ref="data_account_type_income"/>
</record>
<record model="account.account" id="liabilities_view">
<field name="name">Liabilities - (test)</field>
<field name="code">X11</field>
<field name="type">view</field>
<field name="user_type" ref="account_type_liability"/>
<field name="user_type" ref="data_account_type_liability"/>
<field name="reconcile" eval="False"/>
<field name="parent_id" ref="bal"/>
</record>
@@ -185,7 +138,7 @@
<field name="name">Current Liabilities - (test)</field>
<field ref="liabilities_view" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="account_type_liability"/>
<field name="user_type" ref="data_account_type_liability"/>
</record>
<record id="a_pay" model="account.account">
@@ -194,7 +147,7 @@
<field ref="cli" name="parent_id"/>
<field name="type">payable</field>
<field eval="True" name="reconcile"/>
<field name="user_type" ref="account_type_payable"/>
<field name="user_type" ref="data_account_type_payable"/>
</record>
<record id="iva" model="account.account">
@@ -202,7 +155,7 @@
<field name="name">Input VAT - (test)</field>
<field ref="cli" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account_type_liability"/>
<field name="user_type" ref="data_account_type_liability"/>
</record>
<record id="rsa" model="account.account">
@@ -210,7 +163,7 @@
<field name="name">Reserve and Profit/Loss - (test)</field>
<field ref="cli" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account_type_liability"/>
<field name="user_type" ref="data_account_type_liability"/>
</record>
<record id="o_expense" model="account.account">
@@ -218,7 +171,7 @@
<field name="name">Opening Expense - (test)</field>
<field ref="cli" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
</record>
<!-- Profit and Loss -->
@@ -228,14 +181,14 @@
<field name="name">Profit and Loss - (test)</field>
<field ref="chart0" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="account_type_root"/>
<field name="user_type" ref="data_account_type_view"/>
</record>
<record model="account.account" id="income_view">
<field name="name">Income - (test)</field>
<field name="code">X20</field>
<field name="type">view</field>
<field name="user_type" ref="account_type_income"/>
<field name="user_type" ref="data_account_type_income"/>
<field name="reconcile" eval="False"/>
<field name="parent_id" ref="gpf"/>
</record>
@@ -244,7 +197,7 @@
<field name="name">Foreign Exchange Gain - (test)</field>
<field name="code">X201</field>
<field name="type">other</field>
<field name="user_type" ref="account_type_income"/>
<field name="user_type" ref="data_account_type_income"/>
<field name="reconcile" eval="False"/>
<field name="parent_id" ref="income_view"/>
</record>
@@ -254,7 +207,7 @@
<field name="name">Revenue - (test)</field>
<field ref="income_view" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="account_type_income"/>
<field name="user_type" ref="data_account_type_income"/>
</record>
<record id="a_sale" model="account.account">
@@ -262,14 +215,14 @@
<field name="name">Product Sales - (test)</field>
<field ref="rev" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account_type_income"/>
<field name="user_type" ref="data_account_type_income"/>
</record>
<record model="account.account" id="expense_view">
<field name="name">Expense - (test)</field>
<field name="code">X21</field>
<field name="type">view</field>
<field name="user_type" ref="account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
<field name="reconcile" eval="False"/>
<field name="parent_id" ref="gpf"/>
</record>
@@ -280,7 +233,7 @@
<field name="name">Cost of Sales - (test)</field>
<field ref="expense_view" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
</record>
<record id="cog" model="account.account">
@@ -288,7 +241,7 @@
<field name="name">Cost of Goods Sold - (test)</field>
<field ref="cos" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
</record>
<record id="ovr" model="account.account">
@@ -296,7 +249,7 @@
<field name="name">Overheads - (test)</field>
<field ref="expense_view" name="parent_id"/>
<field name="type">view</field>
<field name="user_type" ref="account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
</record>
<record id="a_expense" model="account.account">
@@ -304,14 +257,14 @@
<field name="name">Expenses - (test)</field>
<field ref="ovr" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
</record>
<record model="account.account" id="income_fx_expense">
<field name="name">Foreign Exchange Loss - (test)</field>
<field name="code">X2111</field>
<field name="type">other</field>
<field name="user_type" ref="account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
<field name="reconcile" eval="False"/>
<field name="parent_id" ref="ovr"/>
</record>
@@ -321,7 +274,7 @@
<field name="name">Salary Expenses - (test)</field>
<field ref="ovr" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account_type_expense"/>
<field name="user_type" ref="data_account_type_expense"/>
</record>
<!-- Properties -->
+4 -4
View File
@@ -10,7 +10,7 @@
<field name="arch" type="xml">
<tree toolbar="1" colors="red:state=='pending';grey:state in ('cancelled','close');blue:type=='view'" string="Analytic Accounts">
<field name="complete_name"/>
<field name="code"/>
<field name="code" groups="base.group_extended"/>
<field name="quantity"/>
<field name="date"/>
<field name="user_id" invisible="1"/>
@@ -59,7 +59,7 @@
<field name="arch" type="xml">
<tree colors="red:state=='pending';grey:state in ('close','cancelled');blue:type=='view'" string="Analytic account" toolbar="1">
<field name="name"/>
<field name="code"/>
<field name="code" groups="base.group_extended"/>
<field name="quantity"/>
<field name="debit"/>
<field name="credit"/>
@@ -82,8 +82,8 @@
<field name="arch" type="xml">
<form string="Analytic account">
<group colspan="4" col="6">
<field name="name" select="1" colspan="4"/>
<field name="code" select="1"/>
<field name="name" colspan="4"/>
<field name="code" groups="base.group_extended"/>
<field name="parent_id" on_change="on_change_parent(parent_id)" groups="base.group_extended"/>
<field name="company_id" on_change="on_change_company(company_id)" select="2" widget="selection" groups="base.group_multi_company" attrs="{'required': [('type','&lt;&gt;','view')]}"/>
<field name="type" select="2"/>
-3
View File
@@ -33,13 +33,10 @@ import account_print_overdue
import account_aged_partner_balance
#import tax_report
import account_tax_report
import account_balance_landscape
import account_invoice_report
import account_report
import account_entries_report
import account_analytic_entries_report
import account_balance_sheet
import account_profit_loss
import account_treasury_report
import account_financial_report
@@ -1,393 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
import locale
from report import report_sxw
parents = {
'tr':1,
'li':1,
'story': 0,
'section': 0
}
class account_balance_landscape(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(account_balance_landscape, self).__init__(cr, uid, name, context=context)
self.flag=1
self.dr_total= 0.00
self.cr_total= 0.00
self.parent_bal=0
self.status=0
self.done_total=0
self.baldiv={}
self.empty_parent=0
self.result_total = {}
self.total_for_perc=[]
self.localcontext.update({
'time': time,
'lines': self.lines,
'get_lines':self.get_lines,
'linesForTotal': self.linesForTotal,
'linesForYear': self.linesForYear,
'get_years':self.get_years,
'cal_total':self.cal_total,
'total_dr':self.total_dr,
'total_cr':self.total_cr
})
self.context = context
def linesForYear(self,form):
temp=0
years={}
global pattern
global show
global perc
global bal_zero
global ref_bal
pattern=form['compare_pattern']
if form['show_columns']!=1:
show=0
else:
show=form['show_columns']
if form['format_perc']!=1:
perc=0
else:
perc=form['format_perc']
if form['account_choice']=='bal_zero':
bal_zero=0
else:
bal_zero=1
ctx = self.context.copy()
if perc==1:
if form['select_account']!=False:
ref_ac=self.pool.get('account.account').browse(self.cr, self.uid, form['select_account'], ctx.copy())
if ref_ac.balance<>0.00:
ref_bal=ref_ac.balance
else:
ref_bal=1.00
else:
ref_bal='nothing'
else:
ref_bal='nothing'
self.done_total=1
self.total_for_perc=self.linesForTotal(form, ids={}, doneAccount={}, level=1)
self.done_total=0
for t1 in range(0,len(form['fiscalyear'])):
locale.setlocale(locale.LC_ALL, '')
self.result_total["sum_credit" + str(t1)]=locale.format("%.2f", self.result_total["sum_credit" + str(t1)], grouping=True)
self.result_total["sum_debit" + str(t1)]=locale.format("%.2f", self.result_total["sum_debit" + str(t1)], grouping=True)
for temp in range(0,len(form['fiscalyear'])):
fy=self.pool.get('account.fiscalyear').name_get(self.cr, self.uid, form['fiscalyear'][temp])
years["year"+str(temp)]=fy[0][1][12:16]
return [years]
def linesForTotal(self, form, ids={}, doneAccount={}, level=1):
if not self.done_total==1:
return [self.result_total]
accounts=[]
if not ids:
ids = self.ids
if not ids:
return []
ctx = self.context.copy()
for id in form['fiscalyear']:
tmp=[]
ctx['fiscalyear'] = id
ctx['periods'] = form['periods']
ctx['period_manner'] = form['period_manner']
ctx['state'] = form['context'].get('state','all')
tmp = self.pool.get('account.account').browse(self.cr, self.uid, ids, ctx.copy())
if tmp:
accounts.append(tmp)
merged_accounts=zip(*accounts)
# used to check for the frst record so all sum_credit and sum_debit r set to 0.00
if level==1:
doneAccount={}
for entry in merged_accounts:
if entry[0].id in doneAccount:
continue
doneAccount[entry[0].id] = 1
for k in range(0,len(entry)):
temp_credit=0.00
temp_debit=0.00
if entry[0].type <> 'view':
temp_credit+=entry[k].credit
temp_debit+=entry[k].debit
if self.flag==1:
self.result_total["sum_credit" + str(k)]=0.00
self.result_total["sum_debit" + str(k)]=0.00
if form['account_choice']=='bal_zero':
if temp_credit<>temp_debit:
self.result_total["sum_credit" + str(k)]+=temp_credit
self.result_total["sum_debit" + str(k)]+=temp_debit
else:
self.result_total["sum_credit" + str(k)]+=temp_credit
self.result_total["sum_debit" + str(k)]+=temp_debit
self.flag=2
if entry[0].child_id:
ids2 = [(x.code,x.id) for x in entry[0].child_id]
ids2.sort()
result_total_parent = self.linesForTotal(form, [x[1] for x in ids2], doneAccount, level+1)
return [self.result_total]
def lines(self, form, ids={}, done={}, level=1):
accounts=[]
if not ids:
ids = self.ids
if not ids:
return []
result = []
ctx = self.context.copy()
tmp1=[]
for id in form['fiscalyear']:
ctx['fiscalyear'] = id
ctx['periods'] = form['periods']
ctx['period_manner']=form['period_manner']
ctx['state'] = form['context'].get('state','all')
tmp1 = self.pool.get('account.account').browse(self.cr, self.uid, ids, ctx.copy())
if tmp1:
accounts.append(tmp1)
if level==1: #if parent is called,done is not empty when called again.
done={}
def cmp_code(x, y):
return cmp(x.code, y.code)
for n in range(0,len(accounts)):
accounts[n].sort(cmp_code)
merged_accounts=zip(*accounts)
for entry in merged_accounts:
j=0
checked=1
if form['account_choice']!='all': # if checked,include empty a/c;not otherwise
checked=0
if entry[0].id in done:
continue
done[entry[0].id] = 1
if entry[0].child_id: # this is for parent account,dont check 0 for it
checked=4
self.status=1 # for displaying it Bold
else:
self.status=0
if checked==0:
i=0
for i in range(0,len(entry)):
if bal_zero==0:
if entry[i].balance<>0.0:
checked=4
break
else:
checked=3
i=i+1
else:
if entry[i].credit <> 0.0 or entry[i].debit <> 0.0:
checked=4
break
else:
checked=3
i=i+1
if checked==3:
# this is the point where we skip those accounts which are encountered as empty ones
continue
self.empty_parent=0
else:
self.empty_parent=1
res = {
'code': entry[0].code,
'name': entry[0].name,
'level': level,
'status': self.status,
}
for j in range(0,len(entry)):
locale.setlocale(locale.LC_ALL, '')
res["debit"+str(j)]=locale.format("%.2f", entry[j].debit, grouping=True)
res["credit"+str(j)]=locale.format("%.2f", entry[j].credit, grouping=True)
res["balance"+str(j)]=locale.format("%.2f", entry[j].balance, grouping=True)
if j==0:
res["bal_cash"+str(j)]="0.00"
res["bal_perc"+str(j)]="0.00%"
else:
temp_cash=entry[j].balance - entry[j-1].balance
res["bal_cash"+str(j)]=locale.format("%.2f", temp_cash, grouping=True)
if entry[j-1].balance<>0.00:
temp_perc=(entry[j].balance - entry[j-1].balance )*100/entry[j-1].balance
else:
temp_perc=(entry[j].balance) *100
res["bal_perc"+str(j)]=locale.format("%.2f", temp_perc) + "%"
if ref_bal=='nothing':
if level==1:
self.parent_bal=1
else:
self.parent_bal=0
if self.parent_bal==1:
res["balance_perc"+str(j)]="/"
else:
if entry[j].balance==0.00:
if self.baldiv["baldiv"+str(level-1)+str(j)]<>0.00:
res["balance_perc"+str(j)]="0.00%"
else:
res["balance_perc"+str(j)]="/"
else:
if self.baldiv["baldiv"+str(level-1)+str(j)]<>0.00:
temp=self.baldiv["baldiv"+str(level-1)+str(j)]
temp1=(entry[j].balance * 100 )/ float(temp)
temp1=round(temp1,2)
res["balance_perc" + str(j)]=str(temp1)+"%"
else:
res["balance_perc"+str(j)]="/"
else:
res["balance_perc"+str(j)]=str( (entry[j].balance * 100 )/ float(ref_bal)) + "%"
result.append(res)
if entry[0].child_id:
for q in range(0,len(form['fiscalyear'])):
self.baldiv["baldiv"+str(level)+str(q)]=entry[q].balance
ids2 = [(x.code,x.id) for x in entry[0].child_id]
ids2.sort()
dir=[]
dir += self.lines(form, [x[1] for x in ids2], done, level+1)
if dir==[]:
for w in range(0,len(form['fiscalyear'])):
if entry[w].credit <> 0.0 or entry[w].debit <> 0.0 or entry[w].balance<>0.00:
dont_pop=1
break
else:
dont_pop=0
if dont_pop==1:
result +=dir
else:
result.pop(-1) # here we pop up the parent having its children as emprty accounts
else:
result +=dir
return result
def get_years(self, form):
result =[]
res={}
for temp in range(0, len(form['fiscalyear'])):
res={}
fy=self.pool.get('account.fiscalyear').name_get(self.cr, self.uid, form['fiscalyear'][temp])
res['year']=fy[0][1]
res['last_str']=temp
result.append(res)
self.linesForYear(form)
return result
def get_lines(self, year_dict, form):
final_result = []
res = {}
line_l = self.lines(form)
self.cal_total(year_dict)
if line_l:
for l in line_l:
res = {}
res['code'] = l['code']
res['name'] = l['name']
res['level'] = l['level']
for k,v in l.items():
if k.startswith('debit'+str(year_dict['last_str'])):
res['debit'] = v
if k.startswith('credit'+str(year_dict['last_str'])):
res['credit'] = v
if k.startswith('balance'+str(year_dict['last_str'])) and not k.startswith('balance_perc'+str(year_dict['last_str'])):
res['balance'] =v
if k.startswith('balance_perc'+str(year_dict['last_str'])) and not k.startswith('balance'+str(year_dict['last_str'])):
res['balance_perc'] = v
if form['compare_pattern'] == 'bal_perc':
if k.startswith('bal_perc'+str(year_dict['last_str'])):
res['pattern'] = v
elif form['compare_pattern'] == 'bal_cash':
if k.startswith('bal_cash'+str(year_dict['last_str'])):
res['pattern'] = v
else:
res['pattern'] = ''
final_result.append(res)
return final_result
def cal_total(self, year_dict):
total_l = self.result_total
if total_l:
for k,v in total_l.items():
if k.startswith('sum_debit'+str(year_dict['last_str'])):
self.dr_total = v
elif k.startswith('sum_credit'+str(year_dict['last_str'])):
self.cr_total = v
else:
continue
return True
def total_dr(self):
return self.dr_total
def total_cr(self):
return self.cr_total
report_sxw.report_sxw('report.account.account.balance.landscape', 'account.account', 'addons/account/report/account_balance_landscape.rml', parser=account_balance_landscape, header="internal landscape")
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,317 +0,0 @@
<?xml version="1.0"?>
<document filename="Account Balance.pdf">
<template pageSize="(842.0,595.0)" title="Account Balance" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="28.0" y1="28.0" width="786" height="539"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Tiltle">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_header_account">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
<blockBackground colorName="#b3b3b3" start="0,0" stop="0,-1"/>
<blockBackground colorName="#b3b3b3" start="1,0" stop="1,-1"/>
<blockBackground colorName="#b3b3b3" start="2,0" stop="2,-1"/>
<blockBackground colorName="#b3b3b3" start="3,0" stop="3,-1"/>
<blockBackground colorName="#b3b3b3" start="4,0" stop="4,-1"/>
<blockBackground colorName="#b3b3b3" start="5,0" stop="5,-1"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<blockBackground colorName="#b3b3b3" start="0,0" stop="0,-1"/>
<blockBackground colorName="#b3b3b3" start="1,0" stop="1,-1"/>
<blockBackground colorName="#b3b3b3" start="2,0" stop="2,-1"/>
<blockBackground colorName="#b3b3b3" start="3,0" stop="3,-1"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
</blockTableStyle>
<blockTableStyle id="Table6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
</blockTableStyle>
<blockTableStyle id="Table5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#000000" start="4,0" stop="4,0"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
<blockBackground colorName="#cccccc" start="0,0" stop="0,-1"/>
<blockBackground colorName="#cccccc" start="1,0" stop="1,-1"/>
<blockBackground colorName="#cccccc" start="2,0" stop="2,-1"/>
<blockBackground colorName="#cccccc" start="3,0" stop="3,-1"/>
<blockBackground colorName="#cccccc" start="4,0" stop="4,-1"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica" fontSize="9.0" leading="11"/>
<paraStyle name="Footer" fontName="Helvetica"/>
<paraStyle name="Table Contents" fontName="Helvetica"/>
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="15" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_space" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<para style="terp_default_8">[[ repeatIn(get_years(data['form']), 'y') ]]</para>
<blockTable colWidths="785.0" style="Table_Tiltle">
<tr>
<td>
<para style="terp_header_Centre">Account Balance - [[ company.currency_id.name ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_space">
<font color="white"> </font>
</para>
<para style="terp_header">Year : [[ y['year'] ]]</para>
<blockTable colWidths="56.0,198.0,95.0,110.0,105.0,164.0" style="Table_header_account">
<tr>
<td>
<para style="terp_tblheader_Details">[[ data['form']['show_columns'] and 'Code' or removeParentNode('blockTable') ]]</para>
</td>
<td>
<para style="terp_tblheader_Details">Account Name </para>
</td>
<td>
<para style="terp_tblheader_Details">[[ data['form']['compare_pattern']!='none' and 'C.S.Y.T.(C./P)' or removeParentNode('font') ]]</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Debit</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Credit</para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Balance</para>
</td>
</tr>
</blockTable>
<para style="terp_default_2">
<font color="white"> </font>
</para>
<blockTable colWidths="56.0,198.0,206.0,268.0" style="Table1">
<tr>
<td>
<para style="terp_tblheader_Details">[[ data['form']['show_columns'] and removeParentNode('blockTable') or 'Code' ]]</para>
</td>
<td>
<para style="terp_tblheader_Details">Account Name </para>
</td>
<td>
<para style="terp_tblheader_Details"><font>[[ data['form']['compare_pattern']!='none' and 'C.S.Y.T.(C./P)' or removeParentNode('font') ]]</font></para>
</td>
<td>
<para style="terp_tblheader_Details_Centre">Balance</para>
</td>
</tr>
</blockTable>
<para style="terp_default_2">
<font color="white"> </font>
</para>
<section>
<para style="terp_default_8">[[ repeatIn(get_lines(y,data['form']), 'a') ]]</para>
<blockTable colWidths="56.0,197.0,94.0,110.0,106.0,162.0" style="Table4">
<tr>
<td>
<para style="terp_default_9">[[ (data['form']['format_perc'] or not data['form']['show_columns']) and removeParentNode('blockTable') ]] [[ a['code'] ]]</para>
</td>
<td>
<para style="terp_default_9"><font color="white">[['.....'*(a['level']-1) ]]</font><font>[[ a['name'] ]]</font></para>
</td>
<td>
<para style="terp_default_9">[[ a['pattern'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['debit'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['credit'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_2"/>
<blockTable colWidths="56.0,197.0,94.0,110.0,107.0,85.0,77.0" style="Table2">
<tr>
<td>
<para style="terp_default_9">[[ (not data['form']['format_perc'] or not data['form']['show_columns']) and removeParentNode('blockTable') ]] [[ a['code'] ]]</para>
</td>
<td>
<para style="terp_default_9"><font color="white">[['.....'*(a['level']-1) ]]</font> <font>[[ a['name'] ]]</font></para>
</td>
<td>
<para style="terp_default_9">[[ a['pattern'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['debit'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['credit'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['balance_perc'] ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_2">
<font color="white"> </font>
</para>
<blockTable colWidths="55.0,197.0,94.0,380.0" style="Table6">
<tr>
<td>
<para style="terp_default_9">[[ (data['form']['format_perc'] or data['form']['show_columns']) and removeParentNode('blockTable') ]] [[ a['code'] ]]</para>
</td>
<td>
<para style="terp_default_9"><font color="white">[['.....'*(a['level']-1) ]]</font><font> [[ a['name'] ]]</font></para>
</td>
<td>
<para style="terp_default_9">[[ a['pattern'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_2">
<font color="white"> </font>
</para>
<blockTable colWidths="54.0,197.0,94.0,275.0,106.0" style="Table5">
<tr>
<td>
<para style="terp_default_9">[[ (not data['form']['format_perc'] or data['form']['show_columns']) and removeParentNode('blockTable') ]] [[ a['code'] ]]</para>
</td>
<td>
<para style="terp_default_9"><font color="white">[['.....'*(a['level']-1) ]]</font> <font> [[ a['name'] ]]</font></para>
</td>
<td>
<para style="terp_default_9">[[ a['pattern'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['balance'] ]]</para>
</td>
<td>
<para style="terp_default_Right_9">[[ a['balance_perc'] ]]</para>
</td>
</tr>
</blockTable>
<para style="terp_default_2"/>
</section>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<blockTable colWidths="52.0,291.0,112.0,107.0,164.0" style="Table3">
<tr>
<td>
<para style="terp_default_9">[[ not data['form']['show_columns'] and removeParentNode('blockTable') ]] </para>
</td>
<td>
<para style="terp_tblheader_Details">Total :</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">[[ total_dr() ]]</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">[[ total_cr() ]]</para>
</td>
<td>
<para style="terp_default_Right_9">
<font color="white"> </font>
</para>
</td>
</tr>
</blockTable>
<para style="terp_default_space">
<font color="white"> </font>
</para>
<para style="terp_tblheader_Details">[[ data['form']['compare_pattern']!='none' and "C.S.Y.T.(C./P) : Compare Selected Years In Terms of Cash/Perc" or removeParentNode('font') ]]</para>
</story>
</document>
@@ -1,182 +0,0 @@
<?xml version="1.0"?>
<document filename="Account Balance.pdf">
<template pageSize="(1120.0,770.0)" title="Account Balance" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20" >
<pageTemplate id="first">
<frame id="first" x1="22.0" y1="31.0" width="1080" height="680"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
<blockBackground colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
<blockBackground colorName="#e6e6e6" start="2,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
<blockBackground colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table61">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="red"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
</blockTableStyle>
<blockTableStyle id="Table5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica" fontSize="12.0" leading="18" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT"/>
<paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="10" alignment="RIGHT"/>
<paraStyle name="P4" fontName="Helvetica" fontSize="9.0" alignment="CENTER"/>
<paraStyle name="P5" fontName="Helvetica" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P6" fontName="Helvetica" fontSize="9.0" leading="12" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P7" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
<paraStyle name="P8" fontName="Helvetica" alignment="CENTER"/>
<paraStyle name="P9" fontName="Helvetica" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P10" fontName="Helvetica" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P11" fontName="Helvetica" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P12" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P13" rightIndent="17.0" leftIndent="-0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="1.0"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Contents" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
</stylesheet>
<story>
<blockTable colWidths="143.0,226.0,156.0" repeatRows="1" style="Table1">
<tr>
<td>
<para style="Table Contents">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P1">Account Balance</para>
</td>
<td>
<para style="P3">
<font color="white"> </font>
</para>
</td>
</tr>
<tr>
<td>
<para style="Table Contents">[[ company.name ]]</para>
</td>
<td>
<para style="P4">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P5">Currency: [[ company.currency_id.name ]]</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<para style="P8">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
<para style="P8">
<font color="white"> </font>
</para>
<section>
<para style="P13"> [[repeatIn(linesForYear(data['form']),'year_header',td=len(data['form']['fiscalyear'][0][2]),width=[126],value=['year'],type=['string']) ]]</para>
<blockTable colWidths="180.0" style="Table6">
<tr>
<td>
<para style="P1">Account Information</para>
</td>
</tr>
</blockTable>
</section>
<section>
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['Debit','Credit','Balance'],type=['lable','lable','lable']) ]]</para>
<blockTable colWidths="30.0,150.0" style="Table6">
<tr>
<td>
<para style="P1">Code</para>
</td>
<td>
<para style="P1">Account Name</para>
</td>
</tr>
</blockTable>
</section>
<section>
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[84,42],value=['Cash','%'],type=['lable','lable']) ]]</para>
<blockTable colWidths="180.0" style="Table5">
<tr>
<td>
<para style="P4"></para>
</td>
</tr>
</blockTable>
</section>
<para style="P8">
<font color="white"> </font>
</para>
<section>
<para style="P13">[[ repeatIn(lines(data['form']),'a',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['debit','credit','balance'],type=['string','string','string']) ]]</para>
<blockTable colWidths="0.0,28.0,152.0" style="Table5">
<tr>
<td>
<para style="P3"> </para>
</td>
<td>
<para style="P7">[[ a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['code'] ]]</para>
</td>
<td>
<para style="P2"><font color="white">[['.....'*(a['level']-1) ]]</font><font>[[ a['status']==1 and ( setTag('font','font',{'name':'Helvetica-bold'})) ]][[ a['name'] ]]</font></para>
</td>
</tr>
</blockTable>
</section>
<para style="P8">
<font color="white"> </font>
</para>
<section>
<para style="P13">[[ repeatIn(linesForTotal(data['form']),'total',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['sum_debit','sum_credit',''],type=['string','string','lable'] ) ]]</para>
<blockTable colWidths="180.0" style="Table6">
<tr>
<td>
<para style="P3">Total:[[ data['form']['show_columns']==0 and removeParentNode('section')]]</para>
</td>
</tr>
</blockTable>
</section>
<para style="Standard">
<font color="white"> </font>
</para>
</story>
</document>
@@ -1,179 +0,0 @@
<?xml version="1.0"?>
<document filename="Account Balance.pdf">
<template pageSize="(635.0,842.0)" title="Account Balance" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="15.0" y1="15.0" width="615" height="772"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
<blockBackground colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
<blockBackground colorName="#e6e6e6" start="2,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<blockBackground colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
<blockBackground colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table61">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="red"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
</blockTableStyle>
<blockTableStyle id="Table5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="GRID" colorName="black"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica" fontSize="12.0" leading="18" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0"/>
<paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="10" alignment="RIGHT" />
<paraStyle name="P4" fontName="Helvetica" fontSize="9.0" alignment="CENTER"/>
<paraStyle name="P5" fontName="Helvetica" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P6" fontName="Helvetica" fontSize="9.0" leading="12" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P7" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
<paraStyle name="P8" fontName="Helvetica" alignment="CENTER"/>
<paraStyle name="P9" fontName="Helvetica" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P10" fontName="Helvetica" fontSize="11.0" leading="14" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P11" fontName="Helvetica" fontSize="11.0" leading="14" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P12" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="P13" rightIndent="17.0" leftIndent="-0.0" fontName="Helvetica-Bold" fontSize="8.0" leading="10" spaceBefore="0.0" spaceAfter="1.0"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Contents" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
</stylesheet>
<story>
<blockTable colWidths="143.0,226.0,156.0" repeatRows="1" style="Table1">
<tr>
<td>
<para style="Table Contents"><font color="white"> </font></para>
</td>
<td>
<para style="P1">Account balance</para>
</td>
<td>
<para style="P3"><font color="white"> </font></para>
</td>
</tr>
<tr>
<td>
<para style="Table Contents">[[ company.name ]]</para>
</td>
<td>
<para style="P4"><font color="white"> </font></para>
</td>
<td>
<para style="P5">Currency: [[ company.currency_id.name ]]</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<para style="P8">Printing date: [[ time.strftime('%Y-%m-%d') ]] at [[ time.strftime('%H:%M:%S') ]]</para>
<para style="P8">
<font color="white"> </font>
</para>
<section>
<para style="P13"> [[repeatIn(linesForYear(data['form']),'year_header',td=len(data['form']['fiscalyear'][0][2]),width=[126],value=['year'],type=['string']) ]]</para>
<blockTable colWidths="190.0" style="Table6">
<tr>
<td>
<para style="P1">Account Information</para>
</td>
</tr>
</blockTable>
</section>
<section>
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['Debit','Credit','Balance'],type=['lable','lable','lable']) ]]</para>
<blockTable colWidths="30.0,160.0" style="Table6">
<tr>
<td>
<para style="P1">Code</para>
</td>
<td>
<para style="P1">Account Name</para>
</td>
</tr>
</blockTable>
</section>
<section>
<para style="P13">[[ repeatIn([],'title',td=len(data['form']['fiscalyear'][0][2]),width=[84,42],value=['Cash','%'],type=['lable','lable']) ]]</para>
<blockTable colWidths="190.0" style="Table5">
<tr>
<td>
<para style="P4"><font color="white"> </font></para>
</td>
</tr>
</blockTable>
</section>
<para style="P8">
<font color="white"> </font>
</para>
<section>
<para style="P13">[[ repeatIn(lines(data['form']),'a',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['debit','credit','balance'],type=['string','string','string']) ]]</para>
<condPageBreak height="2cm"/>
<blockTable colWidths="0.0,28.0,162.0" style="Table5">
<tr>
<td>
<para style="P3">
<font color="white"> </font>
</para>
</td>
<td>
<para style="P7">[[ a['status']==1 and ( setTag('para','para',{'fontName':'Helvetica-bold'})) ]][[ a['code'] ]]</para>
</td>
<td>
<para style="P2"><font color="white">[['.....'*(a['level']-1) ]]</font><font>[[ a['status']==1 and ( setTag('font','font',{'name':'Helvetica-bold'})) ]][[ a['name'] ]]</font></para>
</td>
</tr>
</blockTable>
</section>
<para style="P8">
<font color="white"> </font>
</para>
<section>
<para style="P13">[[ repeatIn(linesForTotal(data['form']),'total',td=len(data['form']['fiscalyear'][0][2]),width=[42,42,42],value=['sum_debit','sum_credit',''],type=['string','string','lable'] ) ]]</para>
<blockTable colWidths="190.0" style="Table6">
<tr>
<td>
<para style="P3">Total:[[ data['form']['show_columns']==0 and removeParentNode('section')]]</para>
</td>
</tr>
</blockTable>
</section>
<para style="Standard">
<font color="white"> </font>
</para>
</story>
</document>
@@ -1,224 +0,0 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
import pooler
from report import report_sxw
from account.report import account_profit_loss
from common_report_header import common_report_header
from tools.translate import _
class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header):
def __init__(self, cr, uid, name, context=None):
super(report_balancesheet_horizontal, self).__init__(cr, uid, name, context=context)
self.obj_pl = account_profit_loss.report_pl_account_horizontal(cr, uid, name, context=context)
self.result_sum_dr = 0.0
self.result_sum_cr = 0.0
self.result = {}
self.res_bl = {}
self.result_temp = []
self.localcontext.update({
'time': time,
'get_lines': self.get_lines,
'get_lines_another': self.get_lines_another,
'get_company': self._get_company,
'get_currency': self._get_currency,
'sum_dr': self.sum_dr,
'sum_cr': self.sum_cr,
'get_data':self.get_data,
'get_pl_balance':self.get_pl_balance,
'get_fiscalyear': self._get_fiscalyear,
'get_account': self._get_account,
'get_start_period': self.get_start_period,
'get_end_period': self.get_end_period,
'get_sortby': self._get_sortby,
'get_filter': self._get_filter,
'get_journal': self._get_journal,
'get_start_date':self._get_start_date,
'get_end_date':self._get_end_date,
'get_company':self._get_company,
'get_target_move': self._get_target_move,
})
self.context = context
def set_context(self, objects, data, ids, report_type=None):
new_ids = ids
if (data['model'] == 'ir.ui.menu'):
new_ids = 'chart_account_id' in data['form'] and [data['form']['chart_account_id']] or []
objects = self.pool.get('account.account').browse(self.cr, self.uid, new_ids)
return super(report_balancesheet_horizontal, self).set_context(objects, data, new_ids, report_type=report_type)
def sum_dr(self):
if self.res_bl['type'] == _('Net Profit'):
self.result_sum_dr += self.res_bl['balance']*-1
return self.result_sum_dr
def sum_cr(self):
if self.res_bl['type'] == _('Net Loss'):
self.result_sum_cr += self.res_bl['balance']
return self.result_sum_cr
def get_pl_balance(self):
return self.res_bl
def get_data(self,data):
cr, uid = self.cr, self.uid
db_pool = pooler.get_pool(self.cr.dbname)
#Getting Profit or Loss Balance from profit and Loss report
self.obj_pl.get_data(data)
self.res_bl = self.obj_pl.final_result()
account_pool = db_pool.get('account.account')
currency_pool = db_pool.get('res.currency')
types = [
'liability',
'asset'
]
ctx = self.context.copy()
ctx['fiscalyear'] = data['form'].get('fiscalyear_id', False)
if data['form']['filter'] == 'filter_period':
ctx['period_from'] = data['form'].get('period_from', False)
ctx['period_to'] = data['form'].get('period_to', False)
elif data['form']['filter'] == 'filter_date':
ctx['date_from'] = data['form'].get('date_from', False)
ctx['date_to'] = data['form'].get('date_to', False)
ctx['state'] = data['form'].get('target_move', 'all')
cal_list = {}
pl_dict = {}
account_dict = {}
account_id = data['form'].get('chart_account_id', False)
account_ids = account_pool._get_children_and_consol(cr, uid, account_id, context=ctx)
accounts = account_pool.browse(cr, uid, account_ids, context=ctx)
if not self.res_bl:
self.res_bl['type'] = _('Net Profit')
self.res_bl['balance'] = 0.0
if self.res_bl['type'] == _('Net Profit'):
self.res_bl['type'] = _('Net Profit')
else:
self.res_bl['type'] = _('Net Loss')
pl_dict = {
'code': self.res_bl['type'],
'name': self.res_bl['type'],
'level': False,
'balance':self.res_bl['balance'],
}
for typ in types:
accounts_temp = []
for account in accounts:
if (account.user_type.report_type) and (account.user_type.report_type == typ):
account_dict = {
'id': account.id,
'code': account.code,
'name': account.name,
'level': account.level,
'balance': account.balance != 0 and account.balance * account.user_type.sign or account.balance,
'type': account.type,
}
currency = account.currency_id and account.currency_id or account.company_id.currency_id
if typ == 'liability' and account.type <> 'view' and (account.debit <> account.credit):
self.result_sum_dr += account.balance
if typ == 'asset' and account.type <> 'view' and (account.debit <> account.credit):
self.result_sum_cr += account.balance
if data['form']['display_account'] == 'movement':
if not currency_pool.is_zero(self.cr, self.uid, currency, account.credit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.debit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.balance):
accounts_temp.append(account_dict)
elif data['form']['display_account'] == 'not_zero':
if not currency_pool.is_zero(self.cr, self.uid, currency, account.balance):
accounts_temp.append(account_dict)
else:
accounts_temp.append(account_dict)
if account.id == data['form']['reserve_account_id']:
pl_dict['level'] = account['level'] + 1
accounts_temp.append(pl_dict)
self.result[typ] = accounts_temp
cal_list[typ]=self.result[typ]
if cal_list:
temp = {}
for i in range(0,max(len(cal_list['liability']),len(cal_list['asset']))):
if i < len(cal_list['liability']) and i < len(cal_list['asset']):
temp={
'type': cal_list['liability'][i]['type'],
'code': cal_list['liability'][i]['code'],
'name': cal_list['liability'][i]['name'],
'level': cal_list['liability'][i]['level'],
'balance':cal_list['liability'][i]['balance'],
'type1': cal_list['asset'][i]['type'],
'code1': cal_list['asset'][i]['code'],
'name1': cal_list['asset'][i]['name'],
'level1': cal_list['asset'][i]['level'],
'balance1':cal_list['asset'][i]['balance'],
}
self.result_temp.append(temp)
else:
if i < len(cal_list['asset']):
temp={
'type': '',
'code': '',
'name': '',
'level': False,
'balance':False,
'type1': cal_list['asset'][i]['type'],
'code1': cal_list['asset'][i]['code'],
'name1': cal_list['asset'][i]['name'],
'level1': cal_list['asset'][i]['level'],
'balance1':cal_list['asset'][i]['balance'],
}
self.result_temp.append(temp)
if i < len(cal_list['liability']):
temp={
'type': cal_list['liability'][i]['type'],
'code': cal_list['liability'][i]['code'],
'name': cal_list['liability'][i]['name'],
'level': cal_list['liability'][i]['level'],
'balance':cal_list['liability'][i]['balance'],
'type1': '',
'code1': '',
'name1': '',
'level1': False,
'balance1':False,
}
self.result_temp.append(temp)
return None
def get_lines(self):
return self.result_temp
def get_lines_another(self, group):
return self.result.get(group, [])
report_sxw.report_sxw('report.account.balancesheet.horizontal', 'account.account',
'addons/account/report/account_balance_sheet_horizontal.rml',parser=report_balancesheet_horizontal,
header='internal landscape')
report_sxw.report_sxw('report.account.balancesheet', 'account.account',
'addons/account/report/account_balance_sheet.rml',parser=report_balancesheet_horizontal,
header='internal')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,303 +0,0 @@
<?xml version="1.0"?>
<document filename="Balance Sheet.pdf">
<template pageSize="(595.0,842.0)" title="Balance Sheet" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Heading">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Company_Name">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Date_from_To">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Account_Line_Title">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="Table5">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Net_Profit_Loss">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,1" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table2_header">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="6,0" stop="6,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="6,0" stop="6,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="6,0" stop="6,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="7,0" stop="7,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="7,0" stop="7,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="7,0" stop="7,0"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="-1,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="0,0" stop="-1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="-1,-1"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica" fontSize="9.0" leading="11"/>
<paraStyle name="Footer" fontName="Times-Roman"/>
<paraStyle name="Table Contents" fontName="Times-Roman"/>
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Left" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_1_code" fontName="Helvetica-Bold" fontSize="9.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_1_name" fontName="Helvetica-Bold" fontSize="9.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_1_balance" fontName="Helvetica-Bold" fontSize="9.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_2_code" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_2_name" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="10.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_2_balance" fontName="Helvetica-Bold" fontSize="8.0" leftIndent=".0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_code" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_code_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_name" fontName="Helvetica" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_balance" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_balance_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_4_name" fontName="Helvetica" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_4_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<blockTableStyle id="Table1">
<blockTopPadding start="0,0" stop="-1,0" length="15"/>
<blockFont name="Helvetica-Bold" size="10.0" />
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,1" thickness="1"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockTopPadding start="0,0" stop="-1,0" length="10"/>
<blockAlignment value="LEFT"/>
<lineStyle kind="LINEBELOW" colorName="#666666" start="1,1" stop="1,1"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockValign value="TOP"/>
</blockTableStyle>
</stylesheet>
<images/>
<story>
<para style="Standard">
<font color="white"> </font>
</para>
<blockTable colWidths="539.0" style="Table_Company_Name">
<tr>
<td>
<para style="terp_header_Centre">Balance Sheet</para>
</td>
</tr>
</blockTable>
<para style="terp_default_8">[[ get_data(data) or removeParentNode('para') ]]</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<blockTable colWidths="120.0,100.0,140.0,90.0,90.0" style="Table2_header" >
<tr>
<td><para style="terp_tblheader_General_Centre">Chart of Accounts</para></td>
<td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td>
<td><para style="terp_tblheader_General_Centre">Filter By [[ data['form']['filter']!='filter_no' and get_filter(data) ]]</para></td>
<td><para style="terp_tblheader_General_Centre">Display Account</para></td>
<td><para style="terp_tblheader_General_Centre">Target Moves</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ get_account(data) or removeParentNode('para') ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para></td>
<td><para style="terp_default_Centre_8">[[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] </para>
<blockTable colWidths="60.0,60.0" style="Table3">[[ data['form']['filter']=='filter_date' or removeParentNode('blockTable') ]]
<tr>
<td><para style="terp_tblheader_Details_Centre">Start Date</para></td>
<td><para style="terp_tblheader_Details_Centre">End Date</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ formatLang(get_start_date(data),date=True) ]]</para></td>
<td><para style="terp_default_Centre_8">[[ formatLang(get_end_date(data),date=True) ]]</para></td>
</tr>
</blockTable>
<blockTable colWidths="65.0,60.0" style="Table3">[[ data['form']['filter']=='filter_period' or removeParentNode('blockTable') ]]
<tr>
<td><para style="terp_tblheader_Details_Centre">Start Period</para></td>
<td><para style="terp_tblheader_Details_Centre">End Period</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ get_start_period(data) or removeParentNode('para') ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_end_period(data) or removeParentNode('para') ]]</para></td>
</tr>
</blockTable>
</td>
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
<td><para style="terp_default_Centre_8">[[ get_target_move(data) ]] </para></td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<para style="Standard">
<font color="white"> </font>
</para>
<blockTable colWidths="539.0" style="Table_Company_Name">
<tr>
<td>
<para style="terp_header_Left">Assets</para>
</td>
</tr>
</blockTable>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<blockTable colWidths="100.0,326.0,113.0" style="Table_Account_Line_Title" repeatRows="1">
<tr>
<td>
<para style="terp_default_Bold_9">Code</para>
</td>
<td>
<para style="terp_default_Bold_9">Account</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Balance</para>
</td>
</tr>
<tr style="Table3">
[[ repeatIn(get_lines_another('asset'),'a' ) ]]
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,a['level']))}) ]]
<td><para style="terp_level_3_code">[[ (a['type'] =='view' and a['level'] &gt;= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_code'}) ]]<i>[[ a['code'] ]]</i></para></td>
<td><para style="terp_level_3_name">[[ (a['type'] =='view' and a['level'] &gt;= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a['level']))+'_name'}) ]][[ a['name'] ]]</para></td>
<td>[[ (a['level'] &lt;&gt;2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a['type'] =='view' and a['level'] &gt;= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_balance'}) ]][[ formatLang(a['balance'], currency_obj = company.currency_id) ]]</para></td>
<td>[[ a['level'] == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a['balance'], currency_obj = company.currency_id) ]]</u></para></td>
</tr>
</blockTable>
<blockTable colWidths="426.0,113.0" style="Table_Net_Profit_Loss">
<tr>
<td>
<para style="terp_default_Bold_9">Balance:</para>
</td>
<td>
<para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_cr(), currency_obj = company.currency_id) ]]</u></para>
</td>
</tr>
</blockTable>
<condPageBreak height="20cm"/>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<blockTable colWidths="539.0" style="Table_Company_Name">
<tr>
<td>
<para style="terp_header_Left">Liabilities</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="100.0,326.0,113.0" style="Table_Account_Line_Title" repeatRows="1">
<tr>
<td>
<para style="terp_default_Bold_9">Code</para>
</td>
<td>
<para style="terp_default_Bold_9">Account</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Balance</para>
</td>
</tr>
<tr style="Table3">
[[ repeatIn(get_lines_another('liability'),'a' ) ]]
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,a['level']))}) ]]
<td><para style="terp_level_3_code">[[ (a['type'] =='view' and a['level'] &gt;= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_code'}) ]]<i>[[ a['code'] ]]</i></para></td>
<td><para style="terp_level_3_name">[[ (a['type'] =='view' and a['level'] &gt;= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a['level']))+'_name'}) ]][[ a['name'] ]]</para></td>
<td>[[ (a['level'] &lt;&gt;2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a['type'] =='view' and a['level'] &gt;= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a['level']))+'_balance'}) ]][[ formatLang(a['balance'], currency_obj = company.currency_id) ]]</para></td>
<td>[[ a['level'] == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a['balance'], currency_obj = company.currency_id) ]]</u></para></td>
</tr>
</blockTable>
<blockTable colWidths="426.0,113.0" style="Table_Net_Profit_Loss">
<tr>
<td>
<para style="terp_default_Bold_9">Balance:</para>
</td>
<td>
<para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_dr(), currency_obj = company.currency_id) ]]</u></para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
</story>
</document>
@@ -1,250 +0,0 @@
<?xml version="1.0"?>
<document filename="Balance Sheet.pdf">
<template pageSize="(842.0,595.0)" title="Balance Sheet" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="28.0" y1="57.0" width="772" height="481"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Heading">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Company_Name">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Date_from_To">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Account_Line_Title">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,1" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_Main_Content">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Liability_side">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Asset_Side_Content">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Net_Profit_Loss">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table2_header">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="6,0" stop="6,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="6,0" stop="6,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="6,0" stop="6,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="7,0" stop="7,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="7,0" stop="7,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="7,0" stop="7,0"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P3" rightIndent="0.0" leftIndent="1.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P4" rightIndent="121.0" leftIndent="-1.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica" fontSize="9.0" leading="11"/>
<paraStyle name="Footer" fontName="Times-Roman"/>
<paraStyle name="Table Contents" fontName="Times-Roman"/>
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<para style="terp_header_Centre">Balance Sheet</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">[[ get_data(data) or removeParentNode('para') ]]</para>
<blockTable colWidths="250.0,100.0,150.0,120.0,150.0" style="Table2_header" >
<tr>
<td><para style="terp_tblheader_General_Centre">Chart of Accounts</para></td>
<td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td>
<td><para style="terp_tblheader_General_Centre">Filter By [[ data['form']['filter']!='filter_no' and get_filter(data) ]]</para></td>
<td><para style="terp_tblheader_General_Centre">Display Account</para></td>
<td><para style="terp_tblheader_General_Centre">Target Moves</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ get_account(data) or removeParentNode('para') ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para></td>
<td><para style="terp_default_Centre_8">[[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] </para>
<blockTable colWidths="70.0,70.0" style="Table3">[[ data['form']['filter']=='filter_date' or removeParentNode('blockTable') ]]
<tr>
<td><para style="terp_tblheader_Details_Centre">Start Date</para></td>
<td><para style="terp_tblheader_Details_Centre">End Date</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ formatLang(get_start_date(data),date=True) ]]</para></td>
<td><para style="terp_default_Centre_8">[[ formatLang(get_end_date(data),date=True) ]]</para></td>
</tr>
</blockTable>
<blockTable colWidths="70.0,70.0" style="Table3">[[ data['form']['filter']=='filter_period' or removeParentNode('blockTable') ]]
<tr>
<td><para style="terp_tblheader_Details_Centre">Start Period</para></td>
<td><para style="terp_tblheader_Details_Centre">End Period</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ get_start_period(data) or removeParentNode('para') ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_end_period(data) or removeParentNode('para') ]]</para></td>
</tr>
</blockTable>
</td>
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
<td><para style="terp_default_Centre_8">[[ get_target_move(data) ]]</para></td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<para style="Standard">
<font color="white"> </font>
</para>
<blockTable colWidths="80.0,210.16,100.32,80.0,210.16,100.32" style="Table_Account_Line_Title" repeatRows="1">
<tr>
<td>
<para style="terp_default_Bold_9">Code</para>
</td>
<td>
<para style="terp_default_Bold_9">Assets</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Balance</para>
</td>
<td>
<para style="terp_default_Bold_9">Code</para>
</td>
<td>
<para style="terp_default_Bold_9">Liabilities</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Balance</para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_9">
<font>[[ repeatIn(get_lines(),'a' ) ]] </font>[[ a['code1'] ]]<font>[[ a['level1']&lt;4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]</font>
</para>
</td>
<td>
<para style="terp_default_9">
<font color="white">[[ '. '*(a['level1']-1) ]]</font><font>[[ a['level1']&lt;4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name1'] ]]</font>
</para>
</td>
<td>
<para style="terp_default_Right_9">
<font>[[ a['level1']&lt;4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[ formatLang(a['balance1'], currency_obj=company.currency_id) ]]</font>
</para>
</td>
<td>
<para style="terp_default_9">
[[ a['code'] ]]<font>[[ ( a['level']&lt;4 or a['name']=='Net Profit') and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]</font>
</para>
</td>
<td>
<para style="terp_default_9">
<font color="white">[[ '. '*(a['level']-1) ]]</font>
<font>[[ ( a['level']&lt;4 or a['name']=='Net Profit') and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]]</font>
</para>
</td>
<td>
<para style="terp_default_Right_9">
<font>[[ ( a['level']&lt;4 or a['name']=='Net Profit') and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font>
<font>[[(a['code'] and a['name']) and formatLang(a['balance'], currency_obj=company.currency_id) or removeParentNode('font')]]</font>
</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="290.16,100.32,290.16,100.32" style="Table_Net_Profit_Loss">
<tr>
<td>
<para style="terp_default_Bold_9">Balance:</para>
</td>
<td>
<para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_cr(), currency_obj=company.currency_id) ]]</u></para>
</td>
<td>
<para style="terp_default_Bold_9">Balance:</para>
</td>
<td>
<para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_dr(), currency_obj=company.currency_id) ]]</u></para>
</td>
</tr>
</blockTable>
</story>
</document>
@@ -64,29 +64,30 @@ class report_account_common(report_sxw.rml_parse, common_report_header):
vals['balance_cmp'] = self.pool.get('account.financial.report').browse(self.cr, self.uid, report.id, context=data['form']['comparison_context']).balance
lines.append(vals)
account_ids = []
if report.type == 'accounts' and report.display_detail and report.account_ids:
if report.type == 'accounts' and report.account_ids:
account_ids = account_obj._get_children_and_consol(self.cr, self.uid, [x.id for x in report.account_ids])
elif report.type == 'account_type' and report.account_type_ids:
account_ids = account_obj.search(self.cr, self.uid, [('user_type','in', [x.id for x in report.account_type_ids])])
if account_ids:
for account in account_obj.browse(self.cr, self.uid, account_ids, context=data['form']['used_context']):
if account.type != 'view':
flag = False
vals = {
'name': account.code + ' ' + account.name,
'balance': account.balance != 0 and account.balance * account.user_type.sign or account.balance,
'type': 'account',
'level': 6,
'account_type': account.type,
}
if not currency_obj.is_zero(self.cr, self.uid, account.company_id.currency_id, vals['balance']):
if report.display_detail == 'detail_flat' and account.type == 'view':
continue
flag = False
vals = {
'name': account.code + ' ' + account.name,
'balance': account.balance != 0 and account.balance * report.sign or account.balance,
'type': 'account',
'level': report.display_detail == 'detail_with_hierarchy' and min(account.level,6) or 6,
'account_type': account.type,
}
if not currency_obj.is_zero(self.cr, self.uid, account.company_id.currency_id, vals['balance']):
flag = True
if data['form']['enable_filter']:
vals['balance_cmp'] = account_obj.browse(self.cr, self.uid, account.id, context=data['form']['comparison_context']).balance
if not currency_obj.is_zero(self.cr, self.uid, account.company_id.currency_id, vals['balance_cmp']):
flag = True
if data['form']['enable_filter']:
vals['balance_cmp'] = account_obj.browse(self.cr, self.uid, account.id, context=data['form']['comparison_context']).balance
if not currency_obj.is_zero(self.cr, self.uid, account.company_id.currency_id, vals['balance_cmp']):
flag = True
if flag:
lines.append(vals)
if flag:
lines.append(vals)
return lines
report_sxw.report_sxw('report.account.financial.report', 'account.financial.report',
@@ -130,15 +130,13 @@
<paraStyle name="terp_level_1_name" fontName="Helvetica-Bold" fontSize="9.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_1_balance" fontName="Helvetica-Bold" fontSize="9.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_2_name" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="10.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_2_balance" fontName="Helvetica-Bold" fontSize="8.0" leftIndent=".0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_name" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_balance" fontName="Helvetica-Bold" fontSize="8.0" leftIndent=".0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_2_balance" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="10.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_name" fontName="Helvetica" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_balance" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_balance_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_4_name" fontName="Helvetica" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_4_balance" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_5_name" fontName="Helvetica" fontSize="8.0" leftIndent="40.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_5_balance" fontName="Helvetica-Oblique" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_6_name" fontName="Helvetica" fontSize="8.0" leftIndent="50.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_6_balance" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_4_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<blockTableStyle id="Table1">
<blockTopPadding start="0,0" stop="-1,0" length="15"/>
@@ -229,13 +227,13 @@
<para style="terp_tblheader_Details_Right">Balance</para>
</td>
</tr>
<tr style="Table1">
<tr style="Table3">
[[ repeatIn(get_lines(data), 'a') ]]
[[ (a.get('level') &lt;&gt; 0) or removeParentNode('tr') ]]
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,'level' in a and a.get('level') or 1))}) ]]
<td><para style="terp_level_1_name">[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_name'}) ]] [[ a.get('name') ]]</para></td>
<td>[[ a.get('level') == 4 or removeParentNode('td') ]]<para style="terp_level_1_balance"><u>[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]]</u></para></td>
<td>[[ a.get('level') &lt;&gt; 4 or removeParentNode('td') ]]<para style="terp_level_1_balance">[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]]</para></td>
<td><para style="terp_level_3_name">[[ (a.get('account_type') =='view' and a.get('level') &gt;= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.get('level')))+'_name'}) ]][[ a.get('name') ]]</para></td>
<td>[[ (a.get('level') &lt;&gt;2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.get('account_type') =='view' and a.get('level') &gt;= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_balance'}) ]][[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]]</para></td>
<td>[[ a.get('level') == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]]</u></para></td>
</tr>
</blockTable>
<para style="Standard">
@@ -258,11 +256,11 @@
[[ repeatIn(get_lines(data), 'a') ]]
[[ (a.get('level') &lt;&gt; 0) or removeParentNode('tr') ]]
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,'level' in a and a.get('level') or 1))}) ]]
<td><para style="terp_level_1_name">[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_name'}) ]] [[ a.get('name') ]]</para></td>
<td>[[ a.get('level') == 4 or removeParentNode('td') ]]<para style="terp_level_1_balance"><u>[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]]</u></para></td>
<td>[[ a.get('level') &lt;&gt; 4 or removeParentNode('td') ]]<para style="terp_level_1_balance">[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance'))]] [[company.currency_id.symbol]]</para></td>
<td>[[ a.get('level') == 4 or removeParentNode('td') ]]<para style="terp_level_1_balance"><u>[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance_cmp'))]] [[company.currency_id.symbol]]</u></para></td>
<td>[[ a.get('level') &lt;&gt; 4 or removeParentNode('td') ]]<para style="terp_level_1_balance">[[ setTag('para','para',{'style': 'terp_level_'+str(min(6,a['level']))+'_balance'}) ]][[ formatLang(a.get('balance_cmp'))]] [[company.currency_id.symbol]]</para></td>
<td><para style="terp_level_3_name">[[ (a.get('account_type') =='view' and a.get('level') &gt;= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.get('level')))+'_name'}) ]][[ a.get('name') ]]</para></td>
<td>[[ (a.get('level') &lt;&gt;2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.get('account_type') =='view' and a.get('level') &gt;= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_balance'}) ]][[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]]</para></td>
<td>[[ a.get('level') == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.get('balance'), currency_obj = company.currency_id) ]]</u></para></td>
<td>[[ (a.get('level') &lt;&gt;2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.get('account_type') =='view' and a.get('level') &gt;= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.get('level')))+'_balance'}) ]][[ formatLang(a.get('balance_cmp'), currency_obj = company.currency_id) ]]</para></td>
<td>[[ a.get('level') == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.get('balance_cmp'), currency_obj = company.currency_id) ]]</u></para></td>
</tr>
</blockTable>
<para style="Standard">
@@ -1,282 +0,0 @@
<?xml version="1.0"?>
<document filename="Profit and Loss.pdf">
<template pageSize="(842.0,595.0)" title="Profit And Loss" author="OpenERP S.A.(sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="28.0" y1="57.0" width="772" height="481"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Heading">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Company_Name">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Date_from_To">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_debit_credit">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Account_Line_Title">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,1" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_Main_Content">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Expense_Content">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Income_Content">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_Net_Profit_Loss">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_Final_Result">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table2_header">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="6,0" stop="6,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="6,0" stop="6,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="6,0" stop="6,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="7,0" stop="7,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="7,0" stop="7,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="7,0" stop="7,0"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" rightIndent="2.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica" fontSize="9.0" leading="11"/>
<paraStyle name="Footer" fontName="Times-Roman"/>
<paraStyle name="Table Contents" fontName="Times-Roman"/>
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<blockTable colWidths="539.0" style="Table_Company_Name">
<tr>
<td>
<para style="terp_header_Centre">Profit And Loss</para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<para style="P2">[[ get_data(data) or removeParentNode('para')]]</para>
<blockTable colWidths="250.0,100.0,150.0,120.0,150.0" style="Table2_header">
<tr>
<td><para style="terp_tblheader_General_Centre">Chart of Accounts</para></td>
<td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td>
<td><para style="terp_tblheader_General_Centre">Filter By [[ data['form']['filter']!='filter_no' and get_filter(data) ]]</para></td>
<td><para style="terp_tblheader_General_Centre">Display Account</para></td>
<td><para style="terp_tblheader_General_Centre">Target Moves</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ get_account(data) or removeParentNode('para') ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para></td>
<td><para style="terp_default_Centre_8">[[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] </para>
<blockTable colWidths="70.0,70.0" style="Table3">[[ data['form']['filter']=='filter_date' or removeParentNode('blockTable') ]]
<tr>
<td><para style="terp_tblheader_General_Centre">Start Date</para></td>
<td><para style="terp_tblheader_General_Centre">End Date</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ formatLang(get_start_date(data),date=True) ]]</para></td>
<td><para style="terp_default_Centre_8">[[ formatLang(get_end_date(data),date=True) ]]</para></td>
</tr>
</blockTable>
<blockTable colWidths="70.0,70.0" style="Table3">[[ data['form']['filter']=='filter_period' or removeParentNode('blockTable') ]]
<tr>
<td><para style="terp_tblheader_General_Centre">Start Period</para></td>
<td><para style="terp_tblheader_General_Centre">End Period</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ get_start_period(data) or removeParentNode('para') ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_end_period(data) or removeParentNode('para') ]]</para></td>
</tr>
</blockTable>
</td>
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
<td><para style="terp_default_Centre_8">[[ get_target_move(data) ]]</para></td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<blockTable colWidths="80.0,210.16,100.32,80.0,210.16,100.32" style="Table_Account_Line_Title" repeatRows="1">
<tr>
<td>
<para style="terp_default_Bold_9">Code</para>
</td>
<td>
<para style="terp_default_Bold_9">Expenses</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Balance</para>
</td>
<td>
<para style="terp_default_Bold_9">Code</para>
</td>
<td>
<para style="terp_default_Bold_9">Income</para>
</td>
<td>
<para style="P1">Balance</para>
</td>
</tr>
<tr>
<td>
<para style="terp_default_9">
<font>[[ repeatIn(get_lines(),'a' ) ]] </font>[[ a['code'] ]]<font>[[ a['level']&lt;4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]</font>
</para>
</td>
<td>
<para style="terp_default_9">
<font color="white">[[ '. '*(a['level']-1) ]]</font><font>[[ a['level']&lt;4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name'] ]]</font>
</para>
</td>
<td>
<para style="terp_default_Right_9"><font>[[ a['level']&lt;4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[ formatLang(abs(a['balance']), currency_obj=company.currency_id) ]]</font></para>
</td>
<td>
<para style="terp_default_9">
[[ a['code1'] ]]<font>[[ a['level1']&lt;4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]]</font>
</para>
</td>
<td>
<para style="terp_default_9">
<font color="white">[[ '. '*(a['level1']-1) ]]</font><font>[[ a['level1']&lt;4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a['name1'] ]]</font>
</para>
</td>
<td>
<para style="terp_default_Right_9"><font>[[ a['level']&lt;4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]]</font><font>[[(a['code1'] and a['name1']) and formatLang(abs(a['balance1']), currency_obj=company.currency_id) or removeParentNode('font') ]]</font></para>
</td>
</tr>
</blockTable>
<blockTable colWidths="80.0,210.16,100.32,80.0,210.16,100.32" style="Table_Net_Profit_Loss">
<tr>
<td>
<para style="terp_default_Bold_9"></para>
</td>
<td>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Profit' and final_result()['type'] or '' ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Profit' and formatLang(abs(final_result()['balance']), currency_obj=company.currency_id) ]]</para>
</td>
<td>
<para style="terp_default_Bold_9"></para>
</td>
<td>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Loss' and final_result()['type'] or '' ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Loss' and formatLang(abs(final_result()['balance']), currency_obj=company.currency_id) ]]</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="290.16,100.32,290.16,100.32" style="Table_Net_Profit_Loss">
<tr>
<td>
<para style="terp_default_Bold_9">Total:</para>
</td>
<td>
<para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_dr()), currency_obj=company.currency_id) ]]</u></para>
</td>
<td>
<para style="terp_default_Bold_9">Total:</para>
</td>
<td>
<para style="terp_default_Right_9_Bold"><u>[[ formatLang(abs(sum_cr()), currency_obj=company.currency_id) ]]</u></para>
</td>
</tr>
</blockTable>
</story>
</document>
@@ -1,198 +0,0 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
import pooler
from report import report_sxw
from common_report_header import common_report_header
from tools.translate import _
class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header):
def __init__(self, cr, uid, name, context=None):
super(report_pl_account_horizontal, self).__init__(cr, uid, name, context=context)
self.result_sum_dr = 0.0
self.result_sum_cr = 0.0
self.res_pl = {}
self.result = {}
self.result_temp = []
self.localcontext.update( {
'time': time,
'get_lines': self.get_lines,
'get_lines_another': self.get_lines_another,
'get_currency': self._get_currency,
'get_data': self.get_data,
'sum_dr': self.sum_dr,
'sum_cr': self.sum_cr,
'final_result': self.final_result,
'get_fiscalyear': self._get_fiscalyear,
'get_account': self._get_account,
'get_start_period': self.get_start_period,
'get_end_period': self.get_end_period,
'get_sortby': self._get_sortby,
'get_filter': self._get_filter,
'get_journal': self._get_journal,
'get_start_date':self._get_start_date,
'get_end_date':self._get_end_date,
'get_company':self._get_company,
'get_target_move': self._get_target_move,
})
self.context = context
def set_context(self, objects, data, ids, report_type=None):
new_ids = ids
if (data['model'] == 'ir.ui.menu'):
new_ids = 'chart_account_id' in data['form'] and [data['form']['chart_account_id']] or []
objects = self.pool.get('account.account').browse(self.cr, self.uid, new_ids)
return super(report_pl_account_horizontal, self).set_context(objects, data, new_ids, report_type=report_type)
def final_result(self):
return self.res_pl
def sum_dr(self):
if self.res_pl['type'] == _('Net Profit'):
self.result_sum_dr += self.res_pl['balance']
return self.result_sum_dr
def sum_cr(self):
if self.res_pl['type'] == _('Net Loss'):
self.result_sum_cr += self.res_pl['balance']
return self.result_sum_cr
def get_data(self, data):
cr, uid = self.cr, self.uid
db_pool = pooler.get_pool(self.cr.dbname)
account_pool = db_pool.get('account.account')
currency_pool = db_pool.get('res.currency')
types = [
'expense',
'income'
]
ctx = self.context.copy()
ctx['fiscalyear'] = data['form'].get('fiscalyear_id', False)
if data['form']['filter'] == 'filter_period':
ctx['period_from'] = data['form'].get('period_from', False)
ctx['period_to'] = data['form'].get('period_to', False)
elif data['form']['filter'] == 'filter_date':
ctx['date_from'] = data['form'].get('date_from', False)
ctx['date_to'] = data['form'].get('date_to', False)
cal_list = {}
account_id = data['form'].get('chart_account_id', False)
company_currency = account_pool.browse(self.cr, self.uid, account_id).company_id.currency_id
account_ids = account_pool._get_children_and_consol(cr, uid, account_id, context=ctx)
accounts = account_pool.browse(cr, uid, account_ids, context=ctx)
for typ in types:
accounts_temp = []
for account in accounts:
if (account.user_type.report_type) and (account.user_type.report_type == typ):
currency = account.currency_id and account.currency_id or account.company_id.currency_id
if typ == 'expense' and account.type <> 'view' and (account.debit <> account.credit):
self.result_sum_dr += account.debit - account.credit
if typ == 'income' and account.type <> 'view' and (account.debit <> account.credit):
self.result_sum_cr += account.credit - account.debit
if data['form']['display_account'] == 'movement':
if not currency_pool.is_zero(self.cr, self.uid, currency, account.credit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.debit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.balance):
accounts_temp.append(account)
elif data['form']['display_account'] == 'not_zero':
if not currency_pool.is_zero(self.cr, self.uid, currency, account.balance):
accounts_temp.append(account)
else:
accounts_temp.append(account)
if currency_pool.is_zero(self.cr, self.uid, company_currency, (self.result_sum_dr-self.result_sum_cr)):
self.res_pl['type'] = None
self.res_pl['balance'] = 0.0
elif self.result_sum_dr > self.result_sum_cr:
self.res_pl['type'] = _('Net Loss')
self.res_pl['balance'] = (self.result_sum_dr - self.result_sum_cr)
else:
self.res_pl['type'] = _('Net Profit')
self.res_pl['balance'] = (self.result_sum_cr - self.result_sum_dr)
self.result[typ] = accounts_temp
cal_list[typ] = self.result[typ]
if cal_list:
temp = {}
for i in range(0,max(len(cal_list['expense']),len(cal_list['income']))):
if i < len(cal_list['expense']) and i < len(cal_list['income']):
temp={
'code': cal_list['expense'][i].code,
'name': cal_list['expense'][i].name,
'level': cal_list['expense'][i].level,
'balance': cal_list['expense'][i].balance != 0 and \
cal_list['expense'][i].balance * cal_list['expense'][i].user_type.sign or \
cal_list['expense'][i].balance,
'code1': cal_list['income'][i].code,
'name1': cal_list['income'][i].name,
'level1': cal_list['income'][i].level,
'balance1': cal_list['income'][i].balance != 0 and \
cal_list['income'][i].balance * cal_list['income'][i].user_type.sign or \
cal_list['income'][i].balance,
}
self.result_temp.append(temp)
else:
if i < len(cal_list['income']):
temp={
'code': '',
'name': '',
'level': False,
'balance':False,
'code1': cal_list['income'][i].code,
'name1': cal_list['income'][i].name,
'level1': cal_list['income'][i].level,
'balance1': cal_list['income'][i].balance != 0 and \
cal_list['income'][i].balance * cal_list['income'][i].user_type.sign \
or cal_list['income'][i].balance,
}
self.result_temp.append(temp)
if i < len(cal_list['expense']):
temp={
'code': cal_list['expense'][i].code,
'name': cal_list['expense'][i].name,
'level': cal_list['expense'][i].level,
'balance': cal_list['expense'][i].balance != 0 and \
cal_list['expense'][i].balance * cal_list['expense'][i].user_type.sign \
or cal_list['expense'][i].balance,
'code1': '',
'name1': '',
'level1': False,
'balance1':False,
}
self.result_temp.append(temp)
return None
def get_lines(self):
return self.result_temp
def get_lines_another(self, group):
return self.result.get(group, [])
report_sxw.report_sxw('report.pl.account.horizontal', 'account.account',
'addons/account/report/account_profit_horizontal.rml',parser=report_pl_account_horizontal, header='internal landscape')
report_sxw.report_sxw('report.pl.account', 'account.account',
'addons/account/report/account_profit_loss.rml',parser=report_pl_account_horizontal, header='internal')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,314 +0,0 @@
<?xml version="1.0"?>
<document filename="Profit and Loss.pdf">
<template pageSize="(595.0,842.0)" title="Profit and Loss" author="OpenERP S.A. (sales@openerp.com)" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Heading">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Company_Name">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Date_from_To">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Account_Line_Title">
<blockAlignment value="LEFT"/>
<blockValign value="MIDDLE"/>
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockAlignment value="LEFT"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table6">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table_Net_Profit_Loss">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table_Final_Result">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
</blockTableStyle>
<blockTableStyle id="Table2_header">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,0" stop="-1,0"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="0,0" stop="0,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="0,0" stop="0,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="1,0" stop="1,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="1,0" stop="1,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="2,0" stop="2,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="2,0" stop="2,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="3,0" stop="3,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="3,0" stop="3,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="3,-1" stop="3,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="4,0" stop="4,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="4,0" stop="4,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="4,-1" stop="4,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="5,0" stop="5,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="5,0" stop="5,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="5,-1" stop="5,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="6,0" stop="6,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="6,0" stop="6,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="6,0" stop="6,0"/>
<lineStyle kind="LINEBELOW" colorName="#cccccc" start="6,-1" stop="6,-1"/>
<lineStyle kind="LINEBEFORE" colorName="#cccccc" start="7,0" stop="7,-1"/>
<lineStyle kind="LINEAFTER" colorName="#cccccc" start="7,0" stop="7,-1"/>
<lineStyle kind="LINEABOVE" colorName="#cccccc" start="7,0" stop="7,0"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" rightIndent="2.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="Standard" fontName="Times-Roman"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica" fontSize="9.0" leading="11"/>
<paraStyle name="Footer" fontName="Times-Roman"/>
<paraStyle name="Table Contents" fontName="Times-Roman"/>
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_1_code" fontName="Helvetica-Bold" fontSize="9.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_1_name" fontName="Helvetica-Bold" fontSize="9.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_1_balance" fontName="Helvetica-Bold" fontSize="9.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_2_code" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_2_name" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="10.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_2_balance" fontName="Helvetica-Bold" fontSize="8.0" leftIndent=".0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_code" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_code_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_name" fontName="Helvetica" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="20.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_balance" fontName="Helvetica" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_3_balance_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="0.0" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_4_name" fontName="Helvetica" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_level_4_name_bold" fontName="Helvetica-Bold" fontSize="8.0" leftIndent="30.0" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<blockTableStyle id="Table1">
<blockTopPadding start="0,0" stop="-1,0" length="15"/>
<blockFont name="Helvetica-Bold" size="10.0" />
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,1" thickness="1"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<blockTopPadding start="0,0" stop="-1,0" length="10"/>
<blockAlignment value="LEFT"/>
<lineStyle kind="LINEBELOW" colorName="#666666" start="1,1" stop="1,1"/>
</blockTableStyle>
<blockTableStyle id="Table3">
<blockValign value="TOP"/>
</blockTableStyle>
</stylesheet>
<images/>
<story>
<blockTable colWidths="539.0" style="Table_Company_Name">
<tr>
<td>
<para style="terp_header_Centre">Profit And Loss</para>
</td>
</tr>
</blockTable>
<para style="P2">[[ get_data(data) or removeParentNode('para')]]</para>
<para style="Standard">
<font color="white"> </font>
</para>
<blockTable colWidths="125.0,100.0,140.0,80.0,90.0" style="Table2_header">
<tr>
<td><para style="terp_tblheader_General_Centre">Chart of Accounts</para></td>
<td><para style="terp_tblheader_General_Centre">Fiscal Year</para></td>
<td><para style="terp_tblheader_General_Centre">Filter By [[ data['form']['filter']!='filter_no' and get_filter(data) ]]</para></td>
<td><para style="terp_tblheader_General_Centre">Display Account</para></td>
<td><para style="terp_tblheader_General_Centre">Target Moves</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ get_account(data) or removeParentNode('para') ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_fiscalyear(data) or '' ]]</para></td>
<td><para style="terp_default_Centre_8">[[ data['form']['filter']=='filter_no' and get_filter(data) or removeParentNode('para') ]] </para>
<blockTable colWidths="60.0,60.0" style="Table3">[[ data['form']['filter']=='filter_date' or removeParentNode('blockTable') ]]
<tr>
<td><para style="terp_tblheader_General_Centre">Start Date</para></td>
<td><para style="terp_tblheader_General_Centre">End Date</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ formatLang(get_start_date(data),date=True) ]]</para></td>
<td><para style="terp_default_Centre_8">[[ formatLang(get_end_date(data),date=True) ]]</para></td>
</tr>
</blockTable>
<blockTable colWidths="65.0,60.0" style="Table3">[[ data['form']['filter']=='filter_period' or removeParentNode('blockTable') ]]
<tr>
<td><para style="terp_tblheader_General_Centre">Start Period</para></td>
<td><para style="terp_tblheader_General_Centre">End Period</para></td>
</tr>
<tr>
<td><para style="terp_default_Centre_8">[[ get_start_period(data) or removeParentNode('para') ]]</para></td>
<td><para style="terp_default_Centre_8">[[ get_end_period(data) or removeParentNode('para') ]]</para></td>
</tr>
</blockTable>
</td>
<td><para style="terp_default_Centre_8">[[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']]</para></td>
<td><para style="terp_default_Centre_8">[[ get_target_move(data) ]] </para></td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<para style="terp_header">Expenses</para>
<blockTable colWidths="100.0,326.0,113.0" style="Table_Account_Line_Title" repeatRows="1">
<tr>
<td>
<para style="terp_default_Bold_9">Code</para>
</td>
<td>
<para style="terp_default_Bold_9">Account</para>
</td>
<td>
<para style="terp_tblheader_Details_Right">Balance</para>
</td>
</tr>
<tr style="Table3">
[[ repeatIn(get_lines_another('expense'),'a' ) ]]
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,a.level))}) ]]
<td><para style="terp_level_3_code">[[ (a.type =='view' and a.level &gt;= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_code'}) ]]<i>[[ a.code ]]</i></para></td>
<td><para style="terp_level_3_name">[[ (a.type =='view' and a.level &gt;= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.level))+'_name'}) ]][[ a.name ]]</para></td>
<td>[[ (a.level &lt;&gt;2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.type =='view' and a.level &gt;= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id) ]]</para></td>
<td>[[ a.level == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id) ]]</u></para></td>
</tr>
</blockTable>
<blockTable colWidths="100.0,326.0,113.0" style="Table_Net_Profit_Loss">
<tr>
<td>
<para style="terp_default_Bold_9"></para>
</td>
<td>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Profit' and final_result()['type'] or removeParentNode('blockTable') ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Profit' and formatLang(final_result()['balance'], currency_obj=company.currency_id) ]]</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="426.0,113.0" style="Table_Net_Profit_Loss">
<tr>
<td>
<para style="terp_default_Bold_9">Total:</para>
</td>
<td>
<para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_dr(), currency_obj=company.currency_id) ]]</u></para>
</td>
</tr>
</blockTable>
<condPageBreak height="20cm"/>
<para style="terp_default_Right_9_Bold">
<font color="white"> </font>
</para>
<para style="terp_header">Incomes</para>
<blockTable colWidths="100.0,326.0,113.0" style="Table_Account_Line_Title" repeatRows="1">
<tr>
<td>
<para style="terp_default_Bold_9">Code</para>
</td>
<td>
<para style="terp_default_Bold_9">Account</para>
</td>
<td>
<para style="P1">Balance</para>
</td>
</tr>
<tr style="Table3">
[[ repeatIn(get_lines_another('income'),'a' ) ]]
[[ setTag('tr','tr',{'style': 'Table'+str(min(3,a.level))}) ]]
<td><para style="terp_level_3_code">[[ (a.type =='view' and a.level &gt;= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_code'}) ]]<i>[[ a.code ]]</i></para></td>
<td><para style="terp_level_3_name">[[ (a.type =='view' and a.level &gt;= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.level))+'_name'}) ]][[ a.name ]]</para></td>
<td>[[ (a.level &lt;&gt;2) or removeParentNode('td') ]]<para style="terp_level_3_balance">[[ (a.type =='view' and a.level &gt;= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id) ]]</para></td>
<td>[[ a.level == 2 or removeParentNode('td') ]]<para style="terp_level_2_balance"><u>[[ formatLang(a.balance * a.user_type.sign, currency_obj=company.currency_id) ]]</u></para></td>
</tr>
</blockTable>
<blockTable colWidths="100.0,326.0,113.0" style="Table4">
<tr>
<td>
<para style="terp_default_Bold_9"></para>
</td>
<td>
<para style="terp_default_Bold_9">[[ final_result()['type'] == 'Net Loss' and final_result()['type'] or removeParentNode('blockTable') ]]</para>
</td>
<td>
<para style="terp_default_Right_9_Bold">[[ final_result()['balance'] and final_result()['type'] == 'Net Loss' and formatLang(final_result()['balance'], currency_obj=company.currency_id) ]]</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="426.0,113.0" style="Table4">
<tr>
<td>
<para style="terp_default_Bold_9">Total:</para>
</td>
<td>
<para style="terp_default_Right_9_Bold"><u>[[ formatLang(sum_cr(), currency_obj=company.currency_id) ]]</u></para>
</td>
</tr>
</blockTable>
<para style="Standard">
<font color="white"> </font>
</para>
<para style="terp_default_Right_9_Bold">
<font color="white"> </font>
</para>
</story>
</document>
+4 -22
View File
@@ -37,24 +37,15 @@
data_dict = {'chart_account_id':ref('account.chart0')}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_aged_balance_view',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Account Balance Sheet in Horizontal mode
-
!python {model: account.account}: |
ctx={}
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': True}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_bs_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Account Balance Sheet in Normal mode
-
!python {model: account.account}: |
ctx={}
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False}
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False, 'account_report_id': ref('account_financial_report_balancesheet0')}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_bs_report',wiz_data=data_dict, context=ctx, our_module='account')
test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Account Balance Report in Normal mode through the wizard - From Account Chart
-
@@ -147,18 +138,9 @@
!python {model: account.account}: |
ctx={}
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False,'target_move': 'all'}
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': False,'target_move': 'all', 'account_report_id': ref('account_financial_report_balancesheet0')}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Profit-Loss Report in Horizontal Mode
-
!python {model: account.account}: |
ctx={}
ctx.update({'model': 'account.account','active_ids':[ref('account.chart0')]})
data_dict = {'chart_account_id':ref('account.chart0'),'display_type': True,'target_move': 'all'}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_pl_report',wiz_data=data_dict, context=ctx, our_module='account')
test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Analytic Balance Report through the wizard
-
-2
View File
@@ -64,8 +64,6 @@ import account_report_account_balance
import account_change_currency
import account_report_balance_sheet
import account_report_profit_loss
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -38,9 +38,19 @@ class accounting_report(osv.osv_memory):
'date_to_cmp': fields.date("End Date"),
}
def _get_account_report(self, cr, uid, context=None):
menu_obj = self.pool.get('ir.ui.menu')
report_obj = self.pool.get('account.financial.report')
report_ids = []
if context.get('active_id'):
menu = menu_obj.browse(cr, uid, context.get('active_id')).name
report_ids = report_obj.search(cr, uid, [('name','ilike',menu)])
return report_ids and report_ids[0] or False
_defaults = {
'filter_cmp': 'filter_no',
'target_move': 'posted',
'account_report_id': _get_account_report,
}
def _build_comparison_context(self, cr, uid, ids, data, context=None):
@@ -40,6 +40,24 @@
<field name="target">new</field>
</record>
<menuitem
parent="account.menu_finance_legal_statement"
id="final_accounting_reports"
name="Accounting Reports"/>
<menuitem icon="STOCK_PRINT"
name="Profit And Loss"
action="account.action_account_report"
id="menu_account_pl_report"
parent="final_accounting_reports"/>
<menuitem icon="STOCK_PRINT"
name="Balance Sheet"
action="account.action_account_report"
groups="group_account_user,group_account_manager"
id="menu_account_bs_report"
parent="final_accounting_reports"/>
<menuitem icon="STOCK_PRINT"
name="Financial Report"
action="action_account_report"
@@ -1,85 +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 osv, fields
from tools.translate import _
class account_bs_report(osv.osv_memory):
"""
This wizard will provide the account balance sheet report by periods, between any two dates.
"""
_name = 'account.bs.report'
_inherit = "account.common.account.report"
_description = 'Account Balance Sheet Report'
def _get_def_reserve_account(self, cr, uid, context=None):
chart_id = self._get_account(cr, uid, context=context)
res = self.onchange_chart_id(cr, uid, [], chart_id, context=context)
if not res:
return False
return res['value']['reserve_account_id']
_columns = {
'display_type': fields.boolean("Landscape Mode"),
'reserve_account_id': fields.many2one('account.account', 'Reserve & Profit/Loss Account',
help='This account is used for transferring Profit/Loss (If It is Profit: Amount will be added, Loss : Amount will be deducted.), as calculated in Profit & Loss Report',
domain = [('type','=','other')]),
'journal_ids': fields.many2many('account.journal', 'account_bs_report_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
}
_defaults={
'display_type': False,
'journal_ids': [],
'reserve_account_id': _get_def_reserve_account,
}
def onchange_chart_id(self, cr, uid, ids, chart_id, context=None):
if not chart_id:
return {}
account = self.pool.get('account.account').browse(cr, uid, chart_id , context=context)
if not account.company_id.property_reserve_and_surplus_account:
return {'value': {'reserve_account_id': False}}
return {'value': {'reserve_account_id': account.company_id.property_reserve_and_surplus_account.id}}
def _print_report(self, cr, uid, ids, data, context=None):
if context is None:
context = {}
data['form'].update(self.read(cr, uid, ids, ['display_type','reserve_account_id'])[0])
if not data['form']['reserve_account_id']:
raise osv.except_osv(_('Warning'),_('Please define the Reserve and Profit/Loss account for current user company !'))
data = self.pre_print_report(cr, uid, ids, data, context=context)
if data['form']['display_type']:
return {
'type': 'ir.actions.report.xml',
'report_name': 'account.balancesheet.horizontal',
'datas': data,
}
else:
return {
'type': 'ir.actions.report.xml',
'report_name': 'account.balancesheet',
'datas': data,
}
account_bs_report()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,50 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="account_bs_report_view" model="ir.ui.view">
<field name="name">Account Balance Sheet</field>
<field name="model">account.bs.report</field>
<field name="type">form</field>
<field name="inherit_id" ref="account.account_common_report_view" />
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='chart_account_id']" position="replace">
<field name="chart_account_id" widget="selection" on_change="onchange_chart_id(chart_account_id)"/>
</xpath>
<xpath expr="//field[@name='journal_ids']" position="replace">
<field name="journal_ids" colspan="4" nolabel="1" required="0" readonly="1"/>
</xpath>
<xpath expr="/form/label[@string='']" position="replace">
<separator string="Balance Sheet" colspan="4"/>
<label nolabel="1" colspan="4" string="This report allows you to print or generate a pdf of your trial balance allowing you to quickly check the balance of each of your accounts in a single report"/>
</xpath>
<xpath expr="//field[@name='target_move']" position="after">
<field name="display_account"/>
<field name="reserve_account_id"/>
<field name="display_type"/>
<newline/>
</xpath>
</data>
</field>
</record>
<record id="action_account_bs_report" model="ir.actions.act_window">
<field name="name">Balance Sheet</field>
<field name="res_model">account.bs.report</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="account_bs_report_view"/>
<field name="target">new</field>
</record>
<menuitem icon="STOCK_PRINT"
name="Balance Sheet"
action="action_account_bs_report"
groups="group_account_user,group_account_manager"
id="menu_account_bs_report"
parent="final_accounting_reports"/>
</data>
</openerp>
@@ -1,62 +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 osv, fields
class account_pl_report(osv.osv_memory):
"""
This wizard will provide the account profit and loss report by periods, between any two dates.
"""
_inherit = "account.common.account.report"
_name = "account.pl.report"
_description = "Account Profit And Loss Report"
_columns = {
'display_type': fields.boolean("Landscape Mode"),
'journal_ids': fields.many2many('account.journal', 'account_pl_report_journal_rel', 'account_id', 'journal_id', 'Journals', required=True),
}
_defaults = {
'display_type': False,
'journal_ids': [],
}
def _print_report(self, cr, uid, ids, data, context=None):
if context is None:
context = {}
data = self.pre_print_report(cr, uid, ids, data, context=context)
data['form'].update(self.read(cr, uid, ids, ['display_type'])[0])
if data['form']['display_type']:
return {
'type': 'ir.actions.report.xml',
'report_name': 'pl.account.horizontal',
'datas': data,
}
else:
return {
'type': 'ir.actions.report.xml',
'report_name': 'pl.account',
'datas': data,
}
account_pl_report()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,49 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="account_pl_report_view" model="ir.ui.view">
<field name="name">Profit and Loss</field>
<field name="model">account.pl.report</field>
<field name="type">form</field>
<field name="inherit_id" ref="account.account_common_report_view" />
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='journal_ids']" position="replace">
<field name="journal_ids" required="0" colspan="4" nolabel="1" readonly="1"/>
</xpath>
<xpath expr="/form/label[@string='']" position="replace">
<separator string="Profit And Loss" colspan="4"/>
<label nolabel="1" colspan="4" string="The Profit and Loss report gives you an overview of your company profit and loss in a single document"/>
</xpath>
<xpath expr="//field[@name='fiscalyear_id']" position="after">
<field name="display_account"/>
<field name="display_type"/>
</xpath>
</data>
</field>
</record>
<record id="action_account_pl_report" model="ir.actions.act_window">
<field name="name">Account Profit And Loss</field>
<field name="res_model">account.pl.report</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="account_pl_report_view"/>
<field name="target">new</field>
</record>
<menuitem
parent="account.menu_finance_legal_statement"
id="final_accounting_reports"
name="Accounting Reports"/>
<menuitem icon="STOCK_PRINT"
name="Profit And Loss"
action="action_account_pl_report"
id="menu_account_pl_report"
parent="final_accounting_reports"/>
</data>
</openerp>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 25 KiB

@@ -32,13 +32,11 @@
help="Analytic Accounts with a past deadline in one month." />
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="partner_id" select="1">
<field name="name" filter_domain="['|', ('name','ilike',self),('code','ilike',self)]" string="Contract"/>
<field name="partner_id">
<filter string="A contract in OpenERP is an analytic account having a partner set on it." name="has_partner" domain="[('partner_id', '!=', False)]" icon="terp-partner" />
</field>
<field name="user_id">
<filter string="My Accounts" domain="[('user_id','=',uid)]" icon="terp-personal" name="my_accounts" />
<filter string="No Account Manager" domain="[('user_id', '=', False)]" icon="terp-personal-" />
</field>
@@ -64,7 +62,7 @@
<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_my_accounts':1, 'search_default_draft':1, 'search_default_pending':1, 'search_default_open':1, 'search_default_renew':1}</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="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>
@@ -76,7 +74,7 @@
<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_my_accounts':1, 'search_default_draft':1, 'search_default_pending':1, 'search_default_open':1}</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="search_view_id" ref="view_account_analytic_account_overdue_search"/>
</record>
@@ -16,14 +16,14 @@
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<group name="invoice_stats" position="inside">
<field name="hours_qtt_non_invoiced"/>
<field name="ca_to_invoice"/>
<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)]}"
attrs="{'readonly':[('ca_to_invoice','=',0.0)], 'invisible': [('to_invoice','=',0)]}"
icon="gtk-go-forward"/>
</group>
</field>
+293
View File
@@ -0,0 +1,293 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 16:51+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: 2011-12-19 04:48+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_analytic_analysis
#: help:account.analytic.account,hours_qtt_invoiced:0
msgid ""
"Number of hours that can be invoiced plus those that already have been "
"invoiced."
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,remaining_ca:0
msgid "Computed using the formula: Max Invoice Price - Invoiced Amount."
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,remaining_hours:0
msgid "Computed using the formula: Maximum Quantity - Hours Tot."
msgstr ""
#. module: account_analytic_analysis
#: code:addons/account_analytic_analysis/account_analytic_analysis.py:532
#: code:addons/account_analytic_analysis/account_analytic_analysis.py:703
#, python-format
msgid "AccessError"
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,last_invoice_date:0
msgid "Date of the last invoice created for this analytic account."
msgstr ""
#. module: account_analytic_analysis
#: model:ir.module.module,description:account_analytic_analysis.module_meta_information
msgid ""
"\n"
"This module is for modifying account analytic view to show\n"
"important data to project manager of services companies.\n"
"Adds menu to show relevant information to each manager..\n"
"\n"
"You can also view the report of account analytic summary\n"
"user-wise as well as month wise.\n"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,last_invoice_date:0
msgid "Last Invoice Date"
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,theorical_margin:0
msgid "Computed using the formula: Theorial Revenue - Total Costs"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,real_margin_rate:0
msgid "Real Margin Rate (%)"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,ca_theorical:0
msgid "Theoretical Revenue"
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,last_worked_invoiced_date:0
msgid ""
"If invoice from the costs, this is the date of the latest work or cost that "
"have been invoiced."
msgstr ""
#. module: account_analytic_analysis
#: model:ir.ui.menu,name:account_analytic_analysis.menu_invoicing
msgid "Billing"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,last_worked_date:0
msgid "Date of Last Cost/Work"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,total_cost:0
msgid "Total Costs"
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,hours_quantity:0
msgid ""
"Number of hours you spent on the analytic account (from timesheet). It "
"computes on all journal of type 'general'."
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,remaining_hours:0
msgid "Remaining Hours"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,theorical_margin:0
msgid "Theoretical Margin"
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,ca_theorical:0
msgid ""
"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."
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,user_ids:0
#: field:account_analytic_analysis.summary.user,user:0
msgid "User"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,ca_to_invoice:0
msgid "Uninvoiced Amount"
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,real_margin:0
msgid "Computed using the formula: Invoiced Amount - Total Costs."
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_qtt_non_invoiced:0
msgid "Uninvoiced Hours"
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,last_worked_date:0
msgid "Date of the latest work done on this account."
msgstr ""
#. module: account_analytic_analysis
#: model:ir.module.module,shortdesc:account_analytic_analysis.module_meta_information
msgid "report_account_analytic"
msgstr ""
#. module: account_analytic_analysis
#: model:ir.model,name:account_analytic_analysis.model_account_analytic_analysis_summary_user
msgid "Hours Summary by User"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,ca_invoiced:0
msgid "Invoiced Amount"
msgstr ""
#. module: account_analytic_analysis
#: code:addons/account_analytic_analysis/account_analytic_analysis.py:533
#: code:addons/account_analytic_analysis/account_analytic_analysis.py:704
#, python-format
msgid "You try to bypass an access rule (Document type: %s)."
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,last_worked_invoiced_date:0
msgid "Date of Last Invoiced Cost"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_qtt_invoiced:0
msgid "Invoiced Hours"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,real_margin:0
msgid "Real Margin"
msgstr ""
#. module: account_analytic_analysis
#: constraint:account.analytic.account:0
msgid ""
"Error! The currency has to be the same as the currency of the selected "
"company"
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,ca_invoiced:0
msgid "Total customer invoiced amount for this account."
msgstr ""
#. module: account_analytic_analysis
#: model:ir.model,name:account_analytic_analysis.model_account_analytic_analysis_summary_month
msgid "Hours summary by month"
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,real_margin_rate:0
msgid "Computes using the formula: (Real Margin / Total Costs) * 100."
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,hours_qtt_non_invoiced:0
msgid ""
"Number of hours (from journal of type 'general') that can be invoiced if you "
"invoice based on analytic account."
msgstr ""
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Analytic accounts"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,remaining_ca:0
msgid "Remaining Revenue"
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,ca_to_invoice:0
msgid ""
"If invoice from analytic account, the remaining amount you can invoice to "
"the customer based on the total costs."
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,revenue_per_hour:0
msgid "Computed using the formula: Invoiced Amount / Hours Tot."
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,revenue_per_hour:0
msgid "Revenue per Hours (real)"
msgstr ""
#. module: account_analytic_analysis
#: field:account_analytic_analysis.summary.month,unit_amount:0
#: field:account_analytic_analysis.summary.user,unit_amount:0
msgid "Total Time"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,month_ids:0
#: field:account_analytic_analysis.summary.month,month:0
msgid "Month"
msgstr ""
#. module: account_analytic_analysis
#: field:account_analytic_analysis.summary.month,account_id:0
#: field:account_analytic_analysis.summary.user,account_id:0
#: model:ir.model,name:account_analytic_analysis.model_account_analytic_account
msgid "Analytic Account"
msgstr ""
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_managed_overpassed
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_managed_overpassed
msgid "Overpassed Accounts"
msgstr ""
#. module: account_analytic_analysis
#: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_hr_tree_invoiced_all
msgid "All Uninvoiced Entries"
msgstr ""
#. module: account_analytic_analysis
#: field:account.analytic.account,hours_quantity:0
msgid "Hours Tot"
msgstr ""
#. module: account_analytic_analysis
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: account_analytic_analysis
#: help:account.analytic.account,total_cost:0
msgid ""
"Total of costs for this account. It includes real costs (from invoices) and "
"indirect costs, like time spent on timesheets."
msgstr ""
+191
View File
@@ -0,0 +1,191 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 16:50+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_analytic_default
#: model:ir.module.module,shortdesc:account_analytic_default.module_meta_information
msgid "Account Analytic Default"
msgstr ""
#. module: account_analytic_default
#: help:account.analytic.default,partner_id:0
msgid ""
"select a partner which will use analytical account specified in analytic "
"default (eg. create new cutomer invoice or Sale order if we select this "
"partner, it will automatically take this as an analytical account)"
msgstr ""
#. module: account_analytic_default
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_partner
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_product
#: model:ir.actions.act_window,name:account_analytic_default.analytic_rule_action_user
msgid "Analytic Rules"
msgstr ""
#. module: account_analytic_default
#: help:account.analytic.default,analytic_id:0
msgid "Analytical Account"
msgstr ""
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Current"
msgstr ""
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Group By..."
msgstr ""
#. module: account_analytic_default
#: help:account.analytic.default,date_stop:0
msgid "Default end date for this Analytical Account"
msgstr ""
#. module: account_analytic_default
#: model:ir.model,name:account_analytic_default.model_stock_picking
msgid "Picking List"
msgstr ""
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Conditions"
msgstr ""
#. module: account_analytic_default
#: help:account.analytic.default,company_id:0
msgid ""
"select a company which will use analytical account specified in analytic "
"default (eg. create new cutomer invoice or Sale order if we select this "
"company, it will automatically take this as an analytical account)"
msgstr ""
#. module: account_analytic_default
#: help:account.analytic.default,date_start:0
msgid "Default start date for this Analytical Account"
msgstr ""
#. module: account_analytic_default
#: view:account.analytic.default:0
#: field:account.analytic.default,product_id:0
msgid "Product"
msgstr ""
#. module: account_analytic_default
#: model:ir.model,name:account_analytic_default.model_account_analytic_default
msgid "Analytic Distribution"
msgstr ""
#. module: account_analytic_default
#: view:account.analytic.default:0
#: field:account.analytic.default,company_id:0
msgid "Company"
msgstr ""
#. module: account_analytic_default
#: view:account.analytic.default:0
#: field:account.analytic.default,user_id:0
msgid "User"
msgstr ""
#. module: account_analytic_default
#: model:ir.actions.act_window,name:account_analytic_default.act_account_acount_move_line_open
msgid "Entries"
msgstr ""
#. module: account_analytic_default
#: field:account.analytic.default,date_stop:0
msgid "End Date"
msgstr ""
#. module: account_analytic_default
#: help:account.analytic.default,user_id:0
msgid ""
"select a user which will use analytical account specified in analytic default"
msgstr ""
#. module: account_analytic_default
#: view:account.analytic.default:0
#: model:ir.actions.act_window,name:account_analytic_default.action_analytic_default_list
#: model:ir.ui.menu,name:account_analytic_default.menu_analytic_default_list
msgid "Analytic Defaults"
msgstr ""
#. module: account_analytic_default
#: model:ir.module.module,description:account_analytic_default.module_meta_information
msgid ""
"\n"
"Allows to automatically select analytic accounts based on criterions:\n"
"* Product\n"
"* Partner\n"
"* User\n"
"* Company\n"
"* Date\n"
" "
msgstr ""
#. module: account_analytic_default
#: help:account.analytic.default,product_id:0
msgid ""
"select a product which will use analytical account specified in analytic "
"default (eg. create new cutomer invoice or Sale order if we select this "
"product, it will automatically take this as an analytical account)"
msgstr ""
#. module: account_analytic_default
#: field:account.analytic.default,sequence:0
msgid "Sequence"
msgstr ""
#. module: account_analytic_default
#: model:ir.model,name:account_analytic_default.model_account_invoice_line
msgid "Invoice Line"
msgstr ""
#. module: account_analytic_default
#: view:account.analytic.default:0
#: field:account.analytic.default,analytic_id:0
msgid "Analytic Account"
msgstr ""
#. module: account_analytic_default
#: view:account.analytic.default:0
msgid "Accounts"
msgstr ""
#. module: account_analytic_default
#: view:account.analytic.default:0
#: field:account.analytic.default,partner_id:0
msgid "Partner"
msgstr ""
#. module: account_analytic_default
#: field:account.analytic.default,date_start:0
msgid "Start Date"
msgstr ""
#. module: account_analytic_default
#: help:account.analytic.default,sequence:0
msgid ""
"Gives the sequence order when displaying a list of analytic distribution"
msgstr ""
#. module: account_analytic_default
#: model:ir.model,name:account_analytic_default.model_sale_order_line
msgid "Sales Order Line"
msgstr ""
+530
View File
@@ -0,0 +1,530 @@
# 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: 2011-01-03 16:56+0000\n"
"PO-Revision-Date: 2011-12-18 16:52+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_analytic_plans
#: view:analytic.plan.create.model:0
msgid ""
"This distribution model has been saved.You will be able to reuse it later."
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance.line,plan_id:0
msgid "Plan Id"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "From Date"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
#: view:account.crossovered.analytic:0
#: model:ir.actions.act_window,name:account_analytic_plans.action_account_crossovered_analytic
#: model:ir.actions.report.xml,name:account_analytic_plans.account_analytic_account_crossovered_analytic
msgid "Crossovered Analytic"
msgstr ""
#. module: account_analytic_plans
#: view:account.analytic.plan:0
#: field:account.analytic.plan,name:0
#: field:account.analytic.plan.line,plan_id:0
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_form_action
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan
#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_plan_action
msgid "Analytic Plan"
msgstr ""
#. module: account_analytic_plans
#: model:ir.module.module,shortdesc:account_analytic_plans.module_meta_information
msgid "Multiple-plans management in Analytic Accounting"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,journal_id:0
#: view:account.crossovered.analytic:0
#: field:account.crossovered.analytic,journal_ids:0
msgid "Analytic Journal"
msgstr ""
#. module: account_analytic_plans
#: view:account.analytic.plan.line:0
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_line
msgid "Analytic Plan Line"
msgstr ""
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/wizard/account_crossovered_analytic.py:60
#, python-format
msgid "User Error"
msgstr ""
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance
msgid "Analytic Plan Instance"
msgstr ""
#. module: account_analytic_plans
#: view:analytic.plan.create.model:0
msgid "Ok"
msgstr ""
#. module: account_analytic_plans
#: constraint:account.move.line:0
msgid "You can not create move line on closed account."
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,plan_id:0
msgid "Model's Plan"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account2_ids:0
msgid "Account2 Id"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account_ids:0
msgid "Account Id"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Amount"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Code"
msgstr ""
#. module: account_analytic_plans
#: sql_constraint:account.move.line:0
msgid "Wrong credit or debit value in accounting entry !"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account6_ids:0
msgid "Account6 Id"
msgstr ""
#. module: account_analytic_plans
#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_multi_plan_action
msgid "Multi Plans"
msgstr ""
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance.line,analytic_account_id:0
msgid "Analytic Account"
msgstr ""
#. module: account_analytic_plans
#: sql_constraint:account.journal:0
msgid "The code of the journal must be unique per company !"
msgstr ""
#. module: account_analytic_plans
#: field:account.crossovered.analytic,ref:0
msgid "Analytic Account Reference"
msgstr ""
#. module: account_analytic_plans
#: constraint:account.move.line:0
msgid ""
"You can not create move line on receivable/payable account without partner"
msgstr ""
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_sale_order_line
msgid "Sales Order Line"
msgstr ""
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:47
#: view:analytic.plan.create.model:0
#, python-format
msgid "Distribution Model Saved"
msgstr ""
#. module: account_analytic_plans
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_instance_action
msgid "Analytic Distribution's Models"
msgstr ""
#. module: account_analytic_plans
#: view:account.crossovered.analytic:0
msgid "Print"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Percentage"
msgstr ""
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:201
#, python-format
msgid "A model having this name and code already exists !"
msgstr ""
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:41
#, python-format
msgid "No analytic plan defined !"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance.line,rate:0
msgid "Rate (%)"
msgstr ""
#. module: account_analytic_plans
#: view:account.analytic.plan:0
#: field:account.analytic.plan,plan_ids:0
#: field:account.journal,plan_id:0
msgid "Analytic Plans"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Perc(%)"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.line,max_required:0
msgid "Maximum Allowed (%)"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Printing date"
msgstr ""
#. module: account_analytic_plans
#: view:account.analytic.plan.line:0
msgid "Analytic Plan Lines"
msgstr ""
#. module: account_analytic_plans
#: constraint:account.bank.statement.line:0
msgid ""
"The amount of the voucher must be the same amount as the one on the "
"statement line"
msgstr ""
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_invoice_line
msgid "Invoice Line"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Currency"
msgstr ""
#. module: account_analytic_plans
#: field:account.crossovered.analytic,date1:0
msgid "Start Date"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Company"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account5_ids:0
msgid "Account5 Id"
msgstr ""
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance_line
msgid "Analytic Instance Line"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.line,root_analytic_id:0
msgid "Root Account"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "To Date"
msgstr ""
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:321
#: code:addons/account_analytic_plans/account_analytic_plans.py:462
#, python-format
msgid "You have to define an analytic journal on the '%s' journal!"
msgstr ""
#. module: account_analytic_plans
#: field:account.crossovered.analytic,empty_line:0
msgid "Dont show empty lines"
msgstr ""
#. module: account_analytic_plans
#: model:ir.actions.act_window,name:account_analytic_plans.action_analytic_plan_create_model
msgid "analytic.plan.create.model.action"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Analytic Account :"
msgstr ""
#. module: account_analytic_plans
#: model:ir.module.module,description:account_analytic_plans.module_meta_information
msgid ""
"This module allows to use several analytic plans, according to the general "
"journal,\n"
"so that multiple analytic lines are created when the invoice or the entries\n"
"are confirmed.\n"
"\n"
"For example, you can define the following analytic structure:\n"
" Projects\n"
" Project 1\n"
" SubProj 1.1\n"
" SubProj 1.2\n"
" Project 2\n"
" Salesman\n"
" Eric\n"
" Fabien\n"
"\n"
"Here, we have two plans: Projects and Salesman. An invoice line must\n"
"be able to write analytic entries in the 2 plans: SubProj 1.1 and\n"
"Fabien. The amount can also be split. The following example is for\n"
"an invoice that touches the two subproject and assigned to one salesman:\n"
"\n"
"Plan1:\n"
" SubProject 1.1 : 50%\n"
" SubProject 1.2 : 50%\n"
"Plan2:\n"
" Eric: 100%\n"
"\n"
"So when this line of invoice will be confirmed, it will generate 3 analytic "
"lines,\n"
"for one account entry.\n"
"The analytic plan validates the minimum and maximum percentage at the time "
"of creation\n"
"of distribution models.\n"
" "
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Analytic Account Reference:"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.line,name:0
msgid "Plan Name"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan,default_instance_id:0
msgid "Default Entries"
msgstr ""
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_move_line
msgid "Journal Items"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account1_ids:0
msgid "Account1 Id"
msgstr ""
#. module: account_analytic_plans
#: constraint:account.move.line:0
msgid "Company must be same for its related account and period."
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.line,min_required:0
msgid "Minimum Allowed (%)"
msgstr ""
#. module: account_analytic_plans
#: help:account.analytic.plan.line,root_analytic_id:0
msgid "Root account of this plan."
msgstr ""
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:201
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:38
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:41
#, python-format
msgid "Error"
msgstr ""
#. module: account_analytic_plans
#: view:analytic.plan.create.model:0
msgid "Save This Distribution as a Model"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Quantity"
msgstr ""
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:38
#, python-format
msgid "Please put a name and a code before saving the model !"
msgstr ""
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_crossovered_analytic
msgid "Print Crossovered Analytic"
msgstr ""
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:321
#: code:addons/account_analytic_plans/account_analytic_plans.py:462
#, python-format
msgid "No Analytic Journal !"
msgstr ""
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement
msgid "Bank Statement"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account3_ids:0
msgid "Account3 Id"
msgstr ""
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: account_analytic_plans
#: view:account.crossovered.analytic:0
#: view:analytic.plan.create.model:0
msgid "Cancel"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account4_ids:0
msgid "Account4 Id"
msgstr ""
#. module: account_analytic_plans
#: view:account.analytic.plan.instance.line:0
msgid "Analytic Distribution Lines"
msgstr ""
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:214
#, python-format
msgid "The Total Should be Between %s and %s"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "at"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Account Name"
msgstr ""
#. module: account_analytic_plans
#: view:account.analytic.plan.instance.line:0
msgid "Analytic Distribution Line"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,code:0
msgid "Distribution Code"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "%"
msgstr ""
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "100.00%"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.default,analytics_id:0
#: view:account.analytic.plan.instance:0
#: field:account.analytic.plan.instance,name:0
#: field:account.bank.statement.line,analytics_id:0
#: field:account.invoice.line,analytics_id:0
#: field:account.move.line,analytics_id:0
#: model:ir.model,name:account_analytic_plans.model_account_analytic_default
msgid "Analytic Distribution"
msgstr ""
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_journal
msgid "Journal"
msgstr ""
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_analytic_plan_create_model
msgid "analytic.plan.create.model"
msgstr ""
#. module: account_analytic_plans
#: field:account.crossovered.analytic,date2:0
msgid "End Date"
msgstr ""
#. module: account_analytic_plans
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_instance_model_open
msgid "Distribution Models"
msgstr ""
#. module: account_analytic_plans
#: field:account.analytic.plan.line,sequence:0
msgid "Sequence"
msgstr ""
#. module: account_analytic_plans
#: sql_constraint:account.journal:0
msgid "The name of the journal must be unique per company !"
msgstr ""
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:214
#, python-format
msgid "Value Error"
msgstr ""
#. module: account_analytic_plans
#: constraint:account.move.line:0
msgid "You can not create move line on view account."
msgstr ""
+107
View File
@@ -0,0 +1,107 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 16:52+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_anglo_saxon
#: view:product.category:0
msgid " Accounting Property"
msgstr ""
#. module: account_anglo_saxon
#: sql_constraint:purchase.order:0
msgid "Order Reference must be unique !"
msgstr ""
#. module: account_anglo_saxon
#: constraint:product.category:0
msgid "Error ! You can not create recursive categories."
msgstr ""
#. module: account_anglo_saxon
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
#. module: account_anglo_saxon
#: model:ir.model,name:account_anglo_saxon.model_account_invoice_line
msgid "Invoice Line"
msgstr ""
#. module: account_anglo_saxon
#: model:ir.model,name:account_anglo_saxon.model_purchase_order
msgid "Purchase Order"
msgstr ""
#. module: account_anglo_saxon
#: model:ir.model,name:account_anglo_saxon.model_product_template
msgid "Product Template"
msgstr ""
#. module: account_anglo_saxon
#: model:ir.model,name:account_anglo_saxon.model_product_category
msgid "Product Category"
msgstr ""
#. module: account_anglo_saxon
#: model:ir.module.module,shortdesc:account_anglo_saxon.module_meta_information
msgid "Stock Accounting for Anglo Saxon countries"
msgstr ""
#. module: account_anglo_saxon
#: field:product.category,property_account_creditor_price_difference_categ:0
#: field:product.template,property_account_creditor_price_difference:0
msgid "Price Difference Account"
msgstr ""
#. module: account_anglo_saxon
#: model:ir.model,name:account_anglo_saxon.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: account_anglo_saxon
#: model:ir.model,name:account_anglo_saxon.model_stock_picking
msgid "Picking List"
msgstr ""
#. module: account_anglo_saxon
#: model:ir.module.module,description:account_anglo_saxon.module_meta_information
msgid ""
"This module will support the Anglo-Saxons accounting methodology by\n"
" changing the accounting logic with stock transactions. The difference "
"between the Anglo-Saxon accounting countries\n"
" and the Rhine or also called Continental accounting countries is the "
"moment of taking the Cost of Goods Sold versus Cost of Sales.\n"
" Anglo-Saxons accounting does take the cost when sales invoice is "
"created, Continental accounting will take the cost at the moment the goods "
"are shipped.\n"
" This module will add this functionality by using a interim account, to "
"store the value of shipped goods and will contra book this interim account\n"
" when the invoice is created to transfer this amount to the debtor or "
"creditor account.\n"
" Secondly, price differences between actual purchase price and fixed "
"product standard price are booked on a separate account"
msgstr ""
#. module: account_anglo_saxon
#: help:product.category,property_account_creditor_price_difference_categ:0
#: help:product.template,property_account_creditor_price_difference:0
msgid ""
"This account will be used to value price difference between purchase price "
"and cost price."
msgstr ""
+18 -8
View File
@@ -131,7 +131,7 @@ class account_asset_asset(osv.osv):
if asset.prorata:
undone_dotation_number += 1
return undone_dotation_number
def compute_depreciation_board(self, cr, uid, ids, context=None):
depreciation_lin_obj = self.pool.get('account.asset.depreciation.line')
for asset in self.browse(cr, uid, ids, context=context):
@@ -141,7 +141,7 @@ class account_asset_asset(osv.osv):
old_depreciation_line_ids = depreciation_lin_obj.search(cr, uid, [('asset_id', '=', asset.id), ('move_id', '=', False)])
if old_depreciation_line_ids:
depreciation_lin_obj.unlink(cr, uid, old_depreciation_line_ids, context=context)
amount_to_depr = residual_amount = asset.value_residual
if asset.prorata:
depreciation_date = datetime.strptime(self._get_last_depreciation_date(cr, uid, [asset.id], context)[asset.id], '%Y-%m-%d')
@@ -198,6 +198,16 @@ class account_asset_asset(osv.osv):
res.setdefault(id, 0.0)
return res
def onchange_company_id(self, cr, uid, ids, company_id=False, context=None):
val = {}
if company_id:
company = self.pool.get('res.company').browse(cr, uid, company_id, context=context)
if company.currency_id.company_id and company.currency_id.company_id.id != company_id:
val['currency_id'] = False
else:
val['currency_id'] = company.currency_id.id
return {'value': val}
_columns = {
'account_move_line_ids': fields.one2many('account.move.line', 'asset_id', 'Entries', readonly=True, states={'draft':[('readonly',False)]}),
'name': fields.char('Asset', size=64, required=True, readonly=True, states={'draft':[('readonly',False)]}),
@@ -224,7 +234,7 @@ class account_asset_asset(osv.osv):
'method_end': fields.date('Ending Date', readonly=True, states={'draft':[('readonly',False)]}),
'method_progress_factor': fields.float('Degressive Factor', readonly=True, states={'draft':[('readonly',False)]}),
'value_residual': fields.function(_amount_residual, method=True, digits_compute=dp.get_precision('Account'), string='Residual Value'),
'method_time': fields.selection([('number','Number of Depreciations'),('end','Ending Date')], 'Time Method', required=True, readonly=True, states={'draft':[('readonly',False)]},
'method_time': fields.selection([('number','Number of Depreciations'),('end','Ending Date')], 'Time Method', required=True, readonly=True, states={'draft':[('readonly',False)]},
help="Choose the method to use to compute the dates and number of depreciation lines.\n"\
" * Number of Depreciations: Fix the number of depreciation lines and the time between 2 depreciations.\n" \
" * Ending Date: Choose the time between 2 depreciations and the date the depreciations won't go beyond."),
@@ -246,7 +256,7 @@ class account_asset_asset(osv.osv):
'currency_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.currency_id.id,
'company_id': lambda self, cr, uid, context: self.pool.get('res.company')._company_default_get(cr, uid, 'account.asset.asset',context=context),
}
def _check_recursion(self, cr, uid, ids, context=None, parent=None):
return super(account_asset_asset, self)._check_recursion(cr, uid, ids, context=context, parent=parent)
@@ -295,7 +305,7 @@ class account_asset_asset(osv.osv):
result = []
period_obj = self.pool.get('account.period')
depreciation_obj = self.pool.get('account.asset.depreciation.line')
period = period_obj.browse(cr, uid, period_id, context=context)
period = period_obj.browse(cr, uid, period_id, context=context)
depreciation_ids = depreciation_obj.search(cr, uid, [('asset_id', 'in', ids), ('depreciation_date', '<', period.date_stop), ('depreciation_date', '>', period.date_start), ('move_check', '=', False)], context=context)
return depreciation_obj.create_move(cr, uid, depreciation_ids, context=context)
@@ -394,7 +404,7 @@ class account_asset_depreciation_line(osv.osv):
self.write(cr, uid, line.id, {'move_id': move_id}, context=context)
created_move_ids.append(move_id)
if can_close:
asset_obj.write(cr, uid, [line.asset_id.id], {'state': 'close'}, context=context)
asset_obj.write(cr, uid, [line.asset_id.id], {'state': 'close'}, context=context)
return created_move_ids
account_asset_depreciation_line()
@@ -416,7 +426,7 @@ class account_asset_history(osv.osv):
'user_id': fields.many2one('res.users', 'User', required=True),
'date': fields.date('Date', required=True),
'asset_id': fields.many2one('account.asset.asset', 'Asset', required=True),
'method_time': fields.selection([('number','Number of Depreciations'),('end','Ending Date')], 'Time Method', required=True,
'method_time': fields.selection([('number','Number of Depreciations'),('end','Ending Date')], 'Time Method', required=True,
help="The method to use to compute the dates and number of depreciation lines.\n"\
"Number of Depreciations: Fix the number of depreciation lines and the time between 2 depreciations.\n" \
"Ending Date: Choose the time between 2 depreciations and the date the depreciations won't go beyond."),
@@ -430,7 +440,7 @@ class account_asset_history(osv.osv):
'date': lambda *args: time.strftime('%Y-%m-%d'),
'user_id': lambda self, cr, uid, ctx: uid
}
account_asset_history()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+10 -10
View File
@@ -2,7 +2,7 @@
<data>
<!--
Asset Category
Asset Category
-->
<record model="ir.ui.view" id="view_account_asset_category_form">
@@ -87,7 +87,7 @@
<field name="salvage_value"/>
<field name="value_residual"/>
<field name="currency_id"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="company_id" widget="selection" groups="base.group_multi_company" on_change="onchange_company_id(company_id)"/>
</group>
<notebook colspan="4">
<page string="General">
@@ -103,7 +103,7 @@
<field name="method_period"/>
<field name="method_end" attrs="{'required': [('method_time','=','end')], 'invisible':[('method_time','=','number')]}"/>
<newline/>
<button name="%(action_asset_modify)d" states="open" string="Change Duration" type="action" icon="terp-stock_effects-object-colorize" colspan="2"/>
<button name="%(action_asset_modify)d" states="open" string="Change Duration" type="action" icon="terp-stock_effects-object-colorize" colspan="2"/>
</group>
<group colspan="2" col="2">
<separator string="Depreciation Method" colspan="2"/>
@@ -209,9 +209,9 @@
</search>
</field>
</record>
<!--
Asset History
Asset History
-->
<record model="ir.ui.view" id="view_account_asset_history_form">
@@ -274,7 +274,7 @@
</field>
</field>
</record>
<record id="view_account_move_line_filter_inherit" model="ir.ui.view">
<field name="name">Journal Items (Search)</field>
<field name="model">account.move.line</field>
@@ -302,7 +302,7 @@
</record>
<menuitem parent="menu_finance_assets" id="menu_action_account_asset_asset_form" action="action_account_asset_asset_form"/>
<act_window id="act_entries_open" name="Entries" res_model="account.move.line" src_model="account.asset.asset" context="{'search_default_asset_id': [active_id], 'default_asset_id': active_id}"/>
<menuitem id="menu_finance_config_assets" name="Assets" parent="account.menu_finance_accounting"/>
@@ -314,19 +314,19 @@
</record>
<menuitem parent="menu_finance_config_assets" id="menu_action_account_asset_asset_list_normal" action="action_account_asset_asset_list_normal"/>
<record model="ir.actions.act_window" id="action_account_asset_asset_form_normal">
<field name="name">Review Asset Categories</field>
<field name="res_model">account.asset.category</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<record id="asset_category_form_view_todo" model="ir.actions.todo">
<field name="action_id" ref="action_account_asset_asset_form_normal"/>
<field name="category_id" ref="account.category_accounting_configuration"/>
<field name="sequence">3</field>
</record>
</data>
</openerp>
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

+441
View File
@@ -0,0 +1,441 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 16:52+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_budget
#: field:crossovered.budget,creating_user_id:0
msgid "Responsible User"
msgstr ""
#. module: account_budget
#: selection:crossovered.budget,state:0
msgid "Confirmed"
msgstr ""
#. module: account_budget
#: model:ir.actions.act_window,name:account_budget.open_budget_post_form
#: model:ir.ui.menu,name:account_budget.menu_budget_post_form
msgid "Budgetary Positions"
msgstr ""
#. module: account_budget
#: code:addons/account_budget/account_budget.py:119
#, python-format
msgid "The General Budget '%s' has no Accounts!"
msgstr ""
#. module: account_budget
#: report:account.budget:0
msgid "Printed at:"
msgstr ""
#. module: account_budget
#: view:crossovered.budget:0
msgid "Confirm"
msgstr ""
#. module: account_budget
#: field:crossovered.budget,validating_user_id:0
msgid "Validate User"
msgstr ""
#. module: account_budget
#: model:ir.actions.act_window,name:account_budget.action_account_budget_crossvered_summary_report
msgid "Print Summary"
msgstr ""
#. module: account_budget
#: field:crossovered.budget.lines,paid_date:0
msgid "Paid Date"
msgstr ""
#. module: account_budget
#: field:account.budget.analytic,date_to:0
#: field:account.budget.crossvered.report,date_to:0
#: field:account.budget.crossvered.summary.report,date_to:0
#: field:account.budget.report,date_to:0
msgid "End of period"
msgstr ""
#. module: account_budget
#: view:crossovered.budget:0
#: selection:crossovered.budget,state:0
msgid "Draft"
msgstr ""
#. module: account_budget
#: report:account.budget:0
msgid "at"
msgstr ""
#. module: account_budget
#: view:account.budget.report:0
#: model:ir.actions.act_window,name:account_budget.action_account_budget_analytic
#: model:ir.actions.act_window,name:account_budget.action_account_budget_crossvered_report
msgid "Print Budgets"
msgstr ""
#. module: account_budget
#: report:account.budget:0
msgid "Currency:"
msgstr ""
#. module: account_budget
#: model:ir.model,name:account_budget.model_account_budget_crossvered_report
msgid "Account Budget crossvered report"
msgstr ""
#. module: account_budget
#: selection:crossovered.budget,state:0
msgid "Validated"
msgstr ""
#. module: account_budget
#: field:crossovered.budget.lines,percentage:0
msgid "Percentage"
msgstr ""
#. module: account_budget
#: report:crossovered.budget.report:0
msgid "to"
msgstr ""
#. module: account_budget
#: field:crossovered.budget,state:0
msgid "Status"
msgstr ""
#. module: account_budget
#: model:ir.actions.act_window,help:account_budget.act_crossovered_budget_view
msgid ""
"A budget is a forecast of your company's income and expenses expected for a "
"period in the future. With a budget, a company is able to carefully look at "
"how much money they are taking in during a given period, and figure out the "
"best way to divide it among various categories. By keeping track of where "
"your money goes, you may be less likely to overspend, and more likely to "
"meet your financial goals. Forecast a budget by detailing the expected "
"revenue per analytic account and monitor its evolution based on the actuals "
"realised during that period."
msgstr ""
#. module: account_budget
#: view:account.budget.crossvered.summary.report:0
msgid "This wizard is used to print summary of budgets"
msgstr ""
#. module: account_budget
#: report:account.budget:0
#: report:crossovered.budget.report:0
msgid "%"
msgstr ""
#. module: account_budget
#: report:account.budget:0
#: report:crossovered.budget.report:0
msgid "Description"
msgstr ""
#. module: account_budget
#: report:crossovered.budget.report:0
msgid "Currency"
msgstr ""
#. module: account_budget
#: report:crossovered.budget.report:0
msgid "Total :"
msgstr ""
#. module: account_budget
#: field:account.budget.post,company_id:0
#: field:crossovered.budget,company_id:0
#: field:crossovered.budget.lines,company_id:0
msgid "Company"
msgstr ""
#. module: account_budget
#: view:crossovered.budget:0
msgid "To Approve"
msgstr ""
#. module: account_budget
#: view:crossovered.budget:0
msgid "Reset to Draft"
msgstr ""
#. module: account_budget
#: view:account.budget.post:0
#: view:crossovered.budget:0
#: field:crossovered.budget.lines,planned_amount:0
msgid "Planned Amount"
msgstr ""
#. module: account_budget
#: report:account.budget:0
#: report:crossovered.budget.report:0
msgid "Perc(%)"
msgstr ""
#. module: account_budget
#: view:crossovered.budget:0
#: selection:crossovered.budget,state:0
msgid "Done"
msgstr ""
#. module: account_budget
#: report:account.budget:0
#: report:crossovered.budget.report:0
msgid "Practical Amt"
msgstr ""
#. module: account_budget
#: view:account.analytic.account:0
#: view:account.budget.post:0
#: view:crossovered.budget:0
#: field:crossovered.budget.lines,practical_amount:0
msgid "Practical Amount"
msgstr ""
#. module: account_budget
#: field:crossovered.budget,date_to:0
#: field:crossovered.budget.lines,date_to:0
msgid "End Date"
msgstr ""
#. module: account_budget
#: model:ir.model,name:account_budget.model_account_budget_analytic
#: model:ir.model,name:account_budget.model_account_budget_report
msgid "Account Budget report for analytic account"
msgstr ""
#. module: account_budget
#: view:account.analytic.account:0
msgid "Theoritical Amount"
msgstr ""
#. module: account_budget
#: field:account.budget.post,name:0
#: field:crossovered.budget,name:0
msgid "Name"
msgstr ""
#. module: account_budget
#: model:ir.model,name:account_budget.model_crossovered_budget_lines
msgid "Budget Line"
msgstr ""
#. module: account_budget
#: view:account.analytic.account:0
#: view:account.budget.post:0
msgid "Lines"
msgstr ""
#. module: account_budget
#: report:account.budget:0
#: view:crossovered.budget:0
#: field:crossovered.budget.lines,crossovered_budget_id:0
#: report:crossovered.budget.report:0
#: model:ir.actions.report.xml,name:account_budget.account_budget
#: model:ir.model,name:account_budget.model_crossovered_budget
msgid "Budget"
msgstr ""
#. module: account_budget
#: code:addons/account_budget/account_budget.py:119
#, python-format
msgid "Error!"
msgstr ""
#. module: account_budget
#: field:account.budget.post,code:0
#: field:crossovered.budget,code:0
msgid "Code"
msgstr ""
#. module: account_budget
#: view:account.budget.analytic:0
#: view:account.budget.crossvered.report:0
msgid "This wizard is used to print budget"
msgstr ""
#. module: account_budget
#: model:ir.actions.act_window,name:account_budget.act_crossovered_budget_view
#: model:ir.actions.act_window,name:account_budget.action_account_budget_post_tree
#: model:ir.actions.act_window,name:account_budget.action_account_budget_report
#: model:ir.actions.report.xml,name:account_budget.report_crossovered_budget
#: model:ir.ui.menu,name:account_budget.menu_act_crossovered_budget_view
#: model:ir.ui.menu,name:account_budget.menu_action_account_budget_post_tree
#: model:ir.ui.menu,name:account_budget.next_id_31
#: model:ir.ui.menu,name:account_budget.next_id_pos
msgid "Budgets"
msgstr ""
#. module: account_budget
#: constraint:account.analytic.account:0
msgid ""
"Error! The currency has to be the same as the currency of the selected "
"company"
msgstr ""
#. module: account_budget
#: selection:crossovered.budget,state:0
msgid "Cancelled"
msgstr ""
#. module: account_budget
#: view:crossovered.budget:0
msgid "Approve"
msgstr ""
#. module: account_budget
#: field:crossovered.budget,date_from:0
#: field:crossovered.budget.lines,date_from:0
msgid "Start Date"
msgstr ""
#. module: account_budget
#: view:account.budget.post:0
#: field:crossovered.budget.lines,general_budget_id:0
#: model:ir.model,name:account_budget.model_account_budget_post
msgid "Budgetary Position"
msgstr ""
#. module: account_budget
#: field:account.budget.analytic,date_from:0
#: field:account.budget.crossvered.report,date_from:0
#: field:account.budget.crossvered.summary.report,date_from:0
#: field:account.budget.report,date_from:0
msgid "Start of period"
msgstr ""
#. module: account_budget
#: model:ir.model,name:account_budget.model_account_budget_crossvered_summary_report
msgid "Account Budget crossvered summary report"
msgstr ""
#. module: account_budget
#: report:account.budget:0
#: report:crossovered.budget.report:0
msgid "Theoretical Amt"
msgstr ""
#. module: account_budget
#: view:account.budget.analytic:0
#: view:account.budget.crossvered.report:0
#: view:account.budget.crossvered.summary.report:0
#: view:account.budget.report:0
msgid "Select Dates Period"
msgstr ""
#. module: account_budget
#: view:account.budget.analytic:0
#: view:account.budget.crossvered.report:0
#: view:account.budget.crossvered.summary.report:0
#: view:account.budget.report:0
msgid "Print"
msgstr ""
#. module: account_budget
#: model:ir.module.module,description:account_budget.module_meta_information
msgid ""
"This module allows accountants to manage analytic and crossovered budgets.\n"
"\n"
"Once the Master Budgets and the Budgets are defined (in "
"Accounting/Budgets/),\n"
"the Project Managers can set the planned amount on each Analytic Account.\n"
"\n"
"The accountant has the possibility to see the total of amount planned for "
"each\n"
"Budget and Master Budget in order to ensure the total planned is not\n"
"greater/lower than what he planned for this Budget/Master Budget. Each list "
"of\n"
"record can also be switched to a graphical view of it.\n"
"\n"
"Three reports are available:\n"
" 1. The first is available from a list of Budgets. It gives the "
"spreading, for these Budgets, of the Analytic Accounts per Master Budgets.\n"
"\n"
" 2. The second is a summary of the previous one, it only gives the "
"spreading, for the selected Budgets, of the Analytic Accounts.\n"
"\n"
" 3. The last one is available from the Analytic Chart of Accounts. It "
"gives the spreading, for the selected Analytic Accounts, of the Master "
"Budgets per Budgets.\n"
"\n"
msgstr ""
#. module: account_budget
#: field:crossovered.budget.lines,analytic_account_id:0
#: model:ir.model,name:account_budget.model_account_analytic_account
msgid "Analytic Account"
msgstr ""
#. module: account_budget
#: report:account.budget:0
msgid "Budget :"
msgstr ""
#. module: account_budget
#: report:account.budget:0
#: report:crossovered.budget.report:0
msgid "Planned Amt"
msgstr ""
#. module: account_budget
#: view:account.budget.post:0
#: field:account.budget.post,account_ids:0
msgid "Accounts"
msgstr ""
#. module: account_budget
#: view:account.analytic.account:0
#: field:account.analytic.account,crossovered_budget_line:0
#: view:account.budget.post:0
#: field:account.budget.post,crossovered_budget_line:0
#: view:crossovered.budget:0
#: field:crossovered.budget,crossovered_budget_line:0
#: view:crossovered.budget.lines:0
#: model:ir.actions.act_window,name:account_budget.act_account_analytic_account_cb_lines
#: model:ir.actions.act_window,name:account_budget.act_crossovered_budget_lines_view
#: model:ir.ui.menu,name:account_budget.menu_act_crossovered_budget_lines_view
msgid "Budget Lines"
msgstr ""
#. module: account_budget
#: view:account.budget.analytic:0
#: view:account.budget.crossvered.report:0
#: view:account.budget.crossvered.summary.report:0
#: view:account.budget.report:0
#: view:crossovered.budget:0
msgid "Cancel"
msgstr ""
#. module: account_budget
#: model:ir.module.module,shortdesc:account_budget.module_meta_information
msgid "Budget Management"
msgstr ""
#. module: account_budget
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: account_budget
#: report:account.budget:0
#: report:crossovered.budget.report:0
msgid "Analysis from"
msgstr ""
+32
View File
@@ -0,0 +1,32 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 16:53+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_cancel
#: model:ir.module.module,description:account_cancel.module_meta_information
msgid ""
"\n"
" Module adds 'Allow cancelling entries' field on form view of account "
"journal. If set to true it allows user to cancel entries & invoices.\n"
" "
msgstr ""
#. module: account_cancel
#: model:ir.module.module,shortdesc:account_cancel.module_meta_information
msgid "Account Cancel"
msgstr ""
+28
View File
@@ -0,0 +1,28 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 16:54+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_chart
#: model:ir.module.module,description:account_chart.module_meta_information
msgid "Remove minimal account chart"
msgstr ""
#. module: account_chart
#: model:ir.module.module,shortdesc:account_chart.module_meta_information
msgid "Charts of Accounts"
msgstr ""
+259
View File
@@ -0,0 +1,259 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 16:54+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_coda
#: help:account.coda,journal_id:0
#: field:account.coda.import,journal_id:0
msgid "Bank Journal"
msgstr ""
#. module: account_coda
#: view:account.coda:0
#: field:account.coda.import,note:0
msgid "Log"
msgstr ""
#. module: account_coda
#: model:ir.model,name:account_coda.model_account_coda_import
msgid "Account Coda Import"
msgstr ""
#. module: account_coda
#: field:account.coda,name:0
msgid "Coda file"
msgstr ""
#. module: account_coda
#: view:account.coda:0
msgid "Group By..."
msgstr ""
#. module: account_coda
#: field:account.coda.import,awaiting_account:0
msgid "Default Account for Unrecognized Movement"
msgstr ""
#. module: account_coda
#: help:account.coda,date:0
msgid "Import Date"
msgstr ""
#. module: account_coda
#: field:account.coda,note:0
msgid "Import log"
msgstr ""
#. module: account_coda
#: view:account.coda.import:0
msgid "Import"
msgstr ""
#. module: account_coda
#: view:account.coda:0
msgid "Coda import"
msgstr ""
#. module: account_coda
#: code:addons/account_coda/account_coda.py:51
#, python-format
msgid "Coda file not found for bank statement !!"
msgstr ""
#. module: account_coda
#: help:account.coda.import,awaiting_account:0
msgid ""
"Set here the default account that will be used, if the partner is found but "
"does not have the bank account, or if he is domiciled"
msgstr ""
#. module: account_coda
#: view:account.coda:0
#: field:account.coda,company_id:0
msgid "Company"
msgstr ""
#. module: account_coda
#: help:account.coda.import,def_payable:0
msgid ""
"Set here the payable account that will be used, by default, if the partner "
"is not found"
msgstr ""
#. module: account_coda
#: view:account.coda:0
msgid "Search Coda"
msgstr ""
#. module: account_coda
#: view:account.coda:0
#: field:account.coda,user_id:0
msgid "User"
msgstr ""
#. module: account_coda
#: view:account.coda:0
#: field:account.coda,date:0
msgid "Date"
msgstr ""
#. module: account_coda
#: model:ir.ui.menu,name:account_coda.menu_account_coda_statement
msgid "Coda Import Logs"
msgstr ""
#. module: account_coda
#: model:ir.model,name:account_coda.model_account_coda
msgid "coda for an Account"
msgstr ""
#. module: account_coda
#: field:account.coda.import,def_payable:0
msgid "Default Payable Account"
msgstr ""
#. module: account_coda
#: help:account.coda,name:0
msgid "Store the detail of bank statements"
msgstr ""
#. module: account_coda
#: view:account.coda.import:0
msgid "Cancel"
msgstr ""
#. module: account_coda
#: view:account.coda.import:0
msgid "Open Statements"
msgstr ""
#. module: account_coda
#: code:addons/account_coda/wizard/account_coda_import.py:167
#, python-format
msgid "The bank account %s is not defined for the partner %s.\n"
msgstr ""
#. module: account_coda
#: model:ir.ui.menu,name:account_coda.menu_account_coda_import
msgid "Import Coda Statements"
msgstr ""
#. module: account_coda
#: view:account.coda.import:0
#: model:ir.actions.act_window,name:account_coda.action_account_coda_import
msgid "Import Coda Statement"
msgstr ""
#. module: account_coda
#: model:ir.module.module,description:account_coda.module_meta_information
msgid ""
"\n"
" Module provides functionality to import\n"
" bank statements from coda files.\n"
" "
msgstr ""
#. module: account_coda
#: view:account.coda:0
msgid "Statements"
msgstr ""
#. module: account_coda
#: field:account.bank.statement,coda_id:0
msgid "Coda"
msgstr ""
#. module: account_coda
#: view:account.coda.import:0
msgid "Results :"
msgstr ""
#. module: account_coda
#: view:account.coda.import:0
msgid "Result of Imported Coda Statements"
msgstr ""
#. module: account_coda
#: help:account.coda.import,def_receivable:0
msgid ""
"Set here the receivable account that will be used, by default, if the "
"partner is not found"
msgstr ""
#. module: account_coda
#: field:account.coda.import,coda:0
#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement
msgid "Coda File"
msgstr ""
#. module: account_coda
#: model:ir.model,name:account_coda.model_account_bank_statement
msgid "Bank Statement"
msgstr ""
#. module: account_coda
#: model:ir.actions.act_window,name:account_coda.action_account_coda
msgid "Coda Logs"
msgstr ""
#. module: account_coda
#: code:addons/account_coda/wizard/account_coda_import.py:311
#, python-format
msgid "Result"
msgstr ""
#. module: account_coda
#: view:account.coda.import:0
msgid "Click on 'New' to select your file :"
msgstr ""
#. module: account_coda
#: field:account.coda.import,def_receivable:0
msgid "Default Receivable Account"
msgstr ""
#. module: account_coda
#: view:account.coda.import:0
msgid "Close"
msgstr ""
#. module: account_coda
#: field:account.coda,statement_ids:0
msgid "Generated Bank Statements"
msgstr ""
#. module: account_coda
#: model:ir.module.module,shortdesc:account_coda.module_meta_information
msgid "Account CODA - import bank statements from coda file"
msgstr ""
#. module: account_coda
#: view:account.coda.import:0
msgid "Configure Your Journal and Account :"
msgstr ""
#. module: account_coda
#: view:account.coda:0
msgid "Coda Import"
msgstr ""
#. module: account_coda
#: view:account.coda:0
#: field:account.coda,journal_id:0
msgid "Journal"
msgstr ""
+718
View File
@@ -0,0 +1,718 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 16:56+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: 2011-12-19 04:48+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:295
#, python-format
msgid "Followup Summary"
msgstr ""
#. module: account_followup
#: view:account_followup.followup:0
msgid "Search Followup"
msgstr ""
#. module: account_followup
#: model:ir.module.module,description:account_followup.module_meta_information
msgid ""
"\n"
" Modules to automate letters for unpaid invoices, with multi-level "
"recalls.\n"
"\n"
" You can define your multiple levels of recall through the menu:\n"
" Accounting/Configuration/Miscellaneous/Follow-Ups\n"
"\n"
" Once it is defined, you can automatically print recalls every day\n"
" through simply clicking on the menu:\n"
" Accounting/Periodical Processing/Billing/Send followups\n"
"\n"
" It will generate a PDF with all the letters according to the the\n"
" different levels of recall defined. You can define different policies\n"
" for different companies. You can also send mail to the customer.\n"
"\n"
" Note that if you want to change the followup level for a given "
"partner/account entry, you can do from in the menu:\n"
" Accounting/Reporting/Generic Reporting/Partner Accounts/Follow-ups "
"Sent\n"
"\n"
msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Group By..."
msgstr ""
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:290
#, python-format
msgid ""
"\n"
"\n"
"E-Mail sent to following Partners successfully. !\n"
"\n"
"%s"
msgstr ""
#. module: account_followup
#: view:account_followup.followup:0
#: field:account_followup.followup,followup_line:0
msgid "Follow-Up"
msgstr ""
#. module: account_followup
#: field:account_followup.followup,company_id:0
#: view:account_followup.stat:0
#: field:account_followup.stat,company_id:0
#: field:account_followup.stat.by.partner,company_id:0
msgid "Company"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Invoice Date"
msgstr ""
#. module: account_followup
#: field:account.followup.print.all,email_subject:0
msgid "Email Subject"
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."
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
#: view:account_followup.followup.line:0
msgid "Legend"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "Ok"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "Select Partners to Remind"
msgstr ""
#. module: account_followup
#: constraint:account.move.line:0
msgid "You can not create move line on closed account."
msgstr ""
#. module: account_followup
#: field:account.followup.print,date:0
msgid "Follow-up Sending Date"
msgstr ""
#. module: account_followup
#: sql_constraint:account.move.line:0
msgid "Wrong credit or debit value in accounting entry !"
msgstr ""
#. module: account_followup
#: selection:account_followup.followup.line,start:0
msgid "Net Days"
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"
msgstr ""
#. module: account_followup
#: view:account_followup.stat.by.partner:0
msgid "Balance > 0"
msgstr ""
#. module: account_followup
#: view:account.move.line:0
msgid "Total debit"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "%(heading)s: Move line header"
msgstr ""
#. module: account_followup
#: view:res.company:0
#: field:res.company,follow_up_msg:0
msgid "Follow-up Message"
msgstr ""
#. module: account_followup
#: field:account.followup.print,followup_id:0
msgid "Follow-up"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "VAT:"
msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
#: field:account_followup.stat,partner_id:0
#: field:account_followup.stat.by.partner,partner_id:0
msgid "Partner"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Date :"
msgstr ""
#. module: account_followup
#: field:account.followup.print.all,partner_ids:0
msgid "Partners"
msgstr ""
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:138
#, python-format
msgid "Invoices Reminder"
msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_followup
msgid "Account Follow Up"
msgstr ""
#. module: account_followup
#: selection:account_followup.followup.line,start:0
msgid "End of Month"
msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Not Litigation"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "%(user_signature)s: User name"
msgstr ""
#. module: account_followup
#: field:account_followup.stat,debit:0
msgid "Debit"
msgstr ""
#. module: account_followup
#: view:account.followup.print:0
msgid ""
"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."
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Ref"
msgstr ""
#. module: account_followup
#: help:account_followup.followup.line,sequence:0
msgid "Gives the sequence order when displaying a list of follow-up lines."
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
#: field:account.followup.print.all,email_body:0
msgid "Email body"
msgstr ""
#. module: account_followup
#: field:account.move.line,followup_line_id:0
msgid "Follow-up Level"
msgstr ""
#. module: account_followup
#: field:account_followup.stat,date_followup:0
#: field:account_followup.stat.by.partner,date_followup:0
msgid "Latest followup"
msgstr ""
#. module: account_followup
#: model:account_followup.followup.line,description:account_followup.demo_followup_line2
msgid ""
"\n"
"Dear %(partner_name)s,\n"
"\n"
"We are disappointed to see that despite sending a reminder, that your "
"account is now seriously overdue.\n"
"\n"
"It is essential that immediate payment is made, otherwise we will have to "
"consider placing a stop on your account which means that we will no longer "
"be able to supply your company with (goods/services).\n"
"Please, take appropriate measures in order to carry out this payment in the "
"next 8 days\n"
"\n"
"If there is a problem with paying invoice that we are not aware of, do not "
"hesitate to contact our accounting department at (+32).10.68.94.39. so that "
"we can resolve the matter quickly.\n"
"\n"
"Details of due payments is printed below.\n"
"\n"
"Best Regards,\n"
msgstr ""
#. module: account_followup
#: field:account.followup.print.all,partner_lang:0
msgid "Send Email in Partner Language"
msgstr ""
#. module: account_followup
#: constraint:account.move.line:0
msgid ""
"You can not create move line on receivable/payable account without partner"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "Partner Selection"
msgstr ""
#. module: account_followup
#: field:account_followup.followup.line,description:0
msgid "Printed Message"
msgstr ""
#. module: account_followup
#: view:account.followup.print:0
#: view:account.followup.print.all:0
#: 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"
msgstr ""
#. module: account_followup
#: view:account_followup.stat.by.partner:0
msgid "Partner to Remind"
msgstr ""
#. module: account_followup
#: field:account_followup.followup.line,followup_id:0
#: field:account_followup.stat,followup_id:0
msgid "Follow Ups"
msgstr ""
#. module: account_followup
#: model:account_followup.followup.line,description:account_followup.demo_followup_line1
msgid ""
"\n"
"Dear %(partner_name)s,\n"
"\n"
"Exception made if there was a mistake of ours, it seems that the following "
"amount staid unpaid. Please, take appropriate measures in order to carry out "
"this payment in the next 8 days.\n"
"\n"
"Would your payment have been carried out after this mail was sent, please "
"consider the present one as void. Do not hesitate to contact our accounting "
"department at (+32).10.68.94.39.\n"
"\n"
"Best Regards,\n"
msgstr ""
#. module: account_followup
#: model:account_followup.followup.line,description:account_followup.demo_followup_line3
msgid ""
"\n"
"Dear %(partner_name)s,\n"
"\n"
"Despite several reminders, your account is still not settled.\n"
"\n"
"Unless full payment is made in next 8 days , then legal action for the "
"recovery of the debt, will be taken without further notice.\n"
"\n"
"I trust that this action will prove unnecessary and details of due payments "
"is printed below.\n"
"\n"
"In case of any queries concerning this matter, do not hesitate to contact "
"our accounting department at (+32).10.68.94.39.\n"
"\n"
"Best Regards,\n"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "Send Mails"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Currency"
msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_stat_by_partner
msgid "Followup Statistics by Partner"
msgstr ""
#. module: account_followup
#: model:ir.module.module,shortdesc:account_followup.module_meta_information
msgid "Accounting follow-ups management"
msgstr ""
#. module: account_followup
#: field:account_followup.stat,blocked:0
msgid "Blocked"
msgstr ""
#. module: account_followup
#: help:account.followup.print,date:0
msgid ""
"This field allow you to select a forecast date to plan your follow-ups"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Due"
msgstr ""
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:56
#, python-format
msgid "Select Partners"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "Email Settings"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "Print Follow Ups"
msgstr ""
#. module: account_followup
#: field:account.move.line,followup_date:0
msgid "Latest Follow-up"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Sub-Total:"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Balance:"
msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_stat
msgid "Followup Statistics"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Paid"
msgstr ""
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "%(user_signature)s: User Name"
msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_move_line
msgid "Journal Items"
msgstr ""
#. module: account_followup
#: constraint:account.move.line:0
msgid "Company must be same for its related account and period."
msgstr ""
#. module: account_followup
#: field:account.followup.print.all,email_conf:0
msgid "Send email confirmation"
msgstr ""
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:287
#, python-format
msgid ""
"All E-mails have been successfully sent to Partners:.\n"
"\n"
"%s"
msgstr ""
#. module: account_followup
#: constraint:res.company:0
msgid "Error! You can not create recursive companies."
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "%(company_name)s: User's Company name"
msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_res_company
msgid "Companies"
msgstr ""
#. module: account_followup
#: view:account_followup.followup:0
msgid "Followup Lines"
msgstr ""
#. module: account_followup
#: field:account_followup.stat,credit:0
msgid "Credit"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Maturity Date"
msgstr ""
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "%(partner_name)s: Partner Name"
msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Follow-Up lines"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "%(company_currency)s: User's Company Currency"
msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
#: field:account_followup.stat,balance:0
#: field:account_followup.stat.by.partner,balance:0
msgid "Balance"
msgstr ""
#. module: account_followup
#: field:account_followup.followup.line,start:0
msgid "Type of Term"
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"
msgstr ""
#. module: account_followup
#: field:account_followup.stat,date_move_last:0
#: field:account_followup.stat.by.partner,date_move_last:0
msgid "Last move"
msgstr ""
#. module: account_followup
#: model:ir.actions.report.xml,name:account_followup.account_followup_followup_report
msgid "Followup Report"
msgstr ""
#. module: account_followup
#: field:account_followup.stat,period_id:0
msgid "Period"
msgstr ""
#. module: account_followup
#: view:account.followup.print:0
#: view:account.followup.print.all:0
msgid "Cancel"
msgstr ""
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "Follow-Up Lines"
msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Litigation"
msgstr ""
#. module: account_followup
#: field:account_followup.stat.by.partner,max_followup_id:0
msgid "Max Follow Up Level"
msgstr ""
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.act_account_partner_account_move_payable_all
msgid "Payable Items"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "%(followup_amount)s: Total Amount Due"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
#: view:account_followup.followup.line:0
msgid "%(date)s: Current Date"
msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Followup Level"
msgstr ""
#. module: account_followup
#: view:account_followup.followup:0
#: field:account_followup.followup,description:0
#: report:account_followup.followup.print:0
msgid "Description"
msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "This Fiscal year"
msgstr ""
#. module: account_followup
#: view:account.move.line:0
msgid "Partner entries"
msgstr ""
#. module: account_followup
#: help:account.followup.print.all,partner_lang:0
msgid ""
"Do not change message text, if you want to send email in partner language, "
"or configure from company"
msgstr ""
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.act_account_partner_account_move_all
msgid "Receivable Items"
msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
#: model:ir.actions.act_window,name:account_followup.action_followup_stat
#: model:ir.ui.menu,name:account_followup.menu_action_followup_stat_follow
msgid "Follow-ups Sent"
msgstr ""
#. module: account_followup
#: field:account_followup.followup,name:0
#: field:account_followup.followup.line,name:0
msgid "Name"
msgstr ""
#. module: account_followup
#: field:account_followup.stat,date_move:0
#: field:account_followup.stat.by.partner,date_move:0
msgid "First move"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Li."
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Maturity"
msgstr ""
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:289
#, python-format
msgid ""
"E-Mail not sent to following Partners, Email not available !\n"
"\n"
"%s"
msgstr ""
#. module: account_followup
#: view:account.followup.print:0
msgid "Continue"
msgstr ""
#. module: account_followup
#: field:account_followup.followup.line,delay:0
msgid "Days of delay"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Document : Customer account statement"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
#: field:account.followup.print.all,summary:0
msgid "Summary"
msgstr ""
#. module: account_followup
#: view:account.move.line:0
msgid "Total credit"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "%(line)s: Ledger Posting lines"
msgstr ""
#. module: account_followup
#: field:account_followup.followup.line,sequence:0
msgid "Sequence"
msgstr ""
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "%(company_name)s: User's Company Name"
msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Customer Ref :"
msgstr ""
#. module: account_followup
#: view:account.followup.print.all:0
msgid "%(partner_name)s: Partner name"
msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Latest Followup Date"
msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_followup_line
msgid "Follow-Up Criteria"
msgstr ""
#. module: account_followup
#: constraint:account.move.line:0
msgid "You can not create move line on view account."
msgstr ""
@@ -68,7 +68,7 @@ class account_followup_stat(osv.osv):
cr.execute("""
create or replace view account_followup_stat as (
SELECT
l.id as id,
l.partner_id AS id,
l.partner_id AS partner_id,
min(l.date) AS date_move,
max(l.date) AS date_move_last,
@@ -93,7 +93,7 @@ class account_followup_stat_by_partner(osv.osv):
cr.execute("""
create or replace view account_followup_stat_by_partner as (
SELECT
l.partner_id * 10000 + l.company_id as id,
l.partner_id AS id,
l.partner_id AS partner_id,
min(l.date) AS date_move,
max(l.date) AS date_move_last,
+366
View File
@@ -0,0 +1,366 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 16:56+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Sub Total"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Note:"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Cancelled Invoice"
msgstr ""
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
#: field:notify.message,name:0
msgid "Title"
msgstr ""
#. module: account_invoice_layout
#: model:ir.actions.act_window,name:account_invoice_layout.action_account_invoice_special_msg
#: model:ir.actions.report.xml,name:account_invoice_layout.account_invoices_layout_message
msgid "Invoices with Layout and Message"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Disc. (%)"
msgstr ""
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Note"
msgstr ""
#. module: account_invoice_layout
#: model:ir.model,name:account_invoice_layout.model_notify_message
msgid "Notify By Messages"
msgstr ""
#. module: account_invoice_layout
#: help:notify.message,msg:0
msgid ""
"This notification will appear at the bottom of the Invoices when printed."
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Unit Price"
msgstr ""
#. module: account_invoice_layout
#: model:ir.module.module,description:account_invoice_layout.module_meta_information
msgid ""
"\n"
" This module provides some features to improve the layout of the "
"invoices.\n"
"\n"
" It gives you the possibility to\n"
" * order all the lines of an invoice\n"
" * add titles, comment lines, sub total lines\n"
" * draw horizontal lines and put page breaks\n"
"\n"
" Moreover, there is one option which allows you to print all the selected "
"invoices with a given special message at the bottom of it. This feature can "
"be very useful for printing your invoices with end-of-year wishes, special "
"punctual conditions...\n"
"\n"
" "
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "VAT :"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Tel. :"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "PRO-FORMA"
msgstr ""
#. module: account_invoice_layout
#: field:account.invoice,abstract_line_ids:0
msgid "Invoice Lines"
msgstr ""
#. module: account_invoice_layout
#: view:account.invoice.line:0
msgid "Seq."
msgstr ""
#. module: account_invoice_layout
#: model:ir.ui.menu,name:account_invoice_layout.menu_finan_config_notify_message
msgid "Notification Message"
msgstr ""
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Product"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Description"
msgstr ""
#. module: account_invoice_layout
#: help:account.invoice.line,sequence:0
msgid "Gives the sequence order when displaying a list of invoice lines."
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Price"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Invoice Date"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
msgid "Taxes:"
msgstr ""
#. module: account_invoice_layout
#: field:account.invoice.line,functional_field:0
msgid "Source Account"
msgstr ""
#. module: account_invoice_layout
#: model:ir.actions.act_window,name:account_invoice_layout.notify_mesage_tree_form
msgid "Write Messages"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Base"
msgstr ""
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Page Break"
msgstr ""
#. module: account_invoice_layout
#: view:notify.message:0
#: field:notify.message,msg:0
msgid "Special Message"
msgstr ""
#. module: account_invoice_layout
#: help:account.invoice.special.msg,message:0
msgid "Message to Print at the bottom of report"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Quantity"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Refund"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Fax :"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
msgid "Total:"
msgstr ""
#. module: account_invoice_layout
#: view:account.invoice.special.msg:0
msgid "Select Message"
msgstr ""
#. module: account_invoice_layout
#: view:notify.message:0
msgid "Messages"
msgstr ""
#. module: account_invoice_layout
#: model:ir.actions.report.xml,name:account_invoice_layout.account_invoices_1
msgid "Invoices with Layout"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Description / Taxes"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Amount"
msgstr ""
#. module: account_invoice_layout
#: model:notify.message,msg:account_invoice_layout.demo_message1
msgid "ERP & CRM Solutions..."
msgstr ""
#. module: account_invoice_layout
#: report:notify_account.invoice:0
msgid "Net Total :"
msgstr ""
#. module: account_invoice_layout
#: report:notify_account.invoice:0
msgid "Total :"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Draft Invoice"
msgstr ""
#. module: account_invoice_layout
#: field:account.invoice.line,sequence:0
msgid "Sequence Number"
msgstr ""
#. module: account_invoice_layout
#: model:ir.model,name:account_invoice_layout.model_account_invoice_special_msg
msgid "Account Invoice Special Message"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Origin"
msgstr ""
#. module: account_invoice_layout
#: field:account.invoice.line,state:0
msgid "Type"
msgstr ""
#. module: account_invoice_layout
#: selection:account.invoice.line,state:0
msgid "Separator Line"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Your Reference"
msgstr ""
#. module: account_invoice_layout
#: model:ir.module.module,shortdesc:account_invoice_layout.module_meta_information
msgid "Invoices Layout Improvement"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Supplier Invoice"
msgstr ""
#. module: account_invoice_layout
#: view:account.invoice.special.msg:0
msgid "Print"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Tax"
msgstr ""
#. module: account_invoice_layout
#: model:ir.model,name:account_invoice_layout.model_account_invoice_line
msgid "Invoice Line"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
msgid "Net Total:"
msgstr ""
#. module: account_invoice_layout
#: view:notify.message:0
msgid "Write a notification or a wishful message."
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: model:ir.model,name:account_invoice_layout.model_account_invoice
#: report:notify_account.invoice:0
msgid "Invoice"
msgstr ""
#. module: account_invoice_layout
#: view:account.invoice.special.msg:0
msgid "Cancel"
msgstr ""
#. module: account_invoice_layout
#: report:account.invoice.layout:0
#: report:notify_account.invoice:0
msgid "Supplier Refund"
msgstr ""
#. module: account_invoice_layout
#: field:account.invoice.special.msg,message:0
msgid "Message"
msgstr ""
#. module: account_invoice_layout
#: report:notify_account.invoice:0
msgid "Taxes :"
msgstr ""
#. module: account_invoice_layout
#: model:ir.ui.menu,name:account_invoice_layout.menu_notify_mesage_tree_form
msgid "All Notification Messages"
msgstr ""
+714
View File
@@ -0,0 +1,714 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 16:56+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_payment
#: field:payment.order,date_scheduled:0
msgid "Scheduled date if fixed"
msgstr ""
#. module: account_payment
#: field:payment.line,currency:0
msgid "Partner Currency"
msgstr ""
#. module: account_payment
#: view:payment.order:0
msgid "Set to draft"
msgstr ""
#. module: account_payment
#: help:payment.order,mode:0
msgid "Select the Payment Mode to be applied."
msgstr ""
#. module: account_payment
#: view:payment.mode:0
#: view:payment.order:0
msgid "Group By..."
msgstr ""
#. module: account_payment
#: model:ir.module.module,description:account_payment.module_meta_information
msgid ""
"\n"
"This module provides :\n"
"* a more efficient way to manage invoice payment.\n"
"* a basic mechanism to easily plug various automated payment.\n"
" "
msgstr ""
#. module: account_payment
#: field:payment.order,line_ids:0
msgid "Payment lines"
msgstr ""
#. module: account_payment
#: view:payment.line:0
#: field:payment.line,info_owner:0
#: view:payment.order:0
msgid "Owner Account"
msgstr ""
#. module: account_payment
#: help:payment.order,state:0
msgid ""
"When an order is placed the state is 'Draft'.\n"
" Once the bank is confirmed the state is set to 'Confirmed'.\n"
" Then the order is paid the state is 'Done'."
msgstr ""
#. module: account_payment
#: help:account.invoice,amount_to_pay:0
msgid ""
"The amount which should be paid at the current date\n"
"minus the amount which is already in payment order"
msgstr ""
#. module: account_payment
#: field:payment.mode,company_id:0
msgid "Company"
msgstr ""
#. module: account_payment
#: field:payment.order,date_prefered:0
msgid "Preferred date"
msgstr ""
#. module: account_payment
#: selection:payment.line,state:0
msgid "Free"
msgstr ""
#. module: account_payment
#: field:payment.order.create,entries:0
msgid "Entries"
msgstr ""
#. module: account_payment
#: report:payment.order:0
msgid "Used Account"
msgstr ""
#. module: account_payment
#: field:payment.line,ml_maturity_date:0
#: field:payment.order.create,duedate:0
msgid "Due Date"
msgstr ""
#. module: account_payment
#: constraint:account.move.line:0
msgid "You can not create move line on closed account."
msgstr ""
#. module: account_payment
#: view:account.move.line:0
msgid "Account Entry Line"
msgstr ""
#. module: account_payment
#: view:payment.order.create:0
msgid "_Add to payment order"
msgstr ""
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_account_payment_populate_statement
#: model:ir.actions.act_window,name:account_payment.action_account_populate_statement_confirm
msgid "Payment Populate statement"
msgstr ""
#. module: account_payment
#: report:payment.order:0
#: view:payment.order:0
msgid "Amount"
msgstr ""
#. module: account_payment
#: sql_constraint:account.move.line:0
msgid "Wrong credit or debit value in accounting entry !"
msgstr ""
#. module: account_payment
#: view:payment.order:0
msgid "Total in Company Currency"
msgstr ""
#. module: account_payment
#: selection:payment.order,state:0
msgid "Cancelled"
msgstr ""
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_order_tree_new
msgid "New Payment Order"
msgstr ""
#. module: account_payment
#: report:payment.order:0
#: field:payment.order,reference:0
msgid "Reference"
msgstr ""
#. module: account_payment
#: sql_constraint:payment.line:0
msgid "The payment line name must be unique!"
msgstr ""
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_order_tree
#: model:ir.ui.menu,name:account_payment.menu_action_payment_order_form
msgid "Payment Orders"
msgstr ""
#. module: account_payment
#: selection:payment.order,date_prefered:0
msgid "Directly"
msgstr ""
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_line_form
#: model:ir.model,name:account_payment.model_payment_line
#: view:payment.line:0
#: view:payment.order:0
msgid "Payment Line"
msgstr ""
#. module: account_payment
#: view:payment.line:0
msgid "Amount Total"
msgstr ""
#. module: account_payment
#: view:payment.order:0
#: selection:payment.order,state:0
msgid "Confirmed"
msgstr ""
#. module: account_payment
#: help:payment.line,ml_date_created:0
msgid "Invoice Effective Date"
msgstr ""
#. module: account_payment
#: report:payment.order:0
msgid "Execution Type"
msgstr ""
#. module: account_payment
#: selection:payment.line,state:0
msgid "Structured"
msgstr ""
#. module: account_payment
#: view:payment.order:0
#: field:payment.order,state:0
msgid "State"
msgstr ""
#. module: account_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "Transaction Information"
msgstr ""
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_mode_form
#: model:ir.model,name:account_payment.model_payment_mode
#: model:ir.ui.menu,name:account_payment.menu_action_payment_mode_form
#: view:payment.mode:0
#: view:payment.order:0
msgid "Payment Mode"
msgstr ""
#. module: account_payment
#: field:payment.line,ml_date_created:0
msgid "Effective Date"
msgstr ""
#. module: account_payment
#: field:payment.line,ml_inv_ref:0
msgid "Invoice Ref."
msgstr ""
#. module: account_payment
#: help:payment.order,date_prefered:0
msgid ""
"Choose an option for the Payment Order:'Fixed' stands for a date specified "
"by you.'Directly' stands for the direct execution.'Due date' stands for the "
"scheduled date of execution."
msgstr ""
#. module: account_payment
#: code:addons/account_payment/account_move_line.py:110
#, python-format
msgid "Error !"
msgstr ""
#. module: account_payment
#: view:account.move.line:0
msgid "Total debit"
msgstr ""
#. module: account_payment
#: field:payment.order,date_done:0
msgid "Execution date"
msgstr ""
#. module: account_payment
#: help:payment.mode,journal:0
msgid "Bank or Cash Journal for the Payment Mode"
msgstr ""
#. module: account_payment
#: selection:payment.order,date_prefered:0
msgid "Fixed date"
msgstr ""
#. module: account_payment
#: field:payment.line,info_partner:0
#: view:payment.order:0
msgid "Destination Account"
msgstr ""
#. module: account_payment
#: view:payment.line:0
msgid "Desitination Account"
msgstr ""
#. module: account_payment
#: view:payment.order:0
msgid "Search Payment Orders"
msgstr ""
#. module: account_payment
#: constraint:account.move.line:0
msgid ""
"You can not create move line on receivable/payable account without partner"
msgstr ""
#. module: account_payment
#: field:payment.line,create_date:0
msgid "Created"
msgstr ""
#. module: account_payment
#: view:payment.order:0
msgid "Select Invoices to Pay"
msgstr ""
#. module: account_payment
#: view:payment.line:0
msgid "Currency Amount Total"
msgstr ""
#. module: account_payment
#: view:payment.order:0
msgid "Make Payments"
msgstr ""
#. module: account_payment
#: field:payment.line,state:0
msgid "Communication Type"
msgstr ""
#. module: account_payment
#: model:ir.module.module,shortdesc:account_payment.module_meta_information
msgid "Payment Management"
msgstr ""
#. module: account_payment
#: field:payment.line,bank_statement_line_id:0
msgid "Bank statement line"
msgstr ""
#. module: account_payment
#: selection:payment.order,date_prefered:0
msgid "Due date"
msgstr ""
#. module: account_payment
#: field:account.invoice,amount_to_pay:0
msgid "Amount to be paid"
msgstr ""
#. module: account_payment
#: report:payment.order:0
msgid "Currency"
msgstr ""
#. module: account_payment
#: view:account.payment.make.payment:0
msgid "Yes"
msgstr ""
#. module: account_payment
#: help:payment.line,info_owner:0
msgid "Address of the Main Partner"
msgstr ""
#. module: account_payment
#: help:payment.line,date:0
msgid ""
"If no payment date is specified, the bank will treat this payment line "
"directly"
msgstr ""
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_payment_populate_statement
msgid "Account Payment Populate Statement"
msgstr ""
#. module: account_payment
#: help:payment.mode,name:0
msgid "Mode of Payment"
msgstr ""
#. module: account_payment
#: report:payment.order:0
msgid "Value Date"
msgstr ""
#. module: account_payment
#: report:payment.order:0
msgid "Payment Type"
msgstr ""
#. module: account_payment
#: help:payment.line,amount_currency:0
msgid "Payment amount in the partner currency"
msgstr ""
#. module: account_payment
#: view:payment.order:0
#: selection:payment.order,state:0
msgid "Draft"
msgstr ""
#. module: account_payment
#: help:payment.line,communication2:0
msgid "The successor message of Communication."
msgstr ""
#. module: account_payment
#: code:addons/account_payment/account_move_line.py:110
#, python-format
msgid "No partner defined on entry line"
msgstr ""
#. module: account_payment
#: help:payment.line,info_partner:0
msgid "Address of the Ordering Customer."
msgstr ""
#. module: account_payment
#: view:account.payment.populate.statement:0
msgid "Populate Statement:"
msgstr ""
#. module: account_payment
#: view:account.move.line:0
msgid "Total credit"
msgstr ""
#. module: account_payment
#: help:payment.order,date_scheduled:0
msgid "Select a date if you have chosen Preferred Date to be fixed."
msgstr ""
#. module: account_payment
#: field:payment.order,user_id:0
msgid "User"
msgstr ""
#. module: account_payment
#: field:account.payment.populate.statement,lines:0
#: model:ir.actions.act_window,name:account_payment.act_account_invoice_2_payment_line
msgid "Payment Lines"
msgstr ""
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_move_line
msgid "Journal Items"
msgstr ""
#. module: account_payment
#: constraint:account.move.line:0
msgid "Company must be same for its related account and period."
msgstr ""
#. module: account_payment
#: help:payment.line,move_line_id:0
msgid ""
"This Entry Line will be referred for the information of the ordering "
"customer."
msgstr ""
#. module: account_payment
#: view:payment.order.create:0
msgid "Search"
msgstr ""
#. module: account_payment
#: model:ir.actions.report.xml,name:account_payment.payment_order1
#: model:ir.model,name:account_payment.model_payment_order
msgid "Payment Order"
msgstr ""
#. module: account_payment
#: field:payment.line,date:0
msgid "Payment Date"
msgstr ""
#. module: account_payment
#: report:payment.order:0
msgid "Total:"
msgstr ""
#. module: account_payment
#: field:payment.order,date_created:0
msgid "Creation date"
msgstr ""
#. module: account_payment
#: view:account.payment.populate.statement:0
msgid "ADD"
msgstr ""
#. module: account_payment
#: view:account.bank.statement:0
msgid "Import payment lines"
msgstr ""
#. module: account_payment
#: field:account.move.line,amount_to_pay:0
msgid "Amount to pay"
msgstr ""
#. module: account_payment
#: field:payment.line,amount:0
msgid "Amount in Company Currency"
msgstr ""
#. module: account_payment
#: help:payment.line,partner_id:0
msgid "The Ordering Customer"
msgstr ""
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_payment_make_payment
msgid "Account make payment"
msgstr ""
#. module: account_payment
#: report:payment.order:0
msgid "Invoice Ref"
msgstr ""
#. module: account_payment
#: field:payment.line,name:0
msgid "Your Reference"
msgstr ""
#. module: account_payment
#: field:payment.order,mode:0
msgid "Payment mode"
msgstr ""
#. module: account_payment
#: view:payment.order:0
msgid "Payment order"
msgstr ""
#. module: account_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "General Information"
msgstr ""
#. module: account_payment
#: view:payment.order:0
#: selection:payment.order,state:0
msgid "Done"
msgstr ""
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_invoice
msgid "Invoice"
msgstr ""
#. module: account_payment
#: field:payment.line,communication:0
msgid "Communication"
msgstr ""
#. module: account_payment
#: view:account.payment.make.payment:0
#: view:account.payment.populate.statement:0
#: view:payment.order:0
#: view:payment.order.create:0
msgid "Cancel"
msgstr ""
#. module: account_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "Information"
msgstr ""
#. module: account_payment
#: model:ir.actions.act_window,help:account_payment.action_payment_order_tree
msgid ""
"A payment order is a payment request from your company to pay a supplier "
"invoice or a customer credit note. Here you can register all payment orders "
"that should be done, keep track of all payment orders and mention the "
"invoice reference and the partner the payment should be done for."
msgstr ""
#. module: account_payment
#: help:payment.line,amount:0
msgid "Payment amount in the company currency"
msgstr ""
#. module: account_payment
#: view:payment.order.create:0
msgid "Search Payment lines"
msgstr ""
#. module: account_payment
#: field:payment.line,amount_currency:0
msgid "Amount in Partner Currency"
msgstr ""
#. module: account_payment
#: field:payment.line,communication2:0
msgid "Communication 2"
msgstr ""
#. module: account_payment
#: field:payment.line,bank_id:0
msgid "Destination Bank account"
msgstr ""
#. module: account_payment
#: view:account.payment.make.payment:0
msgid "Are you sure you want to make payment?"
msgstr ""
#. module: account_payment
#: view:payment.mode:0
#: field:payment.mode,journal:0
msgid "Journal"
msgstr ""
#. module: account_payment
#: field:payment.mode,bank_id:0
msgid "Bank account"
msgstr ""
#. module: account_payment
#: view:payment.order:0
msgid "Confirm Payments"
msgstr ""
#. module: account_payment
#: field:payment.line,company_currency:0
#: report:payment.order:0
msgid "Company Currency"
msgstr ""
#. module: account_payment
#: model:ir.ui.menu,name:account_payment.menu_main_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "Payment"
msgstr ""
#. module: account_payment
#: report:payment.order:0
msgid "Payment Order / Payment"
msgstr ""
#. module: account_payment
#: field:payment.line,move_line_id:0
msgid "Entry line"
msgstr ""
#. module: account_payment
#: help:payment.line,communication:0
msgid ""
"Used as the message between ordering customer and current company. Depicts "
"'What do you want to say to the recipient about this order ?'"
msgstr ""
#. module: account_payment
#: field:payment.mode,name:0
msgid "Name"
msgstr ""
#. module: account_payment
#: report:payment.order:0
msgid "Bank Account"
msgstr ""
#. module: account_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "Entry Information"
msgstr ""
#. module: account_payment
#: model:ir.model,name:account_payment.model_payment_order_create
msgid "payment.order.create"
msgstr ""
#. module: account_payment
#: field:payment.line,order_id:0
msgid "Order"
msgstr ""
#. module: account_payment
#: field:payment.order,total:0
msgid "Total"
msgstr ""
#. module: account_payment
#: view:account.payment.make.payment:0
#: model:ir.actions.act_window,name:account_payment.action_account_payment_make_payment
msgid "Make Payment"
msgstr ""
#. module: account_payment
#: field:payment.line,partner_id:0
#: report:payment.order:0
msgid "Partner"
msgstr ""
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_create_payment_order
msgid "Populate Payment"
msgstr ""
#. module: account_payment
#: help:payment.mode,bank_id:0
msgid "Bank Account for the Payment Mode"
msgstr ""
#. module: account_payment
#: constraint:account.move.line:0
msgid "You can not create move line on view account."
msgstr ""
+221
View File
@@ -0,0 +1,221 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 16:58+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: account_sequence
#: view:account.sequence.installer:0
#: model:ir.actions.act_window,name:account_sequence.action_account_seq_installer
msgid "Account Sequence Application Configuration"
msgstr ""
#. module: account_sequence
#: constraint:account.move:0
msgid ""
"You cannot create entries on different periods/journals in the same move"
msgstr ""
#. module: account_sequence
#: help:account.move,internal_sequence_number:0
#: help:account.move.line,internal_sequence_number:0
msgid "Internal Sequence Number"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,number_next:0
msgid "Next number of this sequence"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,number_next:0
msgid "Next Number"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,number_increment:0
msgid "Increment Number"
msgstr ""
#. module: account_sequence
#: model:ir.module.module,description:account_sequence.module_meta_information
msgid ""
"\n"
" This module maintains internal sequence number for accounting entries.\n"
" "
msgstr ""
#. module: account_sequence
#: model:ir.module.module,shortdesc:account_sequence.module_meta_information
msgid "Entries Sequence Numbering"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,number_increment:0
msgid "The next number of the sequence will be incremented by this number"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "Configure Your Account Sequence Application"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,progress:0
msgid "Configuration Progress"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,suffix:0
msgid "Suffix value of the record for the sequence"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,company_id:0
msgid "Company"
msgstr ""
#. module: account_sequence
#: help:account.journal,internal_sequence_id:0
msgid ""
"This sequence will be used to maintain the internal number for the journal "
"entries related to this journal."
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,padding:0
msgid "Number padding"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_move_line
msgid "Journal Items"
msgstr ""
#. module: account_sequence
#: field:account.move,internal_sequence_number:0
#: field:account.move.line,internal_sequence_number:0
msgid "Internal Number"
msgstr ""
#. module: account_sequence
#: constraint:account.move.line:0
msgid "Company must be same for its related account and period."
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,padding:0
msgid ""
"OpenERP will automatically adds some '0' on the left of the 'Next Number' to "
"get the required padding size."
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,name:0
msgid "Name"
msgstr ""
#. module: account_sequence
#: constraint:account.move.line:0
msgid "You can not create move line on closed account."
msgstr ""
#. module: account_sequence
#: constraint:account.move:0
msgid ""
"You cannot create more than one move per period on centralized journal"
msgstr ""
#. module: account_sequence
#: sql_constraint:account.move.line:0
msgid "Wrong credit or debit value in accounting entry !"
msgstr ""
#. module: account_sequence
#: field:account.journal,internal_sequence_id:0
msgid "Internal Sequence"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_sequence_installer
msgid "account.sequence.installer"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "Configure"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,prefix:0
msgid "Prefix value of the record for the sequence"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_move
msgid "Account Entry"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,suffix:0
msgid "Suffix"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,config_logo:0
msgid "Image"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "title"
msgstr ""
#. module: account_sequence
#: sql_constraint:account.journal:0
msgid "The name of the journal must be unique per company !"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,prefix:0
msgid "Prefix"
msgstr ""
#. module: account_sequence
#: sql_constraint:account.journal:0
msgid "The code of the journal must be unique per company !"
msgstr ""
#. module: account_sequence
#: constraint:account.move.line:0
msgid ""
"You can not create move line on receivable/payable account without partner"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_journal
msgid "Journal"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "You can enhance the Account Sequence Application by installing ."
msgstr ""
#. module: account_sequence
#: constraint:account.move.line:0
msgid "You can not create move line on view account."
msgstr ""
+19 -16
View File
@@ -91,10 +91,10 @@ class account_voucher(osv.osv):
return False
def _get_payment_rate_currency(self, cr, uid, context=None):
'''
"""
Return the default value for field payment_rate_currency_id: the currency of the journal
if there is one, otherwise the currency of the user's company
'''
"""
if context is None: context = {}
journal_pool = self.pool.get('account.journal')
journal_id = context.get('journal_id', False)
@@ -141,20 +141,22 @@ class account_voucher(osv.osv):
def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
mod_obj = self.pool.get('ir.model.data')
if context is None: context = {}
if not view_id and context.get('invoice_type', False):
if context.get('invoice_type', False) in ('out_invoice', 'out_refund'):
result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form')
else:
result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form')
result = result and result[1] or False
view_id = result
if not view_id and view_type == 'form' and context.get('line_type', False):
if context.get('line_type', False) == 'customer':
result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form')
else:
result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form')
result = result and result[1] or False
view_id = result
if view_type == 'form':
if not view_id and context.get('invoice_type'):
if context.get('invoice_type') in ('out_invoice', 'out_refund'):
result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form')
else:
result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form')
result = result and result[1] or False
view_id = result
if not view_id and context.get('line_type'):
if context.get('line_type') == 'customer':
result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_receipt_form')
else:
result = mod_obj.get_object_reference(cr, uid, 'account_voucher', 'view_vendor_payment_form')
result = result and result[1] or False
view_id = result
res = super(account_voucher, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
doc = etree.XML(res['arch'])
@@ -990,6 +992,7 @@ class account_voucher(osv.osv):
context = {}
move_line_obj = self.pool.get('account.move.line')
currency_obj = self.pool.get('res.currency')
tax_obj = self.pool.get('account.tax')
tot_line = line_total
rec_lst_ids = []
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

@@ -51,7 +51,7 @@
name: "cash account in usd"
code: "Xcash usd"
type: 'liquidity'
user_type: "account.account_type_cash_moves"
user_type: "account.data_account_type_cash"
-
I create a bank journal with USD as currency
@@ -46,7 +46,7 @@
name: "cash account in chf"
code: "Xcash chf"
type: 'liquidity'
user_type: "account.account_type_cash_moves"
user_type: "account.data_account_type_cash"
-
I create a bank journal with CHF as currency
@@ -205,6 +205,7 @@
<group col="2" colspan="1">
<group col="4" colspan="1" attrs="{'invisible':[('currency_id','=',False),('is_multi_currency','=',False)]}">
<separator string="Currency Options" colspan="4"/>
<field name="is_multi_currency" invisible="1"/>
<field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context)" groups='base.group_extended' colspan="3"/>
<field name="payment_rate_currency_id" groups='base.group_extended' colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)"/>
<field name="paid_amount_in_company_currency" groups='base.group_extended' colspan="4" invisible="1"/>
@@ -356,6 +357,7 @@
<group col="2" colspan="1">
<group col="4" colspan="1" attrs="{'invisible':[('currency_id','=',False),('is_multi_currency','=',False)]}">
<separator string="Currency Options" colspan="4"/>
<field name="is_multi_currency" invisible="1"/>
<field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context)" groups='base.group_extended' colspan="3"/>
<field name="payment_rate_currency_id" groups='base.group_extended' colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)"/>
<field name="paid_amount_in_company_currency" groups='base.group_extended' colspan="4" invisible="1"/>
@@ -75,7 +75,7 @@ class account_statement_from_invoice_lines(osv.osv_memory):
statement.currency.id, amount, context=ctx)
context.update({'move_line_ids': [line.id]})
result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, price=abs(amount), currency_id= statement.currency.id, ttype=(amount < 0 and 'payment' or 'receipt'), date=line_date, context=context)
result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, amount=abs(amount), currency_id= statement.currency.id, ttype=(amount < 0 and 'payment' or 'receipt'), date=line_date, context=context)
voucher_res = { 'type':(amount < 0 and 'payment' or 'receipt'),
'name': line.name,
'partner_id': line.partner_id.id,
+255
View File
@@ -0,0 +1,255 @@
# 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: 2011-01-11 11:14+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: analytic
#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr ""
#. module: analytic
#: field:account.analytic.account,name:0
msgid "Account Name"
msgstr ""
#. module: analytic
#: help:account.analytic.line,unit_amount:0
msgid "Specifies the amount of quantity to count."
msgstr ""
#. module: analytic
#: model:ir.module.module,description:analytic.module_meta_information
msgid ""
"Module for defining analytic accounting object.\n"
" "
msgstr ""
#. module: analytic
#: field:account.analytic.account,state:0
msgid "State"
msgstr ""
#. module: analytic
#: field:account.analytic.account,user_id:0
msgid "Account Manager"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Draft"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Closed"
msgstr ""
#. module: analytic
#: field:account.analytic.account,debit:0
msgid "Debit"
msgstr ""
#. module: analytic
#: help:account.analytic.account,state:0
msgid ""
"* 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'."
msgstr ""
#. module: analytic
#: field:account.analytic.account,type:0
msgid "Account Type"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Template"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Pending"
msgstr ""
#. module: analytic
#: model:ir.model,name:analytic.model_account_analytic_line
msgid "Analytic Line"
msgstr ""
#. module: analytic
#: field:account.analytic.account,description:0
#: field:account.analytic.line,name:0
msgid "Description"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "Normal"
msgstr ""
#. module: analytic
#: field:account.analytic.account,company_id:0
#: field:account.analytic.line,company_id:0
msgid "Company"
msgstr ""
#. module: analytic
#: field:account.analytic.account,quantity_max:0
msgid "Maximum Quantity"
msgstr ""
#. module: analytic
#: field:account.analytic.line,user_id:0
msgid "User"
msgstr ""
#. module: analytic
#: field:account.analytic.account,parent_id:0
msgid "Parent Analytic Account"
msgstr ""
#. module: analytic
#: field:account.analytic.line,date:0
msgid "Date"
msgstr ""
#. module: analytic
#: field:account.analytic.account,currency_id:0
msgid "Account currency"
msgstr ""
#. module: analytic
#: field:account.analytic.account,quantity:0
#: field:account.analytic.line,unit_amount:0
msgid "Quantity"
msgstr ""
#. module: analytic
#: help:account.analytic.line,amount:0
msgid ""
"Calculated by multiplying the quantity and the price given in the Product's "
"cost price. Always expressed in the company main currency."
msgstr ""
#. module: analytic
#: help:account.analytic.account,quantity_max:0
msgid "Sets the higher limit of quantity of hours."
msgstr ""
#. module: analytic
#: field:account.analytic.account,credit:0
msgid "Credit"
msgstr ""
#. module: analytic
#: field:account.analytic.line,amount:0
msgid "Amount"
msgstr ""
#. module: analytic
#: field:account.analytic.account,contact_id:0
msgid "Contact"
msgstr ""
#. module: analytic
#: constraint:account.analytic.account:0
msgid ""
"Error! The currency has to be the same as the currency of the selected "
"company"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Cancelled"
msgstr ""
#. module: analytic
#: field:account.analytic.account,balance:0
msgid "Balance"
msgstr ""
#. module: analytic
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic
#: help:account.analytic.account,type:0
msgid ""
"If you select the View Type, it means you won't allow to create journal "
"entries using that account."
msgstr ""
#. module: analytic
#: field:account.analytic.account,date:0
msgid "Date End"
msgstr ""
#. module: analytic
#: field:account.analytic.account,code:0
msgid "Account Code"
msgstr ""
#. module: analytic
#: field:account.analytic.account,complete_name:0
msgid "Full Account Name"
msgstr ""
#. module: analytic
#: field:account.analytic.line,account_id:0
#: model:ir.model,name:analytic.model_account_analytic_account
#: model:ir.module.module,shortdesc:analytic.module_meta_information
msgid "Analytic Account"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "View"
msgstr ""
#. module: analytic
#: field:account.analytic.account,partner_id:0
msgid "Partner"
msgstr ""
#. module: analytic
#: field:account.analytic.account,date_start:0
msgid "Date Start"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Open"
msgstr ""
#. module: analytic
#: field:account.analytic.account,line_ids:0
msgid "Analytic Entries"
msgstr ""
@@ -0,0 +1,95 @@
# 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: 2011-01-03 16:56+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\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 ""
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic 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
#: 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.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 ""
#. 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 ""
#. 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 ""
+103
View File
@@ -0,0 +1,103 @@
# 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: 2011-01-03 16:56+0000\n"
"PO-Revision-Date: 2011-12-18 17:03+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: analytic_user_function
#: field:analytic_user_funct_grid,product_id:0
msgid "Product"
msgstr ""
#. module: analytic_user_function
#: code:addons/analytic_user_function/analytic_user_function.py:96
#: code:addons/analytic_user_function/analytic_user_function.py:131
#, python-format
msgid "Error !"
msgstr ""
#. module: analytic_user_function
#: model:ir.model,name:analytic_user_function.model_hr_analytic_timesheet
msgid "Timesheet Line"
msgstr ""
#. module: analytic_user_function
#: field:analytic_user_funct_grid,account_id:0
#: model:ir.model,name:analytic_user_function.model_account_analytic_account
msgid "Analytic Account"
msgstr ""
#. module: analytic_user_function
#: view:account.analytic.account:0
#: field:account.analytic.account,user_product_ids:0
msgid "Users/Products Rel."
msgstr ""
#. module: analytic_user_function
#: field:analytic_user_funct_grid,user_id:0
msgid "User"
msgstr ""
#. module: analytic_user_function
#: constraint:account.analytic.account:0
msgid ""
"Error! The currency has to be the same as the currency of the selected "
"company"
msgstr ""
#. module: analytic_user_function
#: code:addons/analytic_user_function/analytic_user_function.py:97
#: code:addons/analytic_user_function/analytic_user_function.py:132
#, python-format
msgid "There is no expense account define for this product: \"%s\" (id:%d)"
msgstr ""
#. module: analytic_user_function
#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid
msgid "Relation table between users and products on a analytic account"
msgstr ""
#. module: analytic_user_function
#: model:ir.module.module,description:analytic_user_function.module_meta_information
msgid ""
"\n"
"\n"
" This module allows you to define what is the default function of a "
"specific user 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 employee data so that this module is "
"perfectly compatible with older configurations.\n"
"\n"
" "
msgstr ""
#. module: analytic_user_function
#: model:ir.module.module,shortdesc:analytic_user_function.module_meta_information
msgid "Analytic User Function"
msgstr ""
#. module: analytic_user_function
#: constraint:account.analytic.account:0
msgid "Error! You can not create recursive analytic accounts."
msgstr ""
#. module: analytic_user_function
#: view:analytic_user_funct_grid:0
msgid "User's Product for this Analytic Account"
msgstr ""
+226
View File
@@ -0,0 +1,226 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 17:04+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
msgid "ir.model.fields.anonymize.wizard"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization,field_name:0
msgid "Field Name"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization,field_id:0
msgid "Field"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization.history,state:0
#: field:ir.model.fields.anonymize.wizard,state:0
msgid "State"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,file_import:0
msgid "Import"
msgstr ""
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization
msgid "ir.model.fields.anonymization"
msgstr ""
#. module: anonymization
#: model:ir.module.module,shortdesc:anonymization.module_meta_information
msgid "Database anonymization module"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization.history,direction:0
msgid "Direction"
msgstr ""
#. module: anonymization
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_tree
#: view:ir.model.fields.anonymization:0
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_fields
msgid "Anonymized Fields"
msgstr ""
#. module: anonymization
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization
msgid "Database anonymization"
msgstr ""
#. module: anonymization
#: code:addons/anonymization/anonymization.py:55
#: sql_constraint:ir.model.fields.anonymization:0
#, python-format
msgid "You cannot have two records having the same model and the same field"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Anonymized"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization,state:0
msgid "unknown"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization,model_id:0
msgid "Object"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization.history,filepath:0
msgid "File path"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization.history,date:0
msgid "Date"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,file_export:0
msgid "Export"
msgstr ""
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
msgid "Reverse the Database Anonymization"
msgstr ""
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
msgid "Database Anonymization"
msgstr ""
#. module: anonymization
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard
msgid "Anonymize database"
msgstr ""
#. module: anonymization
#: view:ir.model.fields.anonymization.history:0
#: field:ir.model.fields.anonymization.history,field_ids:0
msgid "Fields"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Clear"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,direction:0
msgid "clear -> anonymized"
msgstr ""
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
#: field:ir.model.fields.anonymize.wizard,summary:0
msgid "Summary"
msgstr ""
#. module: anonymization
#: view:ir.model.fields.anonymization:0
msgid "Anonymized Field"
msgstr ""
#. module: anonymization
#: model:ir.module.module,description:anonymization.module_meta_information
msgid ""
"\n"
"This module allows you to anonymize a database.\n"
" "
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Unstable"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Exception occured"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Not Existing"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization,model_name:0
msgid "Object Name"
msgstr ""
#. module: anonymization
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_history_tree
#: view:ir.model.fields.anonymization.history:0
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_history
msgid "Anonymization History"
msgstr ""
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_history
msgid "ir.model.fields.anonymization.history"
msgstr ""
#. module: anonymization
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard
#: view:ir.model.fields.anonymize.wizard:0
msgid "Anonymize Database"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,name:0
msgid "File Name"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,direction:0
msgid "anonymized -> clear"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Started"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Done"
msgstr ""
#. module: anonymization
#: view:ir.model.fields.anonymization.history:0
#: field:ir.model.fields.anonymization.history,msg:0
#: field:ir.model.fields.anonymize.wizard,msg:0
msgid "Message"
msgstr ""
+135
View File
@@ -0,0 +1,135 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 19:41+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: association
#: field:profile.association.config.install_modules_wizard,wiki:0
msgid "Wiki"
msgstr ""
#. module: association
#: view:profile.association.config.install_modules_wizard:0
msgid "Event Management"
msgstr ""
#. module: association
#: field:profile.association.config.install_modules_wizard,project_gtd:0
msgid "Getting Things Done"
msgstr ""
#. module: association
#: model:ir.module.module,description:association.module_meta_information
msgid "This module is to create Profile for Associates"
msgstr ""
#. module: association
#: field:profile.association.config.install_modules_wizard,progress:0
msgid "Configuration Progress"
msgstr ""
#. module: association
#: view:profile.association.config.install_modules_wizard:0
msgid ""
"Here are specific applications related to the Association Profile you "
"selected."
msgstr ""
#. module: association
#: view:profile.association.config.install_modules_wizard:0
msgid "title"
msgstr ""
#. module: association
#: help:profile.association.config.install_modules_wizard,event_project:0
msgid "Helps you to manage and organize your events."
msgstr ""
#. module: association
#: field:profile.association.config.install_modules_wizard,config_logo:0
msgid "Image"
msgstr ""
#. module: association
#: help:profile.association.config.install_modules_wizard,hr_expense:0
msgid ""
"Tracks and manages employee expenses, and can automatically re-invoice "
"clients if the expenses are project-related."
msgstr ""
#. module: association
#: help:profile.association.config.install_modules_wizard,project_gtd:0
msgid ""
"GTD is a methodology to efficiently organise yourself and your tasks. This "
"module fully integrates GTD principle with OpenERP's project management."
msgstr ""
#. module: association
#: view:profile.association.config.install_modules_wizard:0
msgid "Resources Management"
msgstr ""
#. module: association
#: model:ir.module.module,shortdesc:association.module_meta_information
msgid "Association profile"
msgstr ""
#. module: association
#: field:profile.association.config.install_modules_wizard,hr_expense:0
msgid "Expenses Tracking"
msgstr ""
#. module: association
#: model:ir.actions.act_window,name:association.action_config_install_module
#: view:profile.association.config.install_modules_wizard:0
msgid "Association Application Configuration"
msgstr ""
#. module: association
#: help:profile.association.config.install_modules_wizard,wiki:0
msgid ""
"Lets you create wiki pages and page groups in order to keep track of "
"business knowledge and share it with and between your employees."
msgstr ""
#. module: association
#: help:profile.association.config.install_modules_wizard,project:0
msgid ""
"Helps you manage your projects and tasks by tracking them, generating "
"plannings, etc..."
msgstr ""
#. module: association
#: model:ir.model,name:association.model_profile_association_config_install_modules_wizard
msgid "profile.association.config.install_modules_wizard"
msgstr ""
#. module: association
#: field:profile.association.config.install_modules_wizard,event_project:0
msgid "Events"
msgstr ""
#. module: association
#: view:profile.association.config.install_modules_wizard:0
#: field:profile.association.config.install_modules_wizard,project:0
msgid "Project Management"
msgstr ""
#. module: association
#: view:profile.association.config.install_modules_wizard:0
msgid "Configure"
msgstr ""
+4 -4
View File
@@ -21,7 +21,7 @@
<field name="parent_id" eval="0">
<value search="[('type','=','view')]" model="account.account"/>
</field>
<field name="user_type" ref="account.account_type_root"/>
<field name="user_type" ref="account.data_account_type_view"/>
</record>
<record model="account.account" id="auction_expense_view">
@@ -32,13 +32,13 @@
<field name="parent_id" eval="0">
<value search="[('type','=','view')]" model="account.account"/>
</field>
<field name="user_type" ref="account.account_type_expense"/>
<field name="user_type" ref="account.data_account_type_expense"/>
</record>
<record model="account.account" id="auction_income">
<field name="name">Auction Adjudications</field>
<field name="code">A7x*</field>
<field name="user_type" ref="account.account_type_income"/>
<field name="user_type" ref="account.data_account_type_income"/>
<field name="type">other</field>
<field name="currency_id" search="[('name','=','EUR')]"/>
<field name="parent_id" eval="auction_income_view"/>
@@ -47,7 +47,7 @@
<record model="account.account" id="auction_expense">
<field name="name">Auction Adjudication Expenses</field>
<field name="code">A6x*</field>
<field name="user_type" ref="account.account_type_expense"/>
<field name="user_type" ref="account.data_account_type_expense"/>
<field name="type">other</field>
<field name="currency_id" search="[('name','=','EUR')]"/>
<field name="parent_id" eval="auction_expense_view"/>
File diff suppressed because it is too large Load Diff
+377
View File
@@ -0,0 +1,377 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 19:47+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: audittrail
#: model:ir.module.module,shortdesc:audittrail.module_meta_information
msgid "Audit Trail"
msgstr ""
#. module: audittrail
#: code:addons/audittrail/audittrail.py:81
#, python-format
msgid "WARNING: audittrail is not part of the pool"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,log_id:0
msgid "Log"
msgstr ""
#. module: audittrail
#: view:audittrail.rule:0
#: selection:audittrail.rule,state:0
msgid "Subscribed"
msgstr ""
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_rule
msgid "Audittrail Rule"
msgstr ""
#. module: audittrail
#: view:audittrail.view.log:0
#: model:ir.actions.act_window,name:audittrail.action_audittrail_log_tree
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_log_tree
msgid "Audit Logs"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
#: view:audittrail.rule:0
msgid "Group By..."
msgstr ""
#. module: audittrail
#: view:audittrail.rule:0
#: field:audittrail.rule,state:0
msgid "State"
msgstr ""
#. module: audittrail
#: view:audittrail.rule:0
msgid "_Subscribe"
msgstr ""
#. module: audittrail
#: view:audittrail.rule:0
#: selection:audittrail.rule,state:0
msgid "Draft"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,old_value:0
msgid "Old Value"
msgstr ""
#. module: audittrail
#: model:ir.actions.act_window,name:audittrail.action_audittrail_view_log
msgid "View log"
msgstr ""
#. module: audittrail
#: help:audittrail.rule,log_read:0
msgid ""
"Select this if you want to keep track of read/open on any record of the "
"object of this rule"
msgstr ""
#. module: audittrail
#: field:audittrail.log,method:0
msgid "Method"
msgstr ""
#. module: audittrail
#: field:audittrail.view.log,from:0
msgid "Log From"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,log:0
msgid "Log ID"
msgstr ""
#. module: audittrail
#: field:audittrail.log,res_id:0
msgid "Resource Id"
msgstr ""
#. module: audittrail
#: help:audittrail.rule,user_id:0
msgid "if User is not added then it will applicable for all users"
msgstr ""
#. module: audittrail
#: help:audittrail.rule,log_workflow:0
msgid ""
"Select this if you want to keep track of workflow on any record of the "
"object of this rule"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,user_id:0
msgid "Users"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
msgid "Log Lines"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
#: field:audittrail.log,object_id:0
#: field:audittrail.rule,object_id:0
msgid "Object"
msgstr ""
#. module: audittrail
#: view:audittrail.rule:0
msgid "AuditTrail Rule"
msgstr ""
#. module: audittrail
#: field:audittrail.view.log,to:0
msgid "Log To"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
msgid "New Value Text: "
msgstr ""
#. module: audittrail
#: view:audittrail.rule:0
msgid "Search Audittrail Rule"
msgstr ""
#. module: audittrail
#: model:ir.actions.act_window,name:audittrail.action_audittrail_rule_tree
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree
msgid "Audit Rules"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
msgid "Old Value : "
msgstr ""
#. module: audittrail
#: field:audittrail.log,name:0
msgid "Resource Name"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
#: field:audittrail.log,timestamp:0
msgid "Date"
msgstr ""
#. module: audittrail
#: help:audittrail.rule,log_write:0
msgid ""
"Select this if you want to keep track of modification on any record of the "
"object of this rule"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,log_create:0
msgid "Log Creates"
msgstr ""
#. module: audittrail
#: help:audittrail.rule,object_id:0
msgid "Select object for which you want to generate log."
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
msgid "Old Value Text : "
msgstr ""
#. module: audittrail
#: field:audittrail.rule,log_workflow:0
msgid "Log Workflow"
msgstr ""
#. module: audittrail
#: model:ir.module.module,description:audittrail.module_meta_information
msgid ""
"\n"
" This module gives the administrator the rights\n"
" to track every user operation on all the objects\n"
" of the system.\n"
"\n"
" Administrator can subscribe rules for read,write and\n"
" delete on objects and can check logs.\n"
" "
msgstr ""
#. module: audittrail
#: field:audittrail.rule,log_read:0
msgid "Log Reads"
msgstr ""
#. module: audittrail
#: code:addons/audittrail/audittrail.py:82
#, python-format
msgid "Change audittrail depends -- Setting rule as DRAFT"
msgstr ""
#. module: audittrail
#: field:audittrail.log,line_ids:0
msgid "Log lines"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,field_id:0
msgid "Fields"
msgstr ""
#. module: audittrail
#: view:audittrail.rule:0
msgid "AuditTrail Rules"
msgstr ""
#. module: audittrail
#: help:audittrail.rule,log_unlink:0
msgid ""
"Select this if you want to keep track of deletion on any record of the "
"object of this rule"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
#: field:audittrail.log,user_id:0
msgid "User"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,action_id:0
msgid "Action ID"
msgstr ""
#. module: audittrail
#: view:audittrail.rule:0
msgid "Users (if User is not added then it will applicable for all users)"
msgstr ""
#. module: audittrail
#: view:audittrail.rule:0
msgid "UnSubscribe"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,log_unlink:0
msgid "Log Deletes"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,field_description:0
msgid "Field Description"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
msgid "Search Audittrail Log"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,log_write:0
msgid "Log Writes"
msgstr ""
#. module: audittrail
#: view:audittrail.view.log:0
msgid "Open Logs"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,new_value_text:0
msgid "New value Text"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,name:0
msgid "Rule Name"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,new_value:0
msgid "New Value"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
msgid "AuditTrail Logs"
msgstr ""
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_log
msgid "Audittrail Log"
msgstr ""
#. module: audittrail
#: help:audittrail.rule,log_action:0
msgid ""
"Select this if you want to keep track of actions on the object of this rule"
msgstr ""
#. module: audittrail
#: view:audittrail.log:0
msgid "New Value : "
msgstr ""
#. module: audittrail
#: sql_constraint:audittrail.rule:0
msgid ""
"There is a rule defined on this object\n"
" You can not define other on the same!"
msgstr ""
#. module: audittrail
#: field:audittrail.log.line,old_value_text:0
msgid "Old value Text"
msgstr ""
#. module: audittrail
#: view:audittrail.view.log:0
msgid "Cancel"
msgstr ""
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_view_log
msgid "View Log"
msgstr ""
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_log_line
msgid "Log Line"
msgstr ""
#. module: audittrail
#: field:audittrail.rule,log_action:0
msgid "Log Action"
msgstr ""
#. module: audittrail
#: help:audittrail.rule,log_create:0
msgid ""
"Select this if you want to keep track of creation on any record of the "
"object of this rule"
msgstr ""
+502
View File
@@ -0,0 +1,502 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 19:48+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: base_action_rule
#: help:base.action.rule,act_mail_to_user:0
msgid ""
"Check this if you want the rule to send an email to the responsible person."
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_remind_partner:0
msgid "Remind Partner"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,trg_partner_categ_id:0
msgid "Partner Category"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_mail_to_watchers:0
msgid "Mail to Watchers (CC)"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,trg_state_to:0
msgid "Button Pressed"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,model_id:0
msgid "Object"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_mail_to_email:0
msgid "Mail to these Emails"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_state:0
msgid "Set State to"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_email_from:0
msgid "Email From"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Email Body"
msgstr ""
#. module: base_action_rule
#: selection:base.action.rule,trg_date_range_type:0
msgid "Days"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,last_run:0
msgid "Last Run"
msgstr ""
#. module: base_action_rule
#: code:addons/base_action_rule/base_action_rule.py:313
#, python-format
msgid "Error!"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_reply_to:0
msgid "Reply-To"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,act_email_cc:0
msgid ""
"These people will receive a copy of the future communication between partner "
"and users by email"
msgstr ""
#. module: base_action_rule
#: selection:base.action.rule,trg_date_range_type:0
msgid "Minutes"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,name:0
msgid "Rule Name"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,act_remind_partner:0
msgid ""
"Check this if you want the rule to send a reminder by email to the partner."
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Conditions on Model Partner"
msgstr ""
#. module: base_action_rule
#: selection:base.action.rule,trg_date_type:0
msgid "Deadline"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,trg_partner_id:0
msgid "Partner"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "%(object_subject)s = Object subject"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Email Reminders"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Special Keywords to Be Used in The Body"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,trg_state_from:0
msgid "State"
msgstr ""
#. module: base_action_rule
#: model:ir.actions.act_window,help:base_action_rule.base_action_rule_act
msgid ""
"Use automated actions to automatically trigger actions for various screens. "
"Example: a lead created by a specific user may be automatically set to a "
"specific sales team, or an opportunity which still has status pending after "
"14 days might trigger an automatic reminder email."
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,act_mail_to_email:0
msgid "Email-id of the persons whom mail is to be sent"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
#: model:ir.module.module,shortdesc:base_action_rule.module_meta_information
msgid "Action Rule"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Fields to Change"
msgstr ""
#. module: base_action_rule
#: selection:base.action.rule,trg_date_type:0
msgid "Creation Date"
msgstr ""
#. module: base_action_rule
#: selection:base.action.rule,trg_date_type:0
msgid "Last Action Date"
msgstr ""
#. module: base_action_rule
#: selection:base.action.rule,trg_date_range_type:0
msgid "Hours"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "%(object_id)s = Object ID"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Delay After Trigger Date"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_remind_attach:0
msgid "Remind with Attachment"
msgstr ""
#. module: base_action_rule
#: constraint:ir.cron:0
msgid "Invalid arguments"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_user_id:0
msgid "Set Responsible to"
msgstr ""
#. module: base_action_rule
#: selection:base.action.rule,trg_date_type:0
msgid "None"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,act_email_to:0
msgid ""
"Use a python expression to specify the right field on which one than we will "
"use for the 'To' field of the header"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "%(object_user_phone)s = Responsible phone"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid ""
"The rule uses the AND operator. The model must match all non-empty fields so "
"that the rule executes the action described in the 'Actions' tab."
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,trg_date_range_type:0
msgid "Delay type"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,regex_name:0
msgid ""
"Regular expression for matching name of the resource\n"
"e.g.: 'urgent.*' will search for records having name starting with the "
"string 'urgent'\n"
"Note: This is case sensitive search."
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_method:0
msgid "Call Object Method"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_email_to:0
msgid "Email To"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,act_mail_to_watchers:0
msgid ""
"Check this if you want the rule to mark CC(mail to any other person defined "
"in actions)."
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "%(partner)s = Partner name"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Note"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,act_email_from:0
msgid ""
"Use a python expression to specify the right field on which one than we will "
"use for the 'From' field of the header"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,trg_date_range:0
msgid "Delay after trigger date"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Conditions"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,trg_date_range:0
msgid ""
"Delay After Trigger Date,specifies you can put a negative number. If you "
"need a delay before the trigger date, like sending a reminder 15 minutes "
"before a meeting."
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,active:0
msgid "Active"
msgstr ""
#. module: base_action_rule
#: code:addons/base_action_rule/base_action_rule.py:314
#, python-format
msgid "No E-Mail ID Found for your Company address!"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_remind_user:0
msgid "Remind Responsible"
msgstr ""
#. module: base_action_rule
#: model:ir.module.module,description:base_action_rule.module_meta_information
msgid "This module allows to implement action rules for any object."
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,sequence:0
msgid "Gives the sequence order when displaying a list of rules."
msgstr ""
#. module: base_action_rule
#: selection:base.action.rule,trg_date_range_type:0
msgid "Months"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,filter_id:0
msgid "Filter"
msgstr ""
#. module: base_action_rule
#: selection:base.action.rule,trg_date_type:0
msgid "Date"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,server_action_id:0
msgid ""
"Describes the action name.\n"
"eg:on which object which action to be taken on basis of which condition"
msgstr ""
#. module: base_action_rule
#: model:ir.model,name:base_action_rule.model_ir_cron
msgid "ir.cron"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "%(object_description)s = Object description"
msgstr ""
#. module: base_action_rule
#: constraint:base.action.rule:0
msgid "Error: The mail is not well formated"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Email Actions"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Email Information"
msgstr ""
#. module: base_action_rule
#: model:ir.model,name:base_action_rule.model_base_action_rule
msgid "Action Rules"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,act_mail_body:0
msgid "Content of mail"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,trg_user_id:0
msgid "Responsible"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "%(partner_email)s = Partner Email"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "%(object_date)s = Creation date"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "%(object_user_email)s = Responsible Email"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_mail_body:0
msgid "Mail body"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,act_remind_user:0
msgid ""
"Check this if you want the rule to send a reminder by email to the user."
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Server Action to be Triggered"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_mail_to_user:0
msgid "Mail to Responsible"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,act_email_cc:0
msgid "Add Watchers (Cc)"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Conditions on Model Fields"
msgstr ""
#. module: base_action_rule
#: model:ir.actions.act_window,name:base_action_rule.base_action_rule_act
#: model:ir.ui.menu,name:base_action_rule.menu_base_action_rule_form
msgid "Automated Actions"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,server_action_id:0
msgid "Server Action"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,regex_name:0
msgid "Regex on Resource Name"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,act_remind_attach:0
msgid ""
"Check this if you want that all documents attached to the object be attached "
"to the reminder email sent."
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Conditions on Timing"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,sequence:0
msgid "Sequence"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Actions"
msgstr ""
#. module: base_action_rule
#: help:base.action.rule,active:0
msgid ""
"If the active field is set to False, it will allow you to hide the rule "
"without removing it."
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "%(object_user)s = Responsible name"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,create_date:0
msgid "Create Date"
msgstr ""
#. module: base_action_rule
#: view:base.action.rule:0
msgid "Conditions on States"
msgstr ""
#. module: base_action_rule
#: field:base.action.rule,trg_date_type:0
msgid "Trigger Date"
msgstr ""
-3
View File
@@ -20,7 +20,4 @@
##############################################################################
import base_contact
import base_contact_installer
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+2 -4
View File
@@ -19,15 +19,14 @@
#
##############################################################################
{
'name': 'Contacts Management',
'version': '1.0',
'category': 'Customer Relationship Management',
'complexity': "expert",
'description': """
This module allows you to manage your contacts entirely.
========================================================
This module allows you to manage your contacts
==============================================
It lets you define:
* contacts unrelated to a partner,
@@ -47,7 +46,6 @@ Pay attention that this module converts the existing addresses into "addresses +
'update_xml': [
'security/ir.model.access.csv',
'base_contact_view.xml',
'base_contact_installer_view.xml',
'process/base_contact_process.xml'
],
'demo_xml': ['base_contact_demo.xml'],
+175 -186
View File
@@ -20,6 +20,7 @@
##############################################################################
from osv import fields, osv
import addons
class res_partner_contact(osv.osv):
""" Partner Contact """
@@ -27,81 +28,45 @@ class res_partner_contact(osv.osv):
_name = "res.partner.contact"
_description = "Contact"
def _main_job(self, cr, uid, ids, fields, arg, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of partner contact’s IDs
@fields: Get Fields
@param context: A standard dictionary for contextual values
@param arg: list of tuples of form [(‘name_of_the_field’, ‘operator’, value), ...]. """
res = dict.fromkeys(ids, False)
res_partner_job_obj = self.pool.get('res.partner.job')
all_job_ids = res_partner_job_obj.search(cr, uid, [])
all_job_names = dict(zip(all_job_ids, res_partner_job_obj.name_get(cr, uid, all_job_ids, context=context)))
for contact in self.browse(cr, uid, ids, context=context):
if contact.job_ids:
res[contact.id] = all_job_names.get(contact.job_ids[0].id, False)
return res
def _name_get_full(self, cr, uid, ids, prop, unknow_none, context=None):
result = {}
for rec in self.browse(cr, uid, ids, context=context):
result[rec.id] = rec.last_name+' '+(rec.first_name or '')
return result
_columns = {
'name': fields.char('Last Name', size=64, required=True),
'name': fields.function(_name_get_full, string='Name', size=64, type="char", store=True),
'last_name': fields.char('Last Name', size=64, required=True),
'first_name': fields.char('First Name', size=64),
'mobile': fields.char('Mobile', size=64),
'title': fields.many2one('res.partner.title','Title'),
'title': fields.many2one('res.partner.title','Title', domain=[('domain','=','contact')]),
'website': fields.char('Website', size=120),
'lang_id': fields.many2one('res.lang', 'Language'),
'job_ids': fields.one2many('res.partner.job', 'contact_id', 'Functions and Addresses'),
'job_ids': fields.one2many('res.partner.address', 'contact_id', 'Functions and Addresses'),
'country_id': fields.many2one('res.country','Nationality'),
'birthdate': fields.date('Birth Date'),
'active': fields.boolean('Active', help="If the active field is set to False,\
it will allow you to hide the partner contact without removing it."),
'partner_id': fields.related('job_ids', 'address_id', 'partner_id', type='many2one',\
'partner_id': fields.related('job_ids', 'partner_id', type='many2one',\
relation='res.partner', string='Main Employer'),
'function': fields.related('job_ids', 'function', type='char', \
string='Main Function'),
'job_id': fields.function(_main_job, type='many2one',\
relation='res.partner.job', string='Main Job'),
'email': fields.char('E-Mail', size=240),
'comment': fields.text('Notes', translate=True),
'photo': fields.binary('Image'),
'photo': fields.binary('Photo'),
}
def _get_photo(self, cr, uid, context=None):
photo_path = addons.get_module_resource('base_contact', 'images', 'photo.png')
return open(photo_path, 'rb').read().encode('base64')
_defaults = {
'photo' : _get_photo,
'active' : lambda *a: True,
}
_order = "name,first_name"
def name_get(self, cr, user, ids, context=None):
""" will return name and first_name.......
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param user: the current user’s ID for security checks,
@param ids: List of create menu’s IDs
@return: name and first_name
@param context: A standard dictionary for contextual values
"""
if not len(ids):
return []
res = []
for contact in self.browse(cr, user, ids, context=context):
_contact = ""
if contact.title:
_contact += "%s "%(contact.title.name)
_contact += contact.name or ""
if contact.name and contact.first_name:
_contact += " "
_contact += contact.first_name or ""
res.append((contact.id, _contact))
return res
def name_search(self, cr, uid, name='', args=None, operator='ilike', context=None, limit=None):
if not args:
args = []
@@ -112,151 +77,175 @@ class res_partner_contact(osv.osv):
else:
ids = self.search(cr, uid, args, limit=limit, context=context)
return self.name_get(cr, uid, ids, context=context)
def name_get(self, cr, uid, ids, context=None):
result = {}
for obj in self.browse(cr, uid, ids, context=context):
result[obj.id] = obj.name or '/'
if obj.partner_id:
result[obj.id] = result[obj.id] + ', ' + obj.partner_id.name
return result.items()
def _auto_init(self, cr, context=None):
def table_exists(view_name):
cr.execute('SELECT count(relname) FROM pg_class WHERE relname = %s', (view_name,))
value = cr.fetchone()[0]
return bool(value == 1)
exists = table_exists(self._table)
super(res_partner_contact, self)._auto_init(cr, context)
if not exists:
cr.execute("""
INSERT INTO
res_partner_contact
(id,name,last_name,title,active)
SELECT
id,COALESCE(name, '/'),COALESCE(name, '/'),title,true
FROM
res_partner_address""")
cr.execute("alter table res_partner_address add contact_id int references res_partner_contact")
cr.execute("update res_partner_address set contact_id=id")
cr.execute("select setval('res_partner_contact_id_seq', (select max(id)+1 from res_partner_contact))")
res_partner_contact()
class res_partner_location(osv.osv):
_name = 'res.partner.location'
_rec_name = 'street'
_columns = {
'street': fields.char('Street', size=128),
'street2': fields.char('Street2', size=128),
'zip': fields.char('Zip', change_default=True, size=24),
'city': fields.char('City', size=128),
'state_id': fields.many2one("res.country.state", 'Fed. State', domain="[('country_id','=',country_id)]"),
'country_id': fields.many2one('res.country', 'Country'),
'partner_id': fields.many2one('res.partner', 'Partner Name', ondelete='set null', select=True, help="Keep empty for a private address, not related to partner."),
'company_id': fields.many2one('res.company', 'Company',select=1),
'job_ids': fields.one2many('res.partner.address', 'location_id', 'Contacts'),
'partner_id': fields.related('job_ids', 'partner_id', type='many2one',\
relation='res.partner', string='Main Partner'),
}
_defaults = {
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'res.partner.address', context=c),
}
def _auto_init(self, cr, context=None):
def table_exists(view_name):
cr.execute('SELECT count(relname) FROM pg_class WHERE relname = %s', (view_name,))
value = cr.fetchone()[0]
return bool(value == 1)
exists = table_exists(self._table)
super(res_partner_location, self)._auto_init(cr, context)
if not exists:
cr.execute("""
INSERT INTO
res_partner_location
(id,street,street2,zip,city,
state_id,country_id,company_id)
SELECT
id,street,street2,zip,city,
state_id,country_id,company_id
FROM
res_partner_address""")
cr.execute("alter table res_partner_address add location_id int references res_partner_location")
cr.execute("update res_partner_address set location_id=id")
cr.execute("select setval('res_partner_location_id_seq', (select max(id)+1 from res_partner_address))")
def name_get(self, cr, uid, ids, context=None):
result = {}
for obj in self.browse(cr, uid, ids, context=context):
res = []
if obj.partner_id: res.append(obj.partner_id.name_get()[0][1])
if obj.city: res.append(obj.city)
if obj.country_id: res.append(obj.country_id.name_get()[0][1])
result[obj.id] = ', '.join(res)
return result.items()
res_partner_location()
class res_partner_address(osv.osv):
#overriding of the name_get defined in base in order to remove the old contact name
def name_get(self, cr, user, ids, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param user: the current user,
@param ids: List of partner address’s IDs
@param context: A standard dictionary for contextual values
"""
if not len(ids):
return []
res = []
if context is None:
context = {}
for r in self.read(cr, user, ids, ['zip', 'city', 'partner_id', 'street']):
if context.get('contact_display', 'contact')=='partner' and r['partner_id']:
res.append((r['id'], r['partner_id'][1]))
else:
addr = str('')
addr += "%s %s %s" % (r.get('street', '') or '', r.get('zip', '') \
or '', r.get('city', '') or '')
res.append((r['id'], addr.strip() or '/'))
return res
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
if not args:
args=[]
ids = self.search(cr, user, [('name',operator,name)] + args, limit=limit, context=context)
jobs = self.pool.get('res.partner.job')
if name:
job_ids = jobs.search(cr, user, [('contact_id', operator, name)] + args, limit=limit, context=context)
for job in jobs.browse(cr, user, job_ids):
ids += [job.address_id.id]
return self.name_get(cr, user, ids, context)
_name = 'res.partner.address'
_inherit = 'res.partner.address'
_description ='Partner Address'
def _default_location_id(self, cr, uid, context=None):
context = context or {}
if not context.get('default_partner_id',False):
return False
ids = self.pool.get('res.partner.location').search(cr, uid, [('partner_id','=',context['default_partner_id'])], context=context)
return ids and ids[0] or False
def onchange_location_id(self,cr, uid, ids, location_id=False, context={}):
if not location_id:
return {}
location = self.pool.get('res.partner.location').browse(cr, uid, location_id, context=context)
return {'value':{
'street': location.street,
'street2': location.street2,
'zip': location.zip,
'city': location.city,
'country_id': location.country_id and location.country_id.id or False,
'state_id': location.state_id and location.state_id.id or False,
}}
_columns = {
'job_id': fields.related('job_ids','contact_id','job_id',type='many2one',\
relation='res.partner.job', string='Main Job'),
'job_ids': fields.one2many('res.partner.job', 'address_id', 'Contacts'),
}
res_partner_address()
'location_id' : fields.many2one('res.partner.location', 'Location'),
'contact_id' : fields.many2one('res.partner.contact', 'Contact'),
# fields from location
'street': fields.related('location_id', 'street', string='Street', type="char", store=True, size=128),
'street2': fields.related('location_id', 'street2', string='Street2', type="char", store=True, size=128),
'zip': fields.related('location_id', 'zip', string='Zip', type="char", store=True, change_default=True, size=24),
'city': fields.related('location_id', 'city', string='City', type="char", store=True, size=128),
'state_id': fields.related('location_id', 'state_id', relation="res.country.state", string='Fed. State', type="many2one", store=True, domain="[('country_id','=',country_id)]"),
'country_id': fields.related('location_id', 'country_id', type='many2one', string='Country', store=True, relation='res.country'),
'phone': fields.char('Phone', size=64),
'fax': fields.char('Fax', size=64),
'email': fields.char('E-Mail', size=240),
# fields from contact
'mobile' : fields.related('contact_id', 'mobile', type='char', size=64, string='Mobile'),
'name' : fields.related('contact_id', 'name', type='char', size=64, string="Contact Name", store=True),
'title' : fields.related('contact_id', 'title', type='many2one', relation='res.partner.title', string="Title", store=True),
}
def create(self, cr, uid, data, context={}):
if not data.get('location_id', False):
loc_id = self.pool.get('res.partner.location').create(cr, uid, {
'street': data.get('street',''),
'street2': data.get('street2',''),
'zip': data.get('zip',''),
'city': data.get('city',''),
'country_id': data.get('country_id',False),
'state_id': data.get('state_id',False)
}, context=context)
data['location_id'] = loc_id
result = super(res_partner_address, self).create(cr, uid, data, context=context)
return result
class res_partner_job(osv.osv):
def name_get(self, cr, uid, ids, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param user: the current user,
@param ids: List of partner address’s IDs
@param context: A standard dictionary for contextual values
"""
if context is None:
context = {}
if not ids:
return []
res = []
jobs = self.browse(cr, uid, ids, context=context)
contact_ids = [rec.contact_id.id for rec in jobs]
contact_names = dict(self.pool.get('res.partner.contact').name_get(cr, uid, contact_ids, context=context))
for r in jobs:
function_name = r.function
funct = function_name and (", " + function_name) or ""
res.append((r.id, contact_names.get(r.contact_id.id, '') + funct))
return res
_name = 'res.partner.job'
_description ='Contact Partner Function'
_order = 'sequence_contact'
_columns = {
'name': fields.related('address_id', 'partner_id', type='many2one',\
relation='res.partner', string='Partner', help="You may\
enter Address first,Partner will be linked automatically if any."),
'address_id': fields.many2one('res.partner.address', 'Address', \
help='Address which is linked to the Partner'), # TO Correct: domain=[('partner_id', '=', name)]
'contact_id': fields.many2one('res.partner.contact','Contact', required=True, ondelete='cascade'),
'function': fields.char('Partner Function', size=64, help="Function of this contact with this partner"),
'sequence_contact': fields.integer('Contact Seq.',help='Order of\
importance of this address in the list of addresses of the linked contact'),
'sequence_partner': fields.integer('Partner Seq.',help='Order of importance\
of this job title in the list of job title of the linked partner'),
'email': fields.char('E-Mail', size=240, help="Job E-Mail"),
'phone': fields.char('Phone', size=64, help="Job Phone no."),
'fax': fields.char('Fax', size=64, help="Job FAX no."),
'extension': fields.char('Extension', size=64, help='Internal/External extension phone number'),
'other': fields.char('Other', size=64, help='Additional phone field'),
'date_start': fields.date('Date Start',help="Start date of job(Joining Date)"),
'date_stop': fields.date('Date Stop', help="Last date of job"),
'state': fields.selection([('past', 'Past'),('current', 'Current')], \
'State', required=True, help="Status of Address"),
}
result = {}
for rec in self.browse(cr,uid, ids, context=context):
res = []
if rec.partner_id:
res.append(rec.partner_id.name_get()[0][1])
if rec.contact_id and rec.contact_id.name:
res.append(rec.contact_id.name)
if rec.location_id:
if rec.location_id.city: res.append(rec.location_id.city)
if rec.location_id.country_id: res.append(rec.location_id.country_id.name_get()[0][1])
result[rec.id] = ', '.join(res)
return result.items()
_defaults = {
'sequence_contact' : lambda *a: 0,
'state': lambda *a: 'current',
'location_id': _default_location_id
}
def onchange_name(self, cr, uid, ids, address_id='', name='', context=None):
return {'value': {'address_id': address_id}, 'domain':{'partner_id':'name'}}
def onchange_partner(self, cr, uid, _, partner_id, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user,
@param _: List of IDs,
@partner_id : ID of the Partner selected,
@param context: A standard dictionary for contextual values
"""
return {'value': {'address_id': False}}
def onchange_address(self, cr, uid, _, address_id, context=None):
"""
@@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user,
@param _: List of IDs,
@address_id : ID of the Address selected,
@param context: A standard dictionary for contextual values
"""
partner_id = False
if address_id:
address = self.pool.get('res.partner.address')\
.browse(cr, uid, address_id, context=context)
partner_id = address.partner_id.id
return {'value': {'name': partner_id}}
res_partner_job()
def default_get(self, cr, uid, fields=[], context=None):
context = context or {}
if 'default_type' in context:
del context['default_type']
return super(res_partner_address, self).default_get(cr, uid, fields, context)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
res_partner_address()
+63 -122
View File
@@ -3,183 +3,123 @@
<data>
<record id="base.user_demo" model="res.users">
<field eval="[(4, ref('base.group_sale_salesman'))]" name="groups_id"/>
<field eval="[(4,ref('base.group_sale_salesman'))]" name="groups_id"/>
</record>
<!-- Create the contacts -->
<record id="res_partner_contact_mortier0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Benoit&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Mortier&quot;&quot;&quot;" name="name"/>
<field name="first_name">Benoit</field>
<field name="last_name">Mortier</field>
<field name="title" ref="base.res_partner_title_sir"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_jacot0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Laurent&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Jacot&quot;&quot;&quot;" name="name"/>
<field name="first_name">Laurent</field>
<field name="last_name">Jacot</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_passot0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Thomas&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Passot&quot;&quot;&quot;" name="name"/>
<field name="first_name">Thomas</field>
<field name="last_name">Passot</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_lacarte0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Etienne&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Lacarte&quot;&quot;&quot;" name="name"/>
<field eval="1" name="active"/>
<field name="first_name">Etienne</field>
<field name="last_name">Lacarte</field>
</record>
<record id="res_partner_contact_tang0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Tang&quot;&quot;&quot;" name="name"/>
<field eval="1" name="active"/>
<field name="last_name">Tang</field>
</record>
<record id="res_partner_contact_wong0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Wong&quot;&quot;&quot;" name="name"/>
<field eval="1" name="active"/>
<field name="last_name">Wong</field>
</record>
<record id="res_partner_contact_lavente0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Jean-Guy&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Lavente&quot;&quot;&quot;" name="name"/>
<field name="first_name">Jean-Guy</field>
<field name="last_name">Lavente</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_lelitre0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Sylvie&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Lelitre&quot;&quot;&quot;" name="name"/>
<field name="first_name">Sylvie</field>
<field name="last_name">Lelitre</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_grosbonnet0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Arthur&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Grosbonnet&quot;&quot;&quot;" name="name"/>
<field name="first_name">Arthur</field>
<field name="last_name">Grosbonnet</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_lesbrouffe0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Karine&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Lesbrouffe&quot;&quot;&quot;" name="name"/>
<field name="first_name">Karine</field>
<field name="last_name">Lesbrouffe</field>
<field ref="base.res_partner_title_madam" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_zen0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Zen&quot;&quot;&quot;" name="name"/>
<field eval="1" name="active"/>
<field name="last_name">Zen</field>
</record>
<record id="res_partner_contact_pinckears0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;http://fptiny.blogspot.com/&quot;&quot;&quot;" name="website"/>
<field eval="&quot;&quot;&quot;Fabien&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Pinckaers&quot;&quot;&quot;" name="name"/>
<field name="website">http://fptiny.blogspot.com/</field>
<field name="first_name">Fabien</field>
<field name="last_name">Pinckaers</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_debois0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Marc&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Debois&quot;&quot;&quot;" name="name"/>
<field name="first_name">Marc</field>
<field name="last_name">Debois</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_luu0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Phuong&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Luu&quot;&quot;&quot;" name="name"/>
<field name="first_name">Phuong</field>
<field name="last_name">Luu</field>
<field ref="base.res_partner_title_madam" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_elkhayat0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Najlaa&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Khayat&quot;&quot;&quot;" name="name"/>
<field name="first_name">Najlaa</field>
<field name="last_name">Khayat</field>
<field ref="base.res_partner_title_madam" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_depaoli0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Quentin&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Paolino&quot;&quot;&quot;" name="name"/>
<field name="first_name">Quentin</field>
<field name="last_name">Paolino</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_semal0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Fabian&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;W.&quot;&quot;&quot;" name="name"/>
<field name="first_name">Fabian</field>
<field name="last_name">W.</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_vandewerve0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Yvan&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;van de Werve&quot;&quot;&quot;" name="name"/>
<field name="first_name">Yvan</field>
<field name="last_name">Van</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_lambotte0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Henry&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Lambotte&quot;&quot;&quot;" name="name"/>
<field name="first_name">Henry</field>
<field name="last_name">Lambotte</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_laurent0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Olivier&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Laurent&quot;&quot;&quot;" name="name"/>
<field name="first_name">Olivier</field>
<field name="last_name">Laurent</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_simonis0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Christophe&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Dupont&quot;&quot;&quot;" name="name"/>
<field name="first_name">Christophe</field>
<field name="last_name">Dupont</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_wirtel0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Stéphane&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Andre&quot;&quot;&quot;" name="name"/>
<field name="first_name">Stéphane</field>
<field name="last_name">Andre</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_contact_mignon0" model="res.partner.contact">
<field eval="&quot;&quot;&quot;Philippe&quot;&quot;&quot;" name="first_name"/>
<field eval="&quot;&quot;&quot;Antoine&quot;&quot;&quot;" name="name"/>
<field name="first_name">Philippe</field>
<field name="last_name">Antoine</field>
<field ref="base.res_partner_title_sir" name="title"/>
<field eval="1" name="active"/>
</record>
<!-- Create the addresses -->
<record id="base.main_address" model="res.partner.address">
<field eval="&quot;&quot;&quot;Grand-Rosière&quot;&quot;&quot;" name="city"/>
<field eval="&quot;&quot;&quot;+32.81.73.35.01&quot;&quot;&quot;" name="fax"/>
<field eval="&quot;&quot;&quot;1367&quot;&quot;&quot;" name="zip"/>
<!-- The partner associated with the main company should not have a country specified in the demo data,
as it may conflicts with the accounting installing chart wizard. This wizard will indeed try to
install the localization module accordingly to this variable automatically. Thus, in demo data,
everyone would have the belgian chart of account by default, what should be avoided. -->
<!-- <field name="country_id" ref="base.be"/> -->
<field eval="&quot;&quot;&quot;+32.81.81.37.00&quot;&quot;&quot;" name="phone"/>
<field eval="&quot;&quot;&quot;Chaussée de Namur, 40&quot;&quot;&quot;" name="street"/>
</record>
<record id="res_partner_address_0" model="res.partner.address">
<field eval="&quot;&quot;&quot;Louvain-La-Neuve&quot;&quot;&quot;" name="city"/>
<field eval="&quot;&quot;&quot;1348&quot;&quot;&quot;" name="zip"/>
<field eval="&quot;&quot;&quot;contact&quot;&quot;&quot;" name="type"/>
<!-- The partner associated with the main company should not have a country specified in the demo data,
as it may conflicts with the accounting installing chart wizard. This wizard will indeed try to
install the localization module accordingly to this variable automatically. Thus, in demo data,
everyone would have the belgian chart of account by default, what should be avoided. -->
<!-- <field name="country_id" ref="base.be"/> -->
<field eval="&quot;&quot;&quot;rue du pré, 115&quot;&quot;&quot;" name="street"/>
<field eval="1" name="active"/>
</record>
<record id="res_partner_address_1" model="res.partner.address">
<field eval="&quot;&quot;&quot;Charleroi&quot;&quot;&quot;" name="city"/>
<field eval="&quot;&quot;&quot;6000&quot;&quot;&quot;" name="zip"/>
<field eval="&quot;&quot;&quot;contact&quot;&quot;&quot;" name="type"/>
<!-- The partner associated with the main company should not have a country specified in the demo data,
as it may conflicts with the accounting installing chart wizard. This wizard will indeed try to
install the localization module accordingly to this variable automatically. Thus, in demo data,
everyone would have the belgian chart of account by default, what should be avoided. -->
<!-- <field name="country_id" ref="base.be"/> -->
<field eval="&quot;&quot;&quot;Boulevars Tirou, 32&quot;&quot;&quot;" name="street"/>
<field eval="1" name="active"/>
</record>
<!-- Create the jobs -->
<!--
<record id="res_partner_job_0" model="res.partner.job">
<field name="address_id" ref="base.res_partner_address_1"/>
<field name="function">Salesman</field>
@@ -189,13 +129,13 @@
<record id="res_partner_job_1" model="res.partner.job">
<field name="address_id" ref="base.res_partner_address_2"/>
<field name="function">Salesman</field>
<field eval="&quot;&quot;&quot;contact@tecsas.fr&quot;&quot;&quot;" name="email"/>
<field name="email">contact@tecsas.fr</field>
<field name="contact_id" ref="res_partner_contact_jacot0"/>
</record>
<record id="res_partner_job_2" model="res.partner.job">
<field name="address_id" ref="base.res_partner_address_3"/>
<field name="function">CTO</field>
<field eval="&quot;&quot;&quot;info@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">info@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_passot0"/>
</record>
<record id="res_partner_job_3" model="res.partner.job">
@@ -244,74 +184,74 @@
<record id="res_partner_job_11" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">Salesman</field>
<field eval="&quot;&quot;&quot;re@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">re@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_mignon0"/>
</record>
<record id="res_partner_job_12" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">CTO</field>
<field eval="&quot;&quot;&quot;st@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">st@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_wirtel0"/>
</record>
<record id="res_partner_job_13" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">CTO</field>
<field eval="&quot;&quot;&quot;ch@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">ch@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_simonis0"/>
</record>
<record id="res_partner_job_14" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">CTO</field>
<field eval="&quot;&quot;&quot;ol@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">ol@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_laurent0"/>
</record>
<record id="res_partner_job_15" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">CTO</field>
<field eval="&quot;&quot;&quot;fl@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">fl@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_lambotte0"/>
</record>
<record id="res_partner_job_16" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">Salesman</field>
<field eval="&quot;&quot;&quot;av@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">av@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_vandewerve0"/>
</record>
<record id="res_partner_job_17" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">CTO</field>
<field eval="&quot;&quot;&quot;fb@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">fb@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_semal0"/>
</record>
<record id="res_partner_job_18" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">CTO</field>
<field eval="&quot;&quot;&quot;qd@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">qd@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_depaoli0"/>
</record>
<record id="res_partner_job_19" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">CTO</field>
<field eval="&quot;&quot;&quot;ne@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">ne@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_elkhayat0"/>
</record>
<record id="res_partner_job_20" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">CTO</field>
<field eval="&quot;&quot;&quot;ph@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">ph@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_luu0"/>
</record>
<record id="res_partner_job_21" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">CEO</field>
<field eval="&quot;&quot;&quot;fp@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">fp@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_pinckears0"/>
<field name="sequence_partner">-1</field>
</record>
<record id="res_partner_job_22" model="res.partner.job">
<field name="address_id" ref="base.main_address"/>
<field name="function">Salesman</field>
<field eval="&quot;&quot;&quot;cd@mycompany.com&quot;&quot;&quot;" name="email"/>
<field name="email">cd@mycompany.com</field>
<field name="contact_id" ref="res_partner_contact_debois0"/>
</record>
<record id="res_partner_job_23" model="res.partner.job">
@@ -321,18 +261,19 @@
<field name="function">PA</field>
</record>
<record id="res_partner_job_24" model="res.partner.job">
<field eval="1" name="sequence_contact"/>
<field name="sequence_contact">1</field>
<field name="address_id" ref="res_partner_address_1"/>
<field name="contact_id" ref="res_partner_contact_lacarte0"/>
<field name="function">PA</field>
<field name="sequence_contact">5</field>
</record>
<record id="res_partner_job_25" model="res.partner.job">
<field eval="2" name="sequence_contact"/>
<field name="sequence_contact">2</field>
<field name="address_id" ref="base.res_partner_address_1"/>
<field name="contact_id" ref="res_partner_contact_lacarte0"/>
<field name="function">CEO</field>
<field name="sequence_contact">1</field>
</record>
-->
</data>
</openerp>
@@ -1,67 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 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 base_contact_installer(osv.osv_memory):
_name = 'base.contact.installer'
_inherit = 'res.config.installer'
_columns = {
'name': fields.char('Name', size=64),
'migrate': fields.boolean('Migrate', help="If you select this, all addresses will be migrated."),
}
def execute(self, cr, uid, ids, context=None):
"""
This function is used to create contact and address from existing partner address
"""
obj = self.pool.get("base.contact.installer").browse(cr, uid, uid, context=context)
if obj.migrate:
# Enable PL/pgSQL if not enabled yet in the database
cr.execute("SELECT 1 FROM pg_language WHERE lanname = 'plpgsql'")
if not cr.fetchone():
cr.execute("CREATE LANGUAGE plpgsql;")
cr.execute("""DROP TRIGGER IF EXISTS contactjob on res_partner_contact;
CREATE OR REPLACE FUNCTION add_to_job() RETURNS TRIGGER AS $contactjob$
DECLARE
new_name varchar;
new_phonenum varchar;
BEGIN
IF(TG_OP='INSERT') THEN
INSERT INTO res_partner_job(contact_id, address_id, function, state) VALUES(NEW.id, NEW.website::integer,NEW.first_name, 'current');
UPDATE res_partner_contact set first_name=Null, website=Null, active=True where id=NEW.id;
END IF;
RETURN NEW;
END;
$contactjob$ LANGUAGE plpgsql;
CREATE TRIGGER contactjob AFTER INSERT ON res_partner_contact FOR EACH ROW EXECUTE PROCEDURE add_to_job();""")
cr.execute("INSERT into res_partner_contact (name, title, email, first_name, website) (SELECT coalesce(name, 'Noname'), title, email, function , to_char(id, '99999999') from res_partner_address)")
cr.execute("DROP TRIGGER IF EXISTS contactjob on res_partner_contact")
cr.execute("DROP FUNCTION IF EXISTS add_to_job()")
base_contact_installer()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,59 +0,0 @@
<openerp>
<data>
<record id="view_base_contact_installer" model="ir.ui.view">
<field name="name">base.contact.installer.view</field>
<field name="model">base.contact.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_installer"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Address's Migration to Contacts</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string">Select the Option for Addresses Migration</attribute>
</separator>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">You can migrate Partner's current addresses to the contact.</attribute>
</xpath>
<xpath expr="//separator[@string=&quot;vsep&quot;]" position="attributes">
<attribute name="rowspan">13</attribute>
<attribute name="string"/>
</xpath>
<xpath expr="//button[@string='Install Modules']" position="attributes">
<attribute name="string">Configure</attribute>
</xpath>
<group colspan="8">
<group colspan="2" col="2">
<label string="Due to changes in Address and Partner's relation, some of the details from address are needed to be migrated into contact information." colspan="4"/>
<label string="Otherwise these details will not be visible from address/contact." colspan="4"/>
<label string="Do you want to migrate your Address data in Contact Data?" colspan="4"/>
<group colspan="6">
<field name="migrate" string="Migrate" colspan="1"/>
</group>
</group>
</group>
</data>
</field>
</record>
<record id="action_base_contact_installer" model="ir.actions.act_window">
<field name="name">Address Migration</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">base.contact.installer</field>
<field name="view_id" ref="view_base_contact_installer"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="base_contact_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_contact_installer"/>
<field name="category_id" ref="base.category_administration_config"/>
<field name="sequence">3</field>
<field name="type">automatic</field>
</record>
</data>
</openerp>
+58 -286
View File
@@ -30,12 +30,12 @@
<field name="arch" type="xml">
<form string="Partner Contact">
<group colspan="4" col="6">
<field name="title" select="1" widget="selection" domain="[('domain', '=', 'contact')]" size="0"/>
<field name="name" select="1"/>
<field name="last_name" select="1"/>
<field name="first_name" select="1"/>
<field name="title" select="1" widget="selection" domain="[('domain', '=', 'contact')]" size="0"/>
</group>
<notebook colspan="4" >
<page string="General">
<page string="General">
<group colspan="4" col="4">
<group colspan="2" col="4">
<separator string="Communication" colspan="4"/>
@@ -47,54 +47,36 @@
<separator string="Photo" colspan="4"/>
<field name="photo" widget='image' nolabel="1"/>
</group>
</group>
</group>
<field name="job_ids" colspan="4" nolabel="1" mode="tree,form">
<form string="Functions and Addresses">
<group colspan="4" col="4">
<field name="sequence_contact" />
<field name="function"/>
<field name="name" on_change="onchange_name(name,address_id)"/>
<field name="address_id"/>
<field name="date_start" />
<field name="date_stop" />
<field name="state" />
</group>
<field name="location_id"/>
<field name="function" />
<separator string="Communication" colspan="4"/>
<group colspan="4" col="4">
<field name="phone"/>
<field name="fax"/>
<field name="email" widget="email"/>
<field name="extension"/>
<field name="other"/>
</group>
</form>
<tree string="Functions and Addresses">
<field name="sequence_contact" string="Seq."/>
<field name="function"/>
<field name="name" on_change="onchange_partner(name)"/>
<field name="address_id" attrs="{'required': [('name', '!=', False)]}" on_change="onchange_address(address_id)"/>
<field name="phone"/>
<field name="fax"/>
<field name="extension"/>
<field name="other"/>
<field name="email" widget="email"/>
</form>
<tree string="Functions and Addresses">
<field name="location_id"/>
<field name="function"/>
<field name="phone"/>
<field name="email"/>
<field name="state" />
</tree>
</field>
</page>
<page string="Extra Information">
<page string="Extra Information">
<field name="active"/>
<field name="lang_id" widget="selection"/>
<field name="partner_id" invisible="1" select="1"/>
<field name="function" invisible="1" />
<field name="partner_id" invisible="1" select="1"/>
<field name="function" invisible="1" />
<field name="country_id"/>
<field name="birthdate"/>
</page>
<page string="Notes">
<field name="comment" nolabel="1"/>
</page>
</notebook>
</form>
</field>
@@ -108,8 +90,8 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Partner Contact">
<field name="name"/>
<field name="first_name"/>
<field name="name" string="First/Lastname"
filter_domain="['|', ('firstname','ilike', self), ('lastname','ilike',self)]"/>
<field name="partner_id" string="Partner"/>
</search>
</field>
@@ -132,7 +114,7 @@
<field name="name">Addresses</field>
</record>
<!--
<!--
Contacts for Suppliers
-->
<menuitem icon="terp-purchase" id="base.menu_purchase_root" name="Purchases"
@@ -141,7 +123,7 @@
parent="base.menu_purchase_root" sequence="3"/>
<menuitem id="base.menu_procurement_management_supplier_name" name="Suppliers"
parent="base.menu_procurement_management_supplier" action="base.action_partner_supplier_form" sequence="1"/>
<menuitem name="Contacts" id="menu_purchases_partner_contact_form" action="action_partner_contact_form"
<menuitem name="Contacts" id="menu_purchases_partner_contact_form" action="action_partner_contact_form"
parent = "base.menu_procurement_management_supplier" sequence="2"/>
<!-- Views for Partners Form View -->
@@ -152,119 +134,45 @@
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="type">form</field>
<field name="arch" type="xml">
<field name="address" mode="form,tree" colspan="4" nolabel="1" select="1" position="replace">
<field name="address" mode="form,tree" colspan="4" nolabel="1" select="1">
<form string="Address">
<group colspan="2" col="2">
<separator string="Postal Address" colspan="2" col="2"/>
<field name="type" />
<field name="street"/>
<field name="street2"/>
<field name="zip"/>
<field name="city"/>
<field name="country_id" completion="1"/>
<field name="state_id"/>
</group>
<group colspan="2" col="2">
<separator string="Communication" colspan="2" col="2"/>
<field name="phone"/>
<field name="fax"/>
<field name="email" widget="email"/>
</group>
<field name="job_ids" mode="tree,form" nolabel="1" colspan="4">
<tree string="Contacts" editable="top">
<field name="sequence_partner"/>
<field name="contact_id"/>
<field name="function"/>
<field name="phone"/>
<field name="fax"/>
<field name="extension"/>
<field name="other"/>
<field name="email"/>
</tree>
<form string="Contacts">
<group colspan="4" col="4">
<field name="sequence_partner"/>
<field name="contact_id"/>
<field name="function"/>
</group>
<separator string="Communication" colspan="4"/>
<group colspan="4" col="4">
<field name="phone"/>
<field name="fax"/>
<field name="extension"/>
<field name="other"/>
<field name="email" widget="email"/>
</group>
</form>
</field>
</form>
<tree string="Addresses">
<field name="type"/>
<field name="zip"/>
<field name="city"/>
<field name="country_id"/>
<field name="phone"/>
<field name="job_ids"/>
</tree>
</field>
</field>
<separator string="Postal Address" position="after">
<field name="location_id" on_change="onchange_location_id(location_id)"/>
</separator>
<xpath expr="//field[@string='Contact Name']" position="replace">
<field name="contact_id"/>
</xpath>
<field name="title" position="replace"/>
</field>
</record>
<!-- Views for Addresses -->
<record model="ir.ui.view" id="view_partner_location_form">
<field name="name">res.partner.location.form</field>
<field name="model">res.partner.location</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Locations">
<field name="street" colspan="4"/>
<field name="street2" colspan="4"/>
<field name="zip"/>
<field name="city"/>
<field name="country_id" />
<field name="state_id"/>
</form>
</field>
</record>
<!-- don't display the categories, since it is displayed in an other tab-->
<record model="ir.ui.view" id="view_partner_form_inherit2">
<field name="name">res.partner.form</field>
<field name="type">form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="category_id" position="replace">
</field>
</field>
</record>
<!-- don't display the categories label-->
<record model="ir.ui.view" id="view_partner_form_inherit2bis">
<field name="name">res.partner.form</field>
<field name="type">form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<separator colspan="4" string="Categories" position="replace"/>
</field>
</record>
<record model="ir.ui.view" id="view_partner_form_inherit3">
<field name="name">res.partner.form</field>
<field name="type">form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Categories">
<separator colspan="4" string="Categories"/>
<field colspan="4" name="category_id" nolabel="1"/>
</page>
</notebook>
</field>
</record>
<!-- Views for Addresses -->
<record model="ir.ui.view" id="view_partner_address_tree_inherited1">
<field name="name">Partner addresses inherited</field>
<field name="model">res.partner.address</field>
<field name="inherit_id" ref="base.view_partner_address_tree"/>
<record model="ir.ui.view" id="view_partner_location_tree">
<field name="name">res.partner.location.tree</field>
<field name="model">res.partner.location</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<field name="name" position="replace">
<field name='job_ids' string='# of Contacts'/>
</field>
<tree string="Locations">
<field name="city"/>
<field name="country_id" />
<field name="state_id"/>
</tree>
</field>
</record>
@@ -273,152 +181,16 @@
<field name='model'>res.partner.address</field>
<field name="inherit_id" ref="base.view_partner_address_form1"/>
<field name='type'>form</field>
<field name='arch' type='xml'>
<field name="type" position="replace">
</field>
</field>
</record>
<record model="ir.ui.view" id="view_partner_address_form_inherited1">
<field name='name'>res.partner.address.form.inherited1</field>
<field name='model'>res.partner.address</field>
<field name="inherit_id" ref="base.view_partner_address_form1"/>
<field name='type'>form</field>
<field name='arch' type='xml'>
<field name="name" position="replace">
</field>
</field>
</record>
<record id='view_partner_address_form_inherited2' model='ir.ui.view'>
<field name='name'>res.partner.address.form.inherited2</field>
<field name='model'>res.partner.address</field>
<field name="inherit_id" ref="base.view_partner_address_form1"/>
<field name='type'>form</field>
<field name='arch' type='xml'>
<field name="title" position="replace">
</field>
</field>
</record>
<record id='view_partner_address_form_inherited3' model='ir.ui.view'>
<field name='name'>res.partner.address.form.inherited3</field>
<field name='model'>res.partner.address</field>
<field name="inherit_id" ref="base.view_partner_address_form1"/>
<field name='type'>form</field>
<field name='arch' type='xml'>
<field name="function" position="replace">
</field>
</field>
</record>
<record id='view_partner_address_form_inherited4' model='ir.ui.view'>
<field name='name'>res.partner.address.form.inherited4</field>
<field name='model'>res.partner.address</field>
<field name="inherit_id" ref="base.view_partner_address_form1"/>
<field name='type'>form</field>
<field name='arch' type='xml'>
<field name='mobile' position="replace">
</field>
</field>
</record>
<record model="ir.ui.view" id="view_partner_address_form_inherited6">
<field name='name'>res.partner.address.form.inherited6</field>
<field name='model'>res.partner.address</field>
<field name="inherit_id" ref="base.view_partner_address_form1"/>
<field name='type'>form</field>
<field name='arch' type='xml'>
<field name="partner_id" position="replace">
<field name='partner_id' select='1'/>
<field name='type' select='2'/>
<field name='job_id' invisible="1"/>
</field>
</field>
</record>
<record id="view_res_partner_address_filter" model="ir.ui.view">
<field name="name">res.partner.address.select</field>
<field name="model">res.partner.address</field>
<field name="type">search</field>
<field name="inherit_id" ref="base.view_res_partner_address_filter"/>
<field name="arch" type="xml">
<search string="Search Contact">
<field name="job_ids"/>
</search>
</field>
</record>
<!-- Views for partner job Tree view -->
<record model="ir.ui.view" id="view_partner_job_tree">
<field name="name">res.partner.job.tree</field>
<field name="model">res.partner.job</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Contact Functions">
<field name="contact_id"/>
<field name="function"/>
<field name="name"/>
<field name="address_id"/>
<field name="email"/>
<field name="phone"/>
<field name="fax"/>
<field name="extension"/>
<field name="state" />
</tree>
</field>
<separator string="Postal Address" position="after">
<field name="location_id" on_change="onchange_location_id(location_id)"/>
</separator>
<field name="title" position="replace"/>
</field>
</record>
<!-- Views for partner job Form view -->
<record model="ir.ui.view" id="view_partner_job_form">
<field name="name">res.partner.job.form</field>
<field name="model">res.partner.job</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Contact Functions">
<field name="name" select="1" on_change="onchange_partner(name)"/>
<field name="address_id" select="1" attrs="{'required': [('name', '!=', False)]}" on_change="onchange_address(address_id)"/>
<field name="contact_id" select="1"/>
<field name="function" select="1"/>
<field name="email" widget="email"/>
<field name="phone"/>
<field name="fax"/>
<field name="extension"/>
<field name="sequence_contact" groups="base.group_user"/>
<field name="sequence_partner" groups="base.group_user"/>
<field name="date_start" groups="base.group_user"/>
<field name="date_stop" groups="base.group_user"/>
<field name="state" />
</form>
</field>
</record>
<!-- Menuitem for res.partner.job -->
<record model="ir.actions.act_window" id="action_res_partner_job">
<field name="name">Contact's Jobs</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner.job</field>
<field name="view_type">form</field>
</record>
<act_window domain="[('name', '=', active_id)]"
id="act_res_partner_jobs" name="Partner Contacts"
res_model="res.partner.job"
src_model="res.partner"
/>
<!-- Act window defining a shorcut on partner address to open all his jobs -->
<act_window
id="act_res_partner_jobs"
name="Open Jobs"
context="{'search_default_address_id': [active_id], 'default_address_id': active_id}"
res_model="res.partner.job"
src_model="res.partner.address"
/>
</data>
</openerp>
@@ -36,15 +36,6 @@
<field eval="1" name="flow_start"/>
</record>
<record id="process_node_function0" model="process.node">
<field name="model_id" ref="base_contact.model_res_partner_job"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Jobs at a same partner address.&quot;&quot;&quot;" name="note"/>
<field eval="&quot;&quot;&quot;Function&quot;&quot;&quot;" name="name"/>
<field name="process_id" ref="process_process_basecontactprocess0"/>
<field eval="0" name="flow_start"/>
</record>
<record id="process_node_addresses0" model="process.node">
<field name="menu_id" ref="base.menu_partner_address_form"/>
<field name="model_id" ref="base.model_res_partner_address"/>
@@ -59,22 +50,6 @@
Process Transition
-->
<record id="process_transition_contacttofunction0" model="process.transition">
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Contact to function&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Defines contacts and functions.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_function0"/>
<field model="process.node" name="source_node_id" ref="process_node_contacts0"/>
</record>
<record id="process_transition_functiontoaddress0" model="process.transition">
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Function to address&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Define functions and address.&quot;&quot;&quot;" name="note"/>
<field model="process.node" name="target_node_id" ref="process_node_addresses0"/>
<field model="process.node" name="source_node_id" ref="process_node_function0"/>
</record>
<record id="process_transition_partnertoaddress0" model="process.transition">
<field eval="[(6,0,[])]" name="transition_ids"/>
<field eval="&quot;&quot;&quot;Partner to address&quot;&quot;&quot;" name="name"/>
@@ -84,4 +59,4 @@
</record>
</data>
</openerp>
</openerp>
@@ -1,7 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_res_partner_contact,res.partner.contact,model_res_partner_contact,base.group_partner_manager,1,1,1,1
access_res_partner_job,res.partner.job,model_res_partner_job,base.group_partner_manager,1,1,1,1
access_res_partner_contact_all,res.partner.contact all,model_res_partner_contact,base.group_user,1,0,0,0
access_res_partner_job_all,res.partner.job all,model_res_partner_job,base.group_user,1,0,0,0
access_group_sale_salesman,res.partner.contact.sale.salesman,model_res_partner_contact,base.group_sale_salesman,1,1,1,0
access_res_partner_job_salesman,res.partner.job.salesman,model_res_partner_job,base.group_sale_salesman,1,1,1,0
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_res_partner_contact","res.partner.contact","model_res_partner_contact","base.group_partner_manager",1,1,1,1
"access_res_partner_contact_all","res.partner.contact all","model_res_partner_contact","base.group_user",1,0,0,0
"access_group_sale_salesman","res.partner.contact.sale.salesman","model_res_partner_contact","base.group_sale_salesman",1,1,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_res_partner_contact res.partner.contact model_res_partner_contact base.group_partner_manager 1 1 1 1
3 access_res_partner_job access_res_partner_contact_all res.partner.job res.partner.contact all model_res_partner_job model_res_partner_contact base.group_partner_manager base.group_user 1 1 0 1 0 1 0
4 access_res_partner_contact_all access_group_sale_salesman res.partner.contact all res.partner.contact.sale.salesman model_res_partner_contact base.group_user base.group_sale_salesman 1 0 1 0 1 0
access_res_partner_job_all res.partner.job all model_res_partner_job base.group_user 1 0 0 0
access_group_sale_salesman res.partner.contact.sale.salesman model_res_partner_contact base.group_sale_salesman 1 1 1 0
access_res_partner_job_salesman res.partner.job.salesman model_res_partner_job base.group_sale_salesman 1 1 1 0
+6 -62
View File
@@ -3,31 +3,17 @@
*contacts unrelated to a partner,
*contacts working at several addresses (possibly for different partners),
*contacts with possibly different functions for each of its job's addresses
- |
In order to assign language to contacts first I will create Language FR
(Remove)
-
!record {model: res.lang, id: res_lang_french0}:
code: fr_BE
date_format: '%m/%d/%Y'
decimal_point: '.'
direction: ltr
grouping: '[]'
name: French
time_format: '%H:%M:%S'
- |
In order to check contacts first I will create contact unrelated to a partner
-
!record {model: res.partner.contact, id: res_partner_contact_williams0}:
country_id: base.be
first_name: Laura
last_name: Henrion
job_ids:
- email: lwilliams@mydomain.com
function: PA
phone: (+32).10.45.18.77
sequence_contact: 1
state: current
lang_id: res_lang_french0
mobile: (+32).10.45.18.77
name: Williams
- |
@@ -41,54 +27,12 @@
street: 23, street ways
type: default
zip: '2324324'
job_ids:
- address_id: res_partner_address_1
function: CEO
contact_id: res_partner_contact_williams0
sequence_partner: 2
state: current
lang: fr_BE
name: Laura's Company
function: CEO
contact_id: res_partner_contact_williams0
name: Lauras Company
ref: LC
- |
-
Now I will check that the new job is assigned properly to contact or not
-
!assert {model: res.partner.contact, id: res_partner_contact_williams0}:
- len(job_ids) >= 2
- |
In order to check contacts working at several addresses for different partners
I will create contact with 2 different addresses
-
!record {model: res.partner.contact, id: res_partner_contact_pauwels0}:
country_id: base.be
first_name: Nicolas
job_ids:
- address_id: base.res_partner_address_1
function: CTO
state: current
- address_id: base.res_partner_address_3000
function: CEO
state: current
lang_id: res_lang_french0
mobile: (+32).23.44.32.12
name: Pauwels
- |
In order to check one contact working at one partner with different functions
I will create contact with 2 different jobs with different function but the same address
-
!record {model: res.partner.contact, id: res_partner_contact_mortier0}:
country_id: base.be
first_name: Christina
job_ids:
- address_id: base.res_partner_address_1
function: CEO
state: past
- address_id: base.res_partner_address_1
function: CTO
state: current
lang_id: base_contact.res_lang_french0
mobile: (+32).10.45.18.77
name: Mortier
- len(job_ids) == 2
+71
View File
@@ -0,0 +1,71 @@
# 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: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-12-18 20:12+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: 2011-12-19 04:49+0000\n"
"X-Generator: Launchpad (build 14525)\n"
#. module: base_crypt
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
msgstr ""
#. module: base_crypt
#: model:ir.model,name:base_crypt.model_res_users
msgid "res.users"
msgstr ""
#. module: base_crypt
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
msgstr ""
#. module: base_crypt
#: code:addons/base_crypt/crypt.py:132
#, python-format
msgid "Please specify the password !"
msgstr ""
#. module: base_crypt
#: model:ir.module.module,shortdesc:base_crypt.module_meta_information
msgid "Base - Password Encryption"
msgstr ""
#. module: base_crypt
#: code:addons/base_crypt/crypt.py:132
#, python-format
msgid "Error"
msgstr ""
#. module: base_crypt
#: model:ir.module.module,description:base_crypt.module_meta_information
msgid ""
"This module replaces the cleartext password in the database with a password "
"hash,\n"
"preventing anyone from reading the original password.\n"
"For your existing user base, the removal of the cleartext passwords occurs "
"the first time\n"
"a user logs into the database, after installing base_crypt.\n"
"After installing this module it won't be possible to recover a forgotten "
"password for your\n"
"users, the only solution is for an admin to set a new password.\n"
"\n"
"Note: installing this module does not mean you can ignore basic security "
"measures,\n"
"as the password is still transmitted unencrypted on the network (by the "
"client),\n"
"unless you are using a secure protocol such as XML-RPCS.\n"
" "
msgstr ""
+2 -2
View File
@@ -14,9 +14,9 @@ access_crm_case_categ,crm.case.categ,model_crm_case_categ,base.group_user,1,0,0,
access_crm_meeting,crm.meeting,model_crm_meeting,base.group_sale_salesman,1,1,1,0
access_crm_meeting_all,crm.meeting_allll,model_crm_meeting,base.group_user,1,0,0,0
access_crm_lead,crm.lead,model_crm_lead,base.group_sale_salesman,1,1,1,0
access_crm_lead.all,crm.lead.all,model_crm_lead,base.group_user,1,0,0,0
access_crm_lead_all,crm.lead.all,model_crm_lead,base.group_user,1,0,0,0
access_crm_phonecall,crm.phonecall,model_crm_phonecall,base.group_sale_salesman,1,1,1,0
access_crm_phonecall.all,crm.phonecall.all,model_crm_phonecall,base.group_user,1,0,0,0
access_crm_phonecall_all,crm.phonecall.all,model_crm_phonecall,base.group_user,1,0,0,0
access_crm_case_section_user,crm.case.section.user,model_crm_case_section,base.group_sale_salesman,1,1,1,0
access_crm_case_section_manager,crm.case.section.manager,model_crm_case_section,base.group_sale_manager,1,1,1,1
access_crm_case_stage,crm.case.stage,model_crm_case_stage,base.group_user,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
14 access_crm_meeting crm.meeting model_crm_meeting base.group_sale_salesman 1 1 1 0
15 access_crm_meeting_all crm.meeting_allll model_crm_meeting base.group_user 1 0 0 0
16 access_crm_lead crm.lead model_crm_lead base.group_sale_salesman 1 1 1 0
17 access_crm_lead.all access_crm_lead_all crm.lead.all model_crm_lead base.group_user 1 0 0 0
18 access_crm_phonecall crm.phonecall model_crm_phonecall base.group_sale_salesman 1 1 1 0
19 access_crm_phonecall.all access_crm_phonecall_all crm.phonecall.all model_crm_phonecall base.group_user 1 0 0 0
20 access_crm_case_section_user crm.case.section.user model_crm_case_section base.group_sale_salesman 1 1 1 0
21 access_crm_case_section_manager crm.case.section.manager model_crm_case_section base.group_sale_manager 1 1 1 1
22 access_crm_case_stage crm.case.stage model_crm_case_stage base.group_user 1 0 0 0
Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

+1 -1
View File
@@ -39,7 +39,7 @@ Note that:
Association / Configuration / Types of Events
""",
'author': 'OpenERP SA',
'depends': ['crm', 'base_contact', 'account', 'marketing', 'mail'],
'depends': ['crm', 'account', 'marketing', 'mail'],
'init_xml': [],
'update_xml': [
'security/ir.model.access.csv',
+6 -17
View File
@@ -303,7 +303,7 @@ class event_registration(osv.osv):
'event_id': fields.many2one('event.event', 'Event', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}),
"partner_invoice_id": fields.many2one('res.partner', 'Partner Invoiced', readonly=True, states={'draft': [('readonly', False)]}),
"contact_id": fields.many2one('res.partner.contact', 'Partner Contact', readonly=False, states={'done': [('readonly', True)]}), #TODO: filter only the contacts that have a function into the selected partner_id
"contact_id": fields.many2one('res.partner.address', 'Partner Contact', readonly=False, states={'done': [('readonly', True)]}), #TODO: filter only the contacts that have a function into the selected partner_id
"unit_price": fields.float('Unit Price', required=True, digits_compute=dp.get_precision('Sale Price'), readonly=True, states={'draft': [('readonly', False)]}),
'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute=dp.get_precision('Sale Price'), store=True),
"badge_ids": fields.one2many('event.registration.badge', 'registration_id', 'Badges', readonly=False, states={'done': [('readonly', True)]}),
@@ -382,7 +382,7 @@ class event_registration(osv.osv):
inv_lines_pool = self.pool.get('account.invoice.line')
inv_pool = self.pool.get('account.invoice')
product_pool = self.pool.get('product.product')
contact_pool = self.pool.get('res.partner.contact')
contact_pool = self.pool.get('res.partner.address')
if context is None:
context = {}
# If date was specified, use it as date invoiced, usefull when invoices are generated this month and put the
@@ -578,13 +578,7 @@ class event_registration(osv.osv):
if not contact:
return data
addr_obj = self.pool.get('res.partner.address')
job_obj = self.pool.get('res.partner.job')
if partner:
partner_addresses = addr_obj.search(cr, uid, [('partner_id', '=', partner)])
job_ids = job_obj.search(cr, uid, [('contact_id', '=', contact), ('address_id', 'in', partner_addresses)])
if job_ids:
data['email_from'] = job_obj.browse(cr, uid, job_ids[0]).email
data['email_from'] = addr_obj.browse(cr, uid, contact).email
return {'value': data}
def onchange_event(self, cr, uid, ids, event_id, partner_invoice_id):
@@ -636,7 +630,6 @@ class event_registration(osv.osv):
@param event_id: Event ID
@param partner_invoice_id: Partner Invoice ID
"""
job_obj = self.pool.get('res.partner.job')
res_obj = self.pool.get('res.partner')
data = {}
@@ -648,14 +641,10 @@ class event_registration(osv.osv):
d = self.onchange_partner_invoice_id(cr, uid, ids, event_id, part)
# this updates the dictionary
data.update(d['value'])
addr = res_obj.address_get(cr, uid, [part])
addr = res_obj.address_get(cr, uid, [part]).get('default', False)
if addr:
if addr.has_key('default'):
job_ids = job_obj.search(cr, uid, [('address_id', '=', addr['default'])])
if job_ids:
data['contact_id'] = job_obj.browse(cr, uid, job_ids[0]).contact_id.id
d = self.onchange_contact_id(cr, uid, ids, data['contact_id'], part)
data.update(d['value'])
d = self.onchange_contact_id(cr, uid, ids, addr, part)
data.update(d['value'])
return {'value': data}
def onchange_partner_invoice_id(self, cr, uid, ids, event_id, partner_invoice_id):
@@ -48,21 +48,16 @@ class partner_event_registration(osv.osv_memory):
"""
value = {}
res_obj = self.pool.get('res.partner')
job_obj = self.pool.get('res.partner.job')
addr_obj = self.pool.get('res.partner.address')
reg_obj = self.pool.get('event.registration')
mod_obj = self.pool.get('ir.model.data')
record_ids = context and context.get('active_ids', []) or []
addr = res_obj.address_get(cr, uid, record_ids)
contact_id = False
email = False
if addr.has_key('default'):
job_ids = job_obj.search(cr, uid, [('address_id', '=', addr['default'])], context=context)
if job_ids:
contact = job_obj.browse(cr, uid, job_ids[0], context=context)
if contact:
contact_id = contact.contact_id.id
email = contact.email
contact_id = addr.get('default', False)
if contact_id:
email = addr_obj.browse(cr, uid, contact_id, context=context).email
result = mod_obj.get_object_reference(cr, uid, 'event', 'view_registration_search')
res = result and result[1] or False
@@ -143,4 +138,4 @@ class partner_event_registration(osv.osv_memory):
partner_event_registration()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -81,7 +81,7 @@
<field name="name">Bank Current Account</field>
<field ref="account.cas" name="parent_id"/>
<field name="type">liquidity</field>
<field name="user_type" ref="account.account_type_asset"/>
<field name="user_type" ref="account.data_account_type_asset"/>
</record>
<record id="a_salary_expense" model="account.account">
@@ -89,7 +89,7 @@
<field name="name">Salary Expenses</field>
<field ref="account.ovr" name="parent_id"/>
<field name="type">other</field>
<field name="user_type" ref="account.account_type_expense"/>
<field name="user_type" ref="account.data_account_type_expense"/>
</record>
<record id="a_creditors" model="account.account">
@@ -98,7 +98,7 @@
<field ref="account.cli" name="parent_id"/>
<field name="type">payable</field>
<field eval="True" name="reconcile"/>
<field name="user_type" ref="account.account_type_payable"/>
<field name="user_type" ref="account.data_account_type_payable"/>
</record>
-4
View File
@@ -184,10 +184,6 @@ class hr_applicant(crm.crm_case, osv.osv):
'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True),
}
def _get_stage(self, cr, uid, context=None):
ids = self.pool.get('hr.recruitment.stage').search(cr, uid, [], context=context)
return ids and ids[0] or False
_defaults = {
'active': lambda *a: 1,
'user_id': lambda self, cr, uid, context: uid,
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

@@ -19,27 +19,49 @@
assert applicant.name == "Application for the post of Jr.application Programmer.", "Subject does not match"
assert applicant.state == "draft"
assert len(resume_ids), "Resume does not attached."
-
I refuse applicant for the Recruitment.
-
!python {model: hr.applicant}: |
self.case_close(cr, uid, [ref("hr_case_programmer")])
-
I open applicant for the Recruitment.
-
!python {model: hr.applicant}: |
self.case_reset(cr, uid, [ref("hr_case_programmer")])
self.case_open(cr, uid, [ref("hr_case_programmer")])
-
I assign the Job position to the applicant
-
!python {model: hr.applicant}: |
self.write(cr, uid, [ref('hr_case_programmer')], {'job_id':ref('hr.job_jr_appli')})
-
I open applicant for the Recruitment
-
!python {model: hr.applicant}: |
self.case_open(cr, uid, [ref("hr_case_programmer")])
-
I start communication with applicant, first schedule phonecall.
-
!python {model: hr.recruitment.job2phonecall}: |
self.make_phonecall(cr, uid, [ref('hr_case_programmer')])
context.update({'active_model': 'hr.applicant', 'active_id': ref("hr_case_programmer"), 'active_ids': [ref("hr_case_programmer")], 'survey_id': ref("survey_job_0")})
id = self.create(cr, uid, {}, context=context)
self.make_phonecall(cr, uid, [id], context=context)
-
I schedule meeting with applicant for interview.
-
!python {model: hr.applicant}: |
self.action_makeMeeting(cr, uid, [ref('hr_case_programmer')])
-
I check Initial Qualification of applicant.
-
!python {model: hr.applicant}: |
self.stage_next(cr, uid, [ref('hr_case_programmer')])
-
I schedule First Interview of applicant.
-
!python {model: hr.applicant}: |
self.stage_next(cr, uid, [ref('hr_case_programmer')])
-
On a successful First Interview of applicant, I schedule Second Interview.
-
!python {model: hr.applicant}: |
self.stage_next(cr, uid, [ref('hr_case_programmer')])
-
Applicant fillup the answer of the interview quetion.
-
@@ -56,7 +78,13 @@
!python {model: hr.applicant}: |
self.action_print_survey(cr, uid, [ref('hr_case_programmer')])
-
On a successful interview with the applicant, I hired employee.
On a successful Second Interview of applicant Contract is Proposed to applicant.
-
!python {model: hr.applicant}: |
self.stage_next(cr, uid, [ref('hr_case_programmer')])
self.stage_previous(cr, uid, [ref('hr_case_programmer')])
-
I Hired Applicant.
-
!python {model: hr.applicant}: |
self.case_close_with_emp(cr, uid, [ref('hr_case_programmer')])
@@ -65,3 +93,28 @@
-
!assert {model: hr.applicant, id: hr_case_programmer}:
- state == 'done'
-
I do not give employment to the hired the applicant.
-
!python {model: hired.employee}: |
context.update({'active_model': 'hr.applicant', 'active_ids': [ref("hr_recruitment.hr_case_programmer")], 'active_id': ref("hr_recruitment.hr_case_programmer")})
emp_id = self.create(cr, uid, {}, context=context)
self.case_close(cr, uid, [emp_id], context=context)
-
Now I give employment to hired applicant .
-
!python {model: hr.applicant}: |
hired_emp_obj = self.pool.get('hired.employee')
self.case_reset(cr, uid, [ref("hr_case_programmer")])
self.case_open(cr, uid, [ref("hr_case_programmer")])
context.update({'active_model': 'hr.applicant', 'active_ids': [ref("hr_recruitment.hr_case_programmer")], 'active_id': ref("hr_recruitment.hr_case_programmer")})
emp_hr_id = hired_emp_obj.create(cr, uid, {}, context=context)
hired_emp_obj.case_close_with_emp(cr, uid, [emp_hr_id], context=context)
-
Now hired employee want to be a partner of company.
-
!record {model: hr.recruitment.partner.create, id: hr_recruitment_partner_id1 }:
-
!python {model: hr.recruitment.partner.create}: |
context.update({'active_model': 'hr.applicant', 'active_ids': [ref("hr_recruitment.hr_case_programmer")], 'active_id': ref("hr_recruitment.hr_case_programmer")})
self.make_order(cr, uid, [ref("hr_recruitment_partner_id1")], context=context)
@@ -65,7 +65,8 @@ class account_analytic_account(osv.osv):
_columns = {
'pricelist_id': fields.many2one('product.pricelist', 'Customer Pricelist',
help="The product to invoice is defined on the employee form, the price will be deduced by this pricelist on the product."),
'amount_max': fields.float('Max. Invoice Price'),
'amount_max': fields.float('Max. Invoice Price',
help="Keep empty if this contract is not limited to a total fixed price."),
'amount_invoiced': fields.function(_invoiced_calc, string='Invoiced Amount',
help="Total invoiced"),
'to_invoice': fields.many2one('hr_timesheet_invoice.factor', 'Invoice on Timesheet & Costs',
@@ -18,7 +18,7 @@
<field name="price" groups="base.group_extended"/>
</group>
<group col="2" colspan="4" groups="base.group_extended">
<separator string="Force to use a specific product" colspan="4" />
<separator string="Force to use a specific product" colspan="4"/>
<field name="product"/>
</group>
</page>
@@ -294,7 +294,7 @@ class hr_timesheet_sheet(osv.osv):
if r=='month':
return time.strftime('%Y-%m-01')
elif r=='week':
return (datetime.today() + relativedelta(weekday=0, weeks=-1)).strftime('%Y-%m-%d')
return (datetime.today() + relativedelta(weekday=0, days=-6)).strftime('%Y-%m-%d')
elif r=='year':
return time.strftime('%Y-01-01')
return time.strftime('%Y-%m-%d')
@@ -186,7 +186,7 @@
<field name="res_model">hr_timesheet_sheet.sheet</field>
<field name="view_type">form</field>
<field name="view_id" eval="False"/>
<field name="context">{'search_default_my_timesheet':1,'group_by_no_leaf':1}</field>
<field name="context">{'search_default_my_timesheet':1}</field>
<field name="search_view_id" ref="view_hr_timesheet_sheet_filter"/>
<field name="help">Check your timesheets for a specific period. You can also encode time spent on a project (i.e. an analytic account) thus generating costs in the analytic account concerned.</field>
</record>
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -8,28 +8,28 @@
<field name="close_method">none</field>
</record>
<record model="account.account.type" id="account.account_type_income" >
<record model="account.account.type" id="account.data_account_type_income" >
<field name="name">Erfolgskonten - Erlöse</field>
<field name="code">income</field>
<field name="report_type">income</field>
<field name="close_method">none</field>
</record>
<record model="account.account.type" id="account.account_type_expense">
<record model="account.account.type" id="account.data_account_type_expense">
<field name="name">Erfolgskonten - Aufwendungen</field>
<field name="code">expense</field>
<field name="report_type">expense</field>
<field name="close_method">none</field>
</record>
<record model="account.account.type" id="account.account_type_asset">
<record model="account.account.type" id="account.data_account_type_asset">
<field name="name">Bilanzkonten - Aktiva - Vermögenskonten</field>
<field name="code">balance asset</field>
<field name="report_type">asset</field>
<field name="close_method">balance</field>
</record>
<record model="account.account.type" id="account.account_type_liability">
<record model="account.account.type" id="account.data_account_type_liability">
<field name="name">Bilanzkonten - Passiva - Kapitalkonten</field>
<field name="code">balance liability</field>
<field name="report_type">liability</field>

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