bzr revid: vir@tinyerp.com-20100710050833-ruvh198y6nm2mj19
This commit is contained in:
Vir (Open ERP)
2010-07-10 10:38:33 +05:30
112 changed files with 2328 additions and 1849 deletions
+101 -12
View File
@@ -623,7 +623,7 @@ class account_journal(osv.osv):
'centralisation': fields.boolean('Centralised counterpart', help="Check this box to determine that each entry of this journal won't create a new counterpart but will share the same counterpart. This is used in fiscal year closing."),
'update_posted': fields.boolean('Allow Cancelling Entries', help="Check this box if you want to allow the cancellation the entries related to this journal or of the invoice related to this journal"),
'group_invoice_lines': fields.boolean('Group invoice lines', help="If this box is checked, the system will try to group the accounting lines when generating them from invoices."),
'sequence_id': fields.many2one('ir.sequence', 'Entry Sequence', help="The sequence gives the display order for a list of journals", required=True),
'sequence_id': fields.many2one('ir.sequence', 'Entry Sequence', help="The sequence gives the display order for a list of journals", required=False),
'user_id': fields.many2one('res.users', 'User', help="The user responsible for this journal"),
'groups_id': fields.many2many('res.groups', 'account_journal_group_rel', 'journal_id', 'group_id', 'Groups'),
'currency': fields.many2one('res.currency', 'Currency', help='The currency used to enter statement'),
@@ -638,6 +638,7 @@ class account_journal(osv.osv):
'user_id': lambda self,cr,uid,context: uid,
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
def write(self, cr, uid, ids, vals, context=None):
obj=[]
if 'company_id' in vals:
@@ -646,8 +647,58 @@ class account_journal(osv.osv):
raise osv.except_osv(_('Warning !'), _('You cannot modify company of this journal as its related record exist in Entry Lines'))
return super(account_journal, self).write(cr, uid, ids, vals, context=context)
def create_sequence(self, cr, uid, ids, context={}):
"""
Create new entry sequence for every new Joural
@param cr: cursor to database
@param user: id of current user
@param ids: list of record ids to be process
@param context: context arguments, like lang, time zone
@return: return a result
"""
seq_pool = self.pool.get('ir.sequence')
seq_typ_pool = self.pool.get('ir.sequence.type')
result = True
journal = self.browse(cr, uid, ids[0], context)
code = journal.code.lower()
types = {
'name':journal.name,
'code':code
}
type_id = seq_typ_pool.create(cr, uid, types)
seq = {
'name':journal.name,
'code':code,
'active':True,
'prefix':journal.code + "/%(year)s/",
'padding':4,
'number_increment':1
}
seq_id = seq_pool.create(cr, uid, seq)
res = {}
if not journal.sequence_id:
res.update({
'sequence_id':seq_id
})
if not journal.invoice_sequence_id:
res.update({
'invoice_sequence_id':seq_id
})
result = self.write(cr, uid, [journal.id], res)
return result
def create(self, cr, uid, vals, context={}):
journal_id = super(account_journal, self).create(cr, uid, vals, context)
self.create_sequence(cr, uid, [journal_id], context)
# journal_name = self.browse(cr, uid, [journal_id])[0].code
# periods = self.pool.get('account.period')
# ids = periods.search(cr, uid, [('date_stop','>=',time.strftime('%Y-%m-%d'))])
@@ -669,14 +720,41 @@ class account_journal(osv.osv):
ids = self.search(cr, user, [('name',operator,name)]+ args, limit=limit, context=context)
return self.name_get(cr, user, ids, context=context)
def onchange_type(self, cr, uid, ids, type):
res={}
for line in self.browse(cr, uid, ids):
if type == 'situation':
res= {'value':{'centralisation': True}}
else:
res= {'value':{'centralisation': False}}
return res
def onchange_type(self, cr, uid, ids, type, currency):
data_pool = self.pool.get('ir.model.data')
user_pool = self.pool.get('res.users')
type_map = {
'sale':'account_sp_journal_view',
'sale_refund':'account_sp_refund_journal_view',
'purchase':'account_sp_journal_view',
'purchase_refund':'account_sp_refund_journal_view',
'expense':'account_sp_journal_view',
'cash':'account_journal_bank_view',
'bank':'account_journal_bank_view',
'general':'account_journal_view',
'situation':'account_journal_view'
}
res = {}
view_id = type_map.get(type, 'general')
user = user_pool.browse(cr, uid, uid)
if type in ('cash', 'bank') and currency and user.company_id.currency_id.id != currency:
view_id = 'account_journal_bank_view_multi'
data_id = data_pool.search(cr, uid, [('model','=','account.journal.view'), ('name','=',view_id)])
data = data_pool.browse(cr, uid, data_id[0])
res.update({
'centralisation':type == 'situation',
'view_id':data.res_id,
})
return {
'value':res
}
account_journal()
@@ -2335,6 +2413,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
obj_acc_template = self.pool.get('account.account.template')
obj_fiscal_position_template = self.pool.get('account.fiscal.position.template')
obj_fiscal_position = self.pool.get('account.fiscal.position')
data_pool = self.pool.get('ir.model.data')
# Creating Account
obj_acc_root = obj_multi.chart_template_id.account_root_id
@@ -2445,7 +2524,10 @@ class wizard_multi_charts_accounts(osv.osv_memory):
# Creating Journals
vals_journal={}
view_id = self.pool.get('account.journal.view').search(cr,uid,[('name','=','Journal View')])[0]
data_id = data_pool.search(cr, uid, [('model','=','account.journal.view'), ('name','=','account_journal_view')])
data = data_pool.browse(cr, uid, data_id[0])
view_id = data.res_id
seq_id = obj_sequence.search(cr, uid, [('name','=','Account Journal')])[0]
if obj_multi.seq_journal:
@@ -2482,8 +2564,15 @@ class wizard_multi_charts_accounts(osv.osv_memory):
obj_journal.create(cr,uid,vals_journal)
# Bank Journals
view_id_cash = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Cash Journal View')])[0]
view_id_cur = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Multi-Currency Cash Journal View')])[0]
data_id = data_pool.search(cr, uid, [('model','=','account.journal.view'), ('name','=','account_journal_bank_view')])
data = data_pool.browse(cr, uid, data_id[0])
view_id_cash = data.res_id
#view_id_cash = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Bank/Cash Journal View')])[0] #TOFIX: why put fix name
data_id = data_pool.search(cr, uid, [('model','=','account.journal.view'), ('name','=','account_journal_bank_view_multi')])
data = data_pool.browse(cr, uid, data_id[0])
ref_acc_bank = data.res_id
#ref_acc_bank = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Bank/Cash Journal (Multi-Currency) View')])[0] #TOFIX: why put fix name
ref_acc_bank = obj_multi.chart_template_id.bank_account_view_id
current_num = 1
+4 -4
View File
@@ -3,8 +3,8 @@
<data noupdate="1">
<!--
Fiscal year
-->
Fiscal year
-->
<record id="data_fiscalyear" model="account.fiscalyear">
<field eval="'Fiscal Year '+time.strftime('%Y')" name="name"/>
@@ -15,8 +15,8 @@
</record>
<!--
Fiscal Periods
-->
Fiscal Periods
-->
<record id="period_1" model="account.period">
<field eval="'Jan.'+time.strftime('%Y')" name="name"/>
+2 -2
View File
@@ -257,7 +257,7 @@
<field name="number"/>
<field name="type" invisible="1"/>
<field name="currency_id" domain="[('company_id','=', company_id)]" on_change="onchange_currency_id(currency_id, company_id)" width="50"/>
<button name="%(action_account_change_currency)d" type="action" icon="terp-stock_effects-object-colorize" string="Change Currency"/>
<button name="%(action_account_change_currency)d" type="action" icon="terp-stock_effects-object-colorize" string="Change"/>
<newline/>
<field name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank,company_id)" groups="base.group_user"/>
<field domain="[('partner_id','=',partner_id)]" name="address_invoice_id"/>
@@ -490,7 +490,7 @@
<act_window domain="[('account_analytic_id', '=', active_id)]" id="act_account_analytic_account_2_account_invoice_line" name="Invoice lines" res_model="account.invoice.line" src_model="account.analytic.account"/>
<act_window domain="[('partner_id', '=', partner_id), ('account_id.type', 'in', ['receivable', 'payable']), ('reconcile_id','=',False)]" id="act_account_invoice_account_move_unreconciled" name="Unreconciled Receivables &amp; Payables" res_model="account.move.line" src_model="account.invoice"/>
<act_window domain="[('partner_id', '=', partner_id), ('account_id.type', 'in', ['receivable', 'payable']), ('reconcile_id','=',False)]" id="act_account_invoice_account_move_unreconciled" name="Unreconciled Entries" res_model="account.move.line" src_model="account.invoice"/>
</data>
</openerp>
+1 -1
View File
@@ -8,7 +8,7 @@
<menuitem id="menu_finance_bank_and_cash" name="Bank and Cash" parent="menu_finance" sequence="3"/>
<!-- <menuitem id="menu_accounting" name="Accounting" parent="menu_finance" sequence="5"/>-->
<menuitem id="menu_finance_periodical_processing" name="Periodical Processing" parent="menu_finance" sequence="8" groups="group_account_user"/>
<menuitem id="periodical_processing_journal_entries_validation" name="Journal Entries Validation" parent="menu_finance_periodical_processing"/>
<menuitem id="periodical_processing_journal_entries_validation" name="Entries to Review" parent="menu_finance_periodical_processing"/>
<menuitem id="periodical_processing_reconciliation" name="Reconciliation" parent="menu_finance_periodical_processing"/>
<!-- <menuitem id="periodical_processing_recurrent_entries" name="Recurrent Entries" parent="menu_finance_periodical_processing"/>-->
<menuitem id="periodical_processing_invoicing" name="Invoicing" parent="menu_finance_periodical_processing"/>
+64 -68
View File
@@ -330,53 +330,47 @@
<field name="arch" type="xml">
<form string="Account Journal">
<group colspan="4" col="6">
<field name="name" select="1" colspan="4"/>
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="type" on_change="onchange_type(type)"/>
<field name="refund_journal" attrs="{'readonly':[('type','=','general'),('type','=','cash'),('type','=','situation')]}"/>
<field name="type" on_change="onchange_type(type, currency)"/>
</group>
<notebook colspan="4">
<page string="General Information">
<group colspan="2" col="2">
<separator string="Journal View" colspan="4"/>
<field name="view_id" widget="selection"/>
<group col="2" colspan="2">
<group colspan="2" col="2">
<separator string="Accounts" colspan="4"/>
<field name="default_debit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="default_credit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
</group>
<group colspan="2" col="2">
<separator string="Journal View" colspan="4"/>
<field name="view_id" widget="selection"/>
</group>
</group>
<group colspan="2" col="2">
<separator string="Sequence" colspan="4"/>
<field name="sequence_id"/>
</group>
<group colspan="2" col="2">
<separator string="Accounts" colspan="4"/>
<field name="default_debit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="default_credit_account_id" attrs="{'required':[('type','=','cash')]}" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
</group>
<group colspan="2" col="2">
<separator string="Invoicing Data" colspan="4"/>
<field name="invoice_sequence_id"/>
<field name="group_invoice_lines"/>
</group>
<group colspan="2" col="2">
<separator string="Company" colspan="4"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="user_id" groups="base.group_extended"/>
<field name="currency"/>
</group>
<group col="2" colspan="2">
<group colspan="2" col="2">
<separator string="Validations" colspan="4"/>
<field name="allow_date" groups="base.group_extended"/>
</group>
<group colspan="2" col="2">
<separator string="Other Configuration" colspan="4"/>
<field name="centralisation" groups="base.group_extended"/>
<field name="entry_posted"/>
<!-- <field name="update_posted"/> -->
</group>
<group colspan="2" col="2">
<separator string="Validations" colspan="4"/>
<field name="allow_date" groups="base.group_extended"/>
</group>
<group colspan="2" col="2">
<separator string="Other Configuration" colspan="4"/>
<field name="centralisation" groups="base.group_extended"/>
<field name="entry_posted"/>
</group>
<group colspan="2" col="2">
<separator string="Invoicing Data" colspan="4"/>
<field name="invoice_sequence_id" groups="base.group_extended"/>
<field name="group_invoice_lines"/>
</group>
<group colspan="2" col="2" groups="base.group_extended">
<separator string="Sequence" colspan="4"/>
<field name="sequence_id"/>
</group>
</page>
<page string="Entry Controls" groups="base.group_extended">
@@ -1133,10 +1127,6 @@
<field name="partner_id" select='1'/>
</group>
<newline/>
<group col="10" colspan="4">
<field name="journal_id" widget="selection" context="{'journal_id':self, 'visible_id':self or 0, 'normal_view':False}"/>
<field name="period_id" widget="selection" context="{'period_id':self}"/>
</group>
<group expand="0" string="Group By..." colspan="12" col="10">
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id'}"/>
@@ -1182,15 +1172,21 @@
src_model="account.move"/>
<record id="action_move_to_review" model="ir.actions.act_window">
<field name="name">Journal Entries to Review</field>
<field name="name">Journal Entries</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.move</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_move_tree"/>
<field name="search_view_id" ref="view_account_move_filter"/>
<field name="domain">[('to_check','=',True)]</field>
<field name="domain">[('to_check','=',True), ('state','=','draft')]</field>
</record>
<menuitem action="action_move_to_review" id="menu_action_move_to_review" parent="periodical_processing_journal_entries_validation"/>
<menuitem
action="action_move_to_review"
id="menu_action_move_to_review"
parent="periodical_processing_journal_entries_validation"
/>
<!-- <menuitem id="next_id_29" name="Search Entries" parent="account.menu_finance_entries" sequence="40"/>-->
<!-- <menuitem action="action_move_line_form" id="menu_action_move_line_form" parent="next_id_29"/>-->
@@ -1212,7 +1208,7 @@
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_move_line_tree"/>
<field name="search_view_id" ref="view_account_move_line_filter"/>
<field name="domain">[('journal_id.type', 'in', ['sale', 'sale_refund'])]</field>
<field name="domain">[('journal_id.type', 'in', ['sale', 'purchase_refund'])]</field>
</record>
<menuitem action="action_account_moves_sale" id="menu_eaction_account_moves_sale" parent="menu_finance_receivables"/>
@@ -1224,7 +1220,7 @@
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_move_line_tree"/>
<field name="search_view_id" ref="view_account_move_line_filter"/>
<field name="domain">[('journal_id.type', 'in', ['purchase', 'purchase_refund'])]</field>
<field name="domain">[('journal_id.type', 'in', ['purchase', 'sale_refund'])]</field>
<field name="context">{'journal_id':1}</field>
</record>
@@ -1556,7 +1552,7 @@
<!-- <field name="date" select='1'/>-->
<!-- <field name="account_id" select='1'/>-->
<!-- <field name="partner_id" select='1'>-->
<!-- <filter help="Next Partner Entries to reconcile" name="next_partner" string="Next Partner to reconcile" context="{'next_partner_only': 1}" icon="terp-partner" domain="[('account_id.reconcile','=',True),('reconcile_id','=',False)]"/>-->
<!-- <filter help="Next Partner Entries to reconcile" name="next_partner" string="Next Partner to reconcile" context="{'next_partner_only': 1}" icon="terp-partner" domain="[('account_id.reconcile','=',True),('reconcile_id','=',False)]"/>-->
<!-- </field>-->
<!-- <field name="balance" string="Debit/Credit" select='1'/>-->
<!-- </group>-->
@@ -1845,17 +1841,17 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Account Templates">
<group>
<filter icon="terp-sale" string="Receivale Accounts" domain="[('type','=','receivable')]"/>
<filter icon="terp-purchase" string="Payable Accounts" domain="[('type','=','payable')]"/>
<separator orientation="vertical"/>
<field name="code"/>
<group>
<filter icon="terp-sale" string="Receivale Accounts" domain="[('type','=','receivable')]"/>
<filter icon="terp-purchase" string="Payable Accounts" domain="[('type','=','payable')]"/>
<separator orientation="vertical"/>
<field name="code"/>
<field name="parent_id"/>
<field name="type"/>
<field name="user_type"/>
</group>
<newline/>
<group expand="0" string="Group By...">
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="Internal Type" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'type'}"/>
<filter string="Account Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'user_type'}"/>
</group>
@@ -1881,7 +1877,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Chart of Accounts Template">
<group>
<group>
<field name="name"/>
<field name="account_root_id"/>
<field name="bank_account_view_id"/>
@@ -1906,19 +1902,19 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Chart of Account Templates">
<group>
<field name="name"/>
<field name="account_root_id"/>
<field name="bank_account_view_id"/>
</group>
<newline/>
<group>
<field name="name"/>
<field name="account_root_id"/>
<field name="bank_account_view_id"/>
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="Root Account" icon="terp-folder-orange" domain="[]" context="{'group_by':'account_root_id'}"/>
<filter string="Bank Account" icon="terp-folder-blue" domain="[]" context="{'group_by':'bank_account_view_id'}"/>
<separator orientation="vertical"/>
<filter string="Receivable Account" icon="terp-sale" domain="[]" context="{'group_by':'property_account_receivable'}"/>
<filter string="Payable Account" icon="terp-purchase" domain="[]" context="{'group_by':'property_account_payable'}"/>
<separator orientation="vertical"/>
<separator orientation="vertical"/>
<filter string="Income Account" icon="terp-sale" domain="[]" context="{'group_by':'property_account_income_categ'}"/>
<filter string="Expense Account" icon="terp-purchase" domain="[]" context="{'group_by':'property_account_expense_categ'}"/>
</group>
@@ -2063,20 +2059,20 @@
</field>
</record>
<record id="view_tax_code_template_search" model="ir.ui.view">
<record id="view_tax_code_template_search" model="ir.ui.view">
<field name="name">account.tax.code.template.search</field>
<field name="model">account.tax.code.template</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search tax template">
<group>
<field name="name"/>
<field name="code"/>
<field name="parent_id"/>
<group>
<field name="name"/>
<field name="code"/>
<field name="parent_id"/>
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="Parent Code" icon="terp-folder-orange" domain="[]" context="{'group_by':'parent_id'}"/>
<filter string="Parent Code" icon="terp-folder-orange" domain="[]" context="{'group_by':'parent_id'}"/>
</group>
</search>
</field>
+201 -48
View File
@@ -3,8 +3,8 @@
<data noupdate="1">
<!--
Payment term
-->
Payment term
-->
<record id="account_payment_term" model="account.payment.term">
<field name="name">30 Days End of Month</field>
</record>
@@ -17,10 +17,10 @@
</record>
<!--
Account Journal View
-->
Account Journal View
-->
<record id="account_journal_bank_view" model="account.journal.view">
<field name="name">Cash Journal View</field>
<field name="name">Bank/Cash Journal View</field>
</record>
<record id="bank_col1" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view"/>
@@ -74,12 +74,6 @@
<field name="field">credit</field>
<field eval="11" name="sequence"/>
</record>
<record id="bank_col11" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view"/>
<field name="name">Tax</field>
<field name="field">account_tax_id</field>
<field eval="12" name="sequence"/>
</record>
<record id="bank_col12" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view"/>
<field name="name">Analytic Account</field>
@@ -100,7 +94,7 @@
</record>
<record id="account_journal_bank_view_multi" model="account.journal.view">
<field name="name">Multi-Currency Cash Journal View</field>
<field name="name">Bank/Cash Journal (Multi-Currency) View</field>
</record>
<record id="bank_col1_multi" model="account.journal.column">
<field name="view_id" ref="account_journal_bank_view_multi"/>
@@ -203,6 +197,12 @@
<field name="field">ref</field>
<field eval="3" name="sequence"/>
</record>
<record id="journal_col5" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Partner</field>
<field name="field">partner_id</field>
<field eval="4" name="sequence"/>
</record>
<record id="journal_col4" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Account</field>
@@ -210,12 +210,6 @@
<field eval="True" name="required"/>
<field eval="5" name="sequence"/>
</record>
<record id="journal_col5" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Partner</field>
<field name="field">partner_id</field>
<field eval="4" name="sequence"/>
</record>
<record id="journal_col6" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Name</field>
@@ -223,12 +217,6 @@
<field eval="6" name="sequence"/>
<field eval="True" name="required"/>
</record>
<record id="journal_col7" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Maturity Date</field>
<field name="field">date_maturity</field>
<field eval="7" name="sequence"/>
</record>
<record id="journal_col8" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Debit</field>
@@ -241,41 +229,206 @@
<field name="field">credit</field>
<field eval="9" name="sequence"/>
</record>
<record id="journal_col10" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Tax</field>
<field name="field">account_tax_id</field>
<field eval="10" name="sequence"/>
</record>
<record id="journal_col11" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Analytic Account</field>
<field name="field">analytic_account_id</field>
<field eval="11" name="sequence"/>
</record>
<record id="journal_col25" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Tax Acc.</field>
<field name="field">tax_code_id</field>
<field eval="12" name="sequence"/>
</record>
<record id="journal_col26" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">Tax</field>
<field name="field">tax_amount</field>
<field eval="13" name="sequence"/>
</record>
<record id="journal_col24" model="account.journal.column">
<field name="view_id" ref="account_journal_view"/>
<field name="name">State</field>
<field name="field">state</field>
<field eval="14" name="sequence"/>
</record>
<record id="account_sp_journal_view" model="account.journal.view">
<field name="name">Sale/Purchase Journal View</field>
</record>
<record id="sp_journal_col1" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Date</field>
<field name="field">date</field>
<field eval="True" name="required"/>
<field eval="1" name="sequence"/>
</record>
<record id="sp_journal_col2" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">N. Piece</field>
<field name="field">move_id</field>
<field eval="False" name="required"/>
<field eval="2" name="sequence"/>
</record>
<record id="sp_journal_col3" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Ref</field>
<field name="field">ref</field>
<field eval="3" name="sequence"/>
</record>
<record id="sp_journal_col4" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Account</field>
<field name="field">account_id</field>
<field eval="True" name="required"/>
<field eval="5" name="sequence"/>
</record>
<record id="sp_journal_col5" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Partner</field>
<field name="field">partner_id</field>
<field eval="4" name="sequence"/>
</record>
<record id="sp_journal_col6" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Name</field>
<field name="field">name</field>
<field eval="6" name="sequence"/>
<field eval="True" name="required"/>
</record>
<record id="sp_journal_col7" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Maturity Date</field>
<field name="field">date_maturity</field>
<field eval="7" name="sequence"/>
</record>
<record id="sp_journal_col8" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Debit</field>
<field name="field">debit</field>
<field eval="8" name="sequence"/>
</record>
<record id="sp_journal_col9" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Credit</field>
<field name="field">credit</field>
<field eval="9" name="sequence"/>
</record>
<record id="sp_journal_col10" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Tax</field>
<field name="field">account_tax_id</field>
<field eval="10" name="sequence"/>
</record>
<record id="sp_journal_col11" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Analytic Account</field>
<field name="field">analytic_account_id</field>
<field eval="11" name="sequence"/>
</record>
<record id="sp_journal_col25" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Tax Acc.</field>
<field name="field">tax_code_id</field>
<field eval="12" name="sequence"/>
</record>
<record id="sp_journal_col26" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">Tax</field>
<field name="field">tax_amount</field>
<field eval="13" name="sequence"/>
</record>
<record id="sp_journal_col24" model="account.journal.column">
<field name="view_id" ref="account_sp_journal_view"/>
<field name="name">State</field>
<field name="field">state</field>
<field eval="14" name="sequence"/>
</record>
<record id="account_sp_refund_journal_view" model="account.journal.view">
<field name="name">Sale/Purchase Refund Journal View</field>
</record>
<record id="sp_refund_journal_col1" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Date</field>
<field name="field">date</field>
<field eval="True" name="required"/>
<field eval="1" name="sequence"/>
</record>
<record id="sp_refund_journal_col2" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">N. Piece</field>
<field name="field">move_id</field>
<field eval="False" name="required"/>
<field eval="2" name="sequence"/>
</record>
<record id="sp_refund_journal_col3" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Ref</field>
<field name="field">ref</field>
<field eval="3" name="sequence"/>
</record>
<record id="sp_refund_journal_col4" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Account</field>
<field name="field">account_id</field>
<field eval="True" name="required"/>
<field eval="5" name="sequence"/>
</record>
<record id="sp_refund_journal_col5" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Partner</field>
<field name="field">partner_id</field>
<field eval="4" name="sequence"/>
</record>
<record id="sp_refund_journal_col6" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Name</field>
<field name="field">name</field>
<field eval="6" name="sequence"/>
<field eval="True" name="required"/>
</record>
<record id="sp_refund_journal_col7" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Maturity Date</field>
<field name="field">date_maturity</field>
<field eval="7" name="sequence"/>
</record>
<record id="sp_refund_journal_col8" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Debit</field>
<field name="field">debit</field>
<field eval="8" name="sequence"/>
</record>
<record id="sp_refund_journal_col9" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Credit</field>
<field name="field">credit</field>
<field eval="9" name="sequence"/>
</record>
<record id="sp_refund_journal_col10" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Tax</field>
<field name="field">account_tax_id</field>
<field eval="10" name="sequence"/>
</record>
<record id="sp_refund_journal_col11" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Analytic Account</field>
<field name="field">analytic_account_id</field>
<field eval="11" name="sequence"/>
</record>
<record id="sp_refund_journal_col25" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Tax Acc.</field>
<field name="field">tax_code_id</field>
<field eval="12" name="sequence"/>
</record>
<record id="sp_refund_journal_col26" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">Tax</field>
<field name="field">tax_amount</field>
<field eval="13" name="sequence"/>
</record>
<record id="sp_refund_journal_col24" model="account.journal.column">
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="name">State</field>
<field name="field">state</field>
<field eval="14" name="sequence"/>
</record>
<!--
Account Journal Sequences
-->
Account Journal Sequences
-->
<record id="sequence_journal_type" model="ir.sequence.type">
<field name="name">Account Journal</field>
@@ -298,8 +451,8 @@
</record>
<!--
Account Statement Sequences
-->
Account Statement Sequences
-->
<record id="sequence_reconcile" model="ir.sequence.type">
<field name="name">Account reconcile sequence</field>
+9 -9
View File
@@ -5,10 +5,10 @@
<field name="name">Invoice</field>
<field name="object">account.invoice</field>
</record>
<!--
Sequences types for invoices
-->
Sequences types for invoices
-->
<record id="seq_type_out_invoice" model="ir.sequence.type">
<field name="name">Account Invoice Out</field>
<field name="code">account.invoice.out_invoice</field>
@@ -27,8 +27,8 @@
</record>
<!--
Sequences for invoices
-->
Sequences for invoices
-->
<record id="seq_out_invoice" model="ir.sequence">
<field name="name">Account Invoice Out</field>
<field name="code">account.invoice.out_invoice</field>
@@ -55,16 +55,16 @@
</record>
<!--
Sequences types for analytic account
-->
Sequences types for analytic account
-->
<record id="seq_type_analytic_account" model="ir.sequence.type">
<field name="name">Analytic account</field>
<field name="code">account.analytic.account</field>
</record>
<!--
Sequence for analytic account
-->
Sequence for analytic account
-->
<record id="seq_analytic_account" model="ir.sequence">
<field name="name">Analytic account sequence</field>
<field name="code">account.analytic.account</field>
+8 -10
View File
@@ -170,14 +170,14 @@ your own chart of account.
<!--
Account Journal
-->
Account Journal
-->
<record id="sales_journal" model="account.journal">
<field name="name">x Sales Journal</field>
<field name="code">SAJ</field>
<field name="type">sale</field>
<field name="view_id" ref="account_journal_view"/>
<field name="view_id" ref="account_sp_journal_view"/>
<field name="sequence_id" ref="sequence_sale_journal"/>
<field name="invoice_sequence_id" ref="seq_type_out_invoice"/>
<field model="account.account" name="default_credit_account_id" ref="a_sale"/>
@@ -188,8 +188,7 @@ your own chart of account.
<field name="name">x Sales Credit Note Journal</field>
<field name="code">SCNJ</field>
<field name="type">sale_refund</field>
<field name="refund_journal">True</field>
<field name="view_id" ref="account_journal_view"/>
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="sequence_id" ref="sequence_sale_journal"/>
<field model="account.account" name="default_credit_account_id" ref="a_sale"/>
<field model="account.account" name="default_debit_account_id" ref="a_sale"/>
@@ -200,7 +199,7 @@ your own chart of account.
<field name="name">x Expenses Journal</field>
<field name="code">EXJ</field>
<field name="type">purchase</field>
<field name="view_id" ref="account_journal_view"/>
<field name="view_id" ref="account_sp_journal_view"/>
<field name="sequence_id" ref="sequence_purchase_journal"/>
<field name="invoice_sequence_id" ref="seq_type_in_invoice"/>
<field model="account.account" name="default_debit_account_id" ref="a_expense"/>
@@ -211,8 +210,7 @@ your own chart of account.
<field name="name">x Expenses Credit Notes Journal</field>
<field name="code">ECNJ</field>
<field name="type">purchase_refund</field>
<field name="refund_journal">True</field>
<field name="view_id" ref="account_journal_view"/>
<field name="view_id" ref="account_sp_refund_journal_view"/>
<field name="sequence_id" ref="sequence_purchase_journal"/>
<field model="account.account" name="default_debit_account_id" ref="a_expense"/>
<field model="account.account" name="default_credit_account_id" ref="a_expense"/>
@@ -241,8 +239,8 @@ your own chart of account.
</record>
<!--
Product income and expense accounts, default parameters
-->
Product income and expense accounts, default parameters
-->
<record id="property_account_expense_prd" model="ir.property">
<field name="name">property_account_expense</field>
+7 -5
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-07-05 10:24+0000\n"
"PO-Revision-Date: 2010-07-08 08:56+0000\n"
"Last-Translator: eLBati - albatos.com <lorenzo.battistini@albatos.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-07 03:39+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -3209,6 +3209,8 @@ msgid ""
"The account moves of the invoice have been reconciled with account moves of "
"the payment(s)."
msgstr ""
"I movimenti contabili della fattura sono stati riconciliati con movimenti "
"contabili del/i pagamento/i."
#. module: account
#: rml:account.invoice:0
@@ -3631,7 +3633,7 @@ msgstr ""
#. module: account
#: help:account.invoice,account_id:0
msgid "The partner account used for this invoice."
msgstr ""
msgstr "Il conto del partner utilizzato per questa fattura."
#. module: account
#: help:account.tax.code,notprintable:0
@@ -3888,7 +3890,7 @@ msgstr ""
#. module: account
#: help:account.invoice,date_invoice:0
msgid "Keep empty to use the current date"
msgstr ""
msgstr "Lasciare vuoto per utilizzare la data corrente"
#. module: account
#: rml:account.overdue:0
@@ -5278,7 +5280,7 @@ msgstr "Non pagati"
#. module: account
#: help:account.invoice,residual:0
msgid "Remaining amount due."
msgstr ""
msgstr "Importo rimanente dovuto"
#. module: account
#: wizard_view:account.period.close,init:0
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
+22 -22
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-07-06 10:39+0000\n"
"PO-Revision-Date: 2010-07-08 05:22+0000\n"
"Last-Translator: Black Jack <onetimespeed@hotmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-07 03:39+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -24,7 +24,7 @@ msgstr "内部名称"
#. module: account
#: view:account.tax.code:0
msgid "Account Tax Code"
msgstr "税代码"
msgstr "税事务科目"
#. module: account
#: model:ir.actions.act_window,name:account.action_invoice_tree9
@@ -94,7 +94,7 @@ msgstr "未对账"
#: field:account.tax,base_code_id:0
#: field:account.tax.template,base_code_id:0
msgid "Base Code"
msgstr "基础代码"
msgstr "基础税事务代码"
#. module: account
#: view:account.account:0
@@ -128,7 +128,7 @@ msgstr "剩余的"
#: field:account.tax.template,base_sign:0
#: field:account.tax.template,ref_base_sign:0
msgid "Base Code Sign"
msgstr "税基代码符号"
msgstr "基础税事务符号"
#. module: account
#: model:ir.actions.wizard,name:account.wizard_unreconcile_select
@@ -503,7 +503,7 @@ msgstr "辅助核算分录统计"
#: model:ir.actions.act_window,name:account.action_account_tax_code_template_form
#: model:ir.ui.menu,name:account.menu_action_account_tax_code_template_form
msgid "Tax Code Templates"
msgstr "税代码模板"
msgstr "税事务模板"
#. module: account
#: view:account.invoice:0
@@ -546,7 +546,7 @@ msgstr "包含在基础金额里"
#: field:account.tax,ref_base_code_id:0
#: field:account.tax.template,ref_base_code_id:0
msgid "Refund Base Code"
msgstr "退税基于"
msgstr "退税事务代码"
#. module: account
#: view:account.invoice.line:0
@@ -701,7 +701,7 @@ msgstr "选择辅助核算的会计期间"
#: field:account.tax.template,ref_tax_sign:0
#: field:account.tax.template,tax_sign:0
msgid "Tax Code Sign"
msgstr "税的借贷标志(1为借方)"
msgstr "税事务的符号(1为正数)"
#. module: account
#: help:res.partner,credit:0
@@ -938,7 +938,7 @@ msgstr "结束日期"
#. module: account
#: field:account.invoice.tax,base_amount:0
msgid "Base Code Amount"
msgstr "基础代码金额"
msgstr "基础税事务代码的金额"
#. module: account
#: help:account.journal,user_id:0
@@ -1506,7 +1506,7 @@ msgstr "电话:"
#. module: account
#: field:account.invoice.tax,tax_amount:0
msgid "Tax Code Amount"
msgstr "税代码金额"
msgstr "税事务金额"
#. module: account
#: selection:account.account.type,sign:0
@@ -1849,7 +1849,7 @@ msgstr "开始日期"
#. module: account
#: model:account.journal,name:account.refund_expenses_journal
msgid "x Expenses Credit Notes Journal"
msgstr "x 费用信用票据分录集合"
msgstr "x 费用贷项单分录集合"
#. module: account
#: field:account.analytic.journal,type:0
@@ -2630,7 +2630,7 @@ msgstr "逾期付款信息"
#. module: account
#: model:ir.model,name:account.model_account_tax_code_template
msgid "Tax Code Template"
msgstr "税代码模板"
msgstr "税事务模板"
#. module: account
#: rml:account.partner.balance:0
@@ -2969,7 +2969,7 @@ msgstr "汇总"
#: field:account.tax.template,tax_code_id:0
#: model:ir.model,name:account.model_account_tax_code
msgid "Tax Code"
msgstr "税代码"
msgstr "税事务"
#. module: account
#: rml:account.analytic.account.journal:0
@@ -3286,7 +3286,7 @@ msgstr "每月30天"
#. module: account
#: field:account.chart.template,tax_code_root_id:0
msgid "Root Tax Code"
msgstr "税根代码"
msgstr "税事务的根"
#. module: account
#: constraint:account.invoice:0
@@ -3602,7 +3602,7 @@ msgstr "当前业务伙伴将替代为这默认的付款条款"
#: wizard_field:account.invoice.pay,addendum,comment:0
#: wizard_field:account.invoice.pay,init,name:0
msgid "Entry Name"
msgstr "分录名称"
msgstr "名称"
#. module: account
#: help:account.invoice,account_id:0
@@ -3644,7 +3644,7 @@ msgstr "明细"
#: wizard_view:account.invoice.refund,init:0
#: model:ir.actions.wizard,name:account.wizard_invoice_refund
msgid "Credit Note"
msgstr "贷方票据"
msgstr "贷项单"
#. module: account
#: model:ir.actions.todo,note:account.config_fiscalyear
@@ -3798,7 +3798,7 @@ msgstr "付款分录"
#. module: account
#: help:account.move.line,tax_code_id:0
msgid "The Account can either be a base tax code or tax code account."
msgstr "可以选基于的税务代码或税务代码"
msgstr "可以选基础税事务或税事务科目"
#. module: account
#: help:account.automatic.reconcile,init,account_ids:0
@@ -4170,7 +4170,7 @@ msgid ""
"Allows you to change the sign of the balance amount displayed in the "
"reports, so that you can see positive figures instead of negative ones in "
"expenses accounts."
msgstr "允许你修改报表显示的余额的符号,所以你能看见费用科目为正数"
msgstr "允许你修改报表显示的余额的符号,所以你能看见正数来取代负数的费用科目"
#. module: account
#: help:account.config.wizard,code:0
@@ -4329,7 +4329,7 @@ msgstr "已登帐"
#: view:account.tax:0
#: view:account.tax.template:0
msgid "Credit Notes"
msgstr "贷方备注"
msgstr "贷项单"
#. module: account
#: field:account.config.wizard,date2:0
@@ -4933,7 +4933,7 @@ msgstr "创建"
#: field:account.tax,ref_tax_code_id:0
#: field:account.tax.template,ref_tax_code_id:0
msgid "Refund Tax Code"
msgstr "退税代码"
msgstr "退税事务"
#. module: account
#: field:account.invoice.tax,name:0
@@ -5100,7 +5100,7 @@ msgstr "项信息"
#. module: account
#: view:account.tax.code.template:0
msgid "Account Tax Code Template"
msgstr "科目税代码模板"
msgstr "税事务科目模板"
#. module: account
#: view:account.subscription:0
@@ -5352,7 +5352,7 @@ msgid ""
"If the Tax account is tax code account, this field will contain the taxed "
"amount.If the tax account is base tax code, this field "
"will contain the basic amount(without tax)."
msgstr "如果这税科目是免税科目, 这字段将含税款. 如果这科目是基本税代码这字段将含基础金额(不含税)."
msgstr "如果这税科目是税事务科目, 这字段将含税款. 如果这科目是基础税事务这字段将含基础金额(不含税)."
#. module: account
#: view:account.bank.statement:0
+4 -4
View File
@@ -207,8 +207,8 @@ class account_installer(osv.osv_memory):
new_account = obj_acc.create(cr, uid, vals)
acc_template_ref[account_template.id] = new_account
if account_template.name == 'Bank Current Account':
view_id_cash = self.pool.get('account.journal.view').search(cr,uid,[('name','=','Cash Journal View')])[0]
view_id_cur = self.pool.get('account.journal.view').search(cr,uid,[('name','=','Multi-Currency Cash Journal View')])[0]
view_id_cash = self.pool.get('account.journal.view').search(cr,uid,[('name','=','Bank/Cash Journal View')])[0] #why fixed name here?
view_id_cur = self.pool.get('account.journal.view').search(cr,uid,[('name','=','Bank/Cash Journal (Multi-Currency) View')])[0] #Why Fixed name here?
ref_acc_bank = obj_multi.bank_account_view_id
cash_result = mod_obj._get_id(cr, uid, 'account', 'conf_account_type_cash')
@@ -328,8 +328,8 @@ class account_installer(osv.osv_memory):
obj_journal.create(cr,uid,vals_journal)
# Bank Journals
view_id_cash = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Cash Journal View')])[0]
view_id_cur = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Multi-Currency Cash Journal View')])[0]
view_id_cash = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Bank/Cash Journal View')])[0] #TOFIX: Why put fixed name ?
view_id_cur = self.pool.get('account.journal.view').search(cr, uid, [('name','=','Bank/Cash Journal (Multi-Currency) View')])[0] #TOFIX: why put fixed name?
ref_acc_bank = obj_multi.bank_account_view_id
+4 -4
View File
@@ -234,7 +234,7 @@ class account_invoice(osv.osv):
'number': fields.char('Invoice Number', size=32, readonly=True, help="Unique number of the invoice, computed automatically when the invoice is created."),
'reference': fields.char('Invoice Reference', size=64, help="The partner reference of this invoice."),
'reference_type': fields.selection(_get_reference_type, 'Reference Type',
required=True),
required=True, readonly=True, states={'draft':[('readonly',False)]}),
'comment': fields.text('Additional Information', translate=True),
'state': fields.selection([
@@ -312,8 +312,8 @@ class account_invoice(osv.osv):
},
help="Remaining amount due."),
'payment_ids': fields.function(_compute_lines, method=True, relation='account.move.line', type="many2many", string='Payments'),
'move_name': fields.char('Ledger Posting', size=64),
'user_id': fields.many2one('res.users', 'Salesman'),
'move_name': fields.char('Ledger Posting', size=64, readonly=True, states={'draft':[('readonly',False)]}),
'user_id': fields.many2one('res.users', 'Salesman', readonly=True, states={'draft':[('readonly',False)]}),
'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position')
}
_defaults = {
@@ -1574,4 +1574,4 @@ class res_partner(osv.osv):
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+5 -5
View File
@@ -217,11 +217,11 @@
<td><para style="P10">Balance</para></td>
</tr>
<tr>
<td><para style="P14">[[ repeatIn(lines(data['form']), 'a') ]]<font>[[ a['level']&gt;2 and setTag('para','para',{'fontName':"Helvetica"}) ]]</font><i>[[ a['code'] or removeParentNode('tr') ]]</i></para></td>
<td><para style="P14"><font>[[ a['level']&gt;2 and setTag('para','para',{'fontName':"Helvetica"}) ]]</font><font color="white">[[ '..'*(a['level']-1) ]]</font><font>[[ a['name'] ]]</font></para></td>
<td><para style="P3"><font>[[ a['level']&gt;2 and setTag('para','para',{'fontName':"Helvetica"}) ]]</font><font>[[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['debit']) ]]</font><font>[[ a['type']&lt;&gt;'view' and removeParentNode('font') ]] [[formatLang(a['debit']) ]]</font></para></td>
<td><para style="P3"><font>[[ a['level']&gt;2 and setTag('para','para',{'fontName':"Helvetica"}) ]]</font><font>[[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['credit']) ]]</font><font>[[ a['type']&lt;&gt;'view' and removeParentNode('font') ]] [[ formatLang(a['credit']) ]]</font></para></td>
<td><para style="P3"><font>[[ a['level']&gt;2 and setTag('para','para',{'fontName':"Helvetica"}) ]]</font><font>[[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['balance']) ]]</font><font>[[ a['type']&lt;&gt;'view' and removeParentNode('font') ]] [[ formatLang(a['balance']) ]]</font></para></td>
<td><para style="P14">[[ repeatIn(lines(data['form']), 'a') ]]<font>[[ (a['level']&gt;2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font') ]]</font><i>[[ a['code'] or removeParentNode('tr') ]]</i></para></td>
<td><para style="P14"><font>[[ (a['level']&gt;2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font') ]]</font><font color="white">[[ '..'*(a['level']-1) ]]</font><font>[[ a['name'] ]]</font></para></td>
<td><para style="P3"><font>[[ (a['level']&gt;2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font') ]]</font><font>[[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['debit']) ]]</font><font>[[ a['type']&lt;&gt;'view' and removeParentNode('font') ]] [[formatLang(a['debit']) ]]</font></para></td>
<td><para style="P3"><font>[[ (a['level']&gt;2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font')]]</font><font>[[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['credit']) ]]</font><font>[[ a['type']&lt;&gt;'view' and removeParentNode('font') ]] [[ formatLang(a['credit']) ]]</font></para></td>
<td><para style="P3"><font>[[ (a['level']&gt;2 and setTag('para','para',{'fontName':"Helvetica"})) or removeParentNode('font') ]]</font><font>[[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['balance']) ]]</font><font>[[ a['type']&lt;&gt;'view' and removeParentNode('font') ]] [[ formatLang(a['balance']) ]]</font></para></td>
</tr>
</blockTable>
</story>
@@ -50,36 +50,42 @@
<field name="arch" type="xml">
<search string="Entries Analysis">
<group colspan="10" col="12">
<filter string="Income" name="profit" icon="terp-document-new" domain="[('user_type.report_type','=','income')]"/>
<filter string="Expense" name="loss" icon="terp-document-new" domain="[('user_type.report_type','=','expense')]"/>
<separator orientation="vertical"/>
<filter string="Asset" name="asset" icon="terp-document-new" domain="[('user_type.report_type','=','asset')]"/>
<filter string="Liability" name="liability" icon="terp-document-new" domain="[('user_type.report_type','=','liability')]"/>
<filter string="Receivable" name="asset" icon="terp-document-new" domain="[('type','=','receivable')]"/>
<filter string="Payable" name="asset" icon="terp-document-new" domain="[('type','=','payable')]"/>
<filter icon="terp-go-year" string="This Year"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')),('date','&gt;',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
help="Tasks performed in this year"/>
<filter icon="terp-go-month" string="This Month"
name="month"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
help="Tasks performed in this month"/>
<filter icon="terp-go-week"
string="7 Days"
separator="1"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
help="Tasks during last 7 days"/>
<separator orientation="vertical"/>
<filter string="Draft" icon="terp-document-new" domain="[('state','=','draft')]" help = "Draft entries"/>
<filter string="Posted" icon="terp-camera_test" domain="[('state','=','posted')]" help = "Posted entries"/>
<separator orientation="vertical"/>
<field name="journal_id"/>
<field name="period_id"/>
<field name="account_id"/>
<field name="analytic_account_id"/>
</group>
<newline/>
<group expand="1" string="Group By...">
<filter string="Journal" name="group_journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/>
<filter string="Account" name="group_account" icon="terp-folder-orange" context="{'group_by':'account_id'}"/>
<filter string="Fiscal Year" icon="terp-go-month" context="{'group_by':'fiscalyear_id'}"/>
<filter string="Period" icon="terp-go-month" name="group_period" context="{'group_by':'period_id'}"/>
<filter string="Journal" name="group_journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/>
<separator orientation="vertical"/>
<filter string="Analytic" name="analytic_account" icon="terp-folder-orange" context="{'group_by':'analytic_account_id'}"/>
<filter string="Partner" icon="terp-personal" context="{'group_by':'partner_id'}"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
<separator orientation="vertical"/>
<filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
<filter string="Type" icon="terp-stock_symbol-selection" context="{'group_by':'user_type'}"/>
<filter string="Int.Type" icon="terp-stock_symbol-selection" context="{'group_by':'type'}"/>
<filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
<separator orientation="vertical"/>
<filter string="Partner" icon="terp-personal" context="{'group_by':'partner_id'}"/>
<separator orientation="vertical"/>
<filter string="Analytic" name="analytic_account" icon="terp-folder-orange" context="{'group_by':'analytic_account_id'}"/>
<separator orientation="vertical"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
<separator orientation="vertical"/>
<filter string="Period" icon="terp-go-month" name="group_period" context="{'group_by':'period_id'}"/>
<filter string="Fiscal Year" icon="terp-go-month" context="{'group_by':'fiscalyear_id'}"/>
<separator orientation="vertical"/>
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<separator orientation="vertical"/>
<filter string="Day" icon="terp-go-today" context="{'group_by':'date'}"/>
@@ -88,12 +94,20 @@
</group>
<newline/>
<group expand="0" string="Extended options..." groups="base.group_extended">
<field name="journal_id"/>
<field name="fiscalyear_id"/>
<field name="period_id"/>
<separator orientation="vertical"/>
<field name="analytic_account_id"/>
<separator orientation="vertical"/>
<field name="product_id"/>
<field name="partner_id"/>
<separator orientation="vertical"/>
<field name="company_id" groups="base.group_multi_company"/>
<newline/>
<field name="date"/>
<field name="date_created"/>
<field name="date_maturity"/>
<separator orientation="vertical"/>
<field name="product_id" />
<field name="partner_id" />
</group>
</search>
</field>
@@ -103,7 +117,7 @@
<field name="res_model">account.entries.report</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="context">{'search_default_profit': 1,'search_default_group_journal':1,'search_default_group_period': 1, 'group_by_no_leaf':1,'group_by':[]}</field>
<field name="context">{'search_default_profit': 1,'search_default_group_account':1,'search_default_group_month': 1, 'group_by_no_leaf':1,'group_by':[]}</field>
</record>
<menuitem action="action_account_entries_report_all" id="menu_action_account_entries_report_all" parent="account.menu_finance_statistic_report_statement" sequence="2"/>
</data>
+77 -78
View File
@@ -77,84 +77,83 @@ class account_invoice_report(osv.osv):
tools.drop_view_if_exists(cr, 'account_invoice_report')
cr.execute("""
create or replace view account_invoice_report as (
select
min(l.id) as id,
s.date_invoice as date,
to_char(s.date_invoice, 'YYYY') as year,
to_char(s.date_invoice, 'MM') as month,
to_char(s.date_invoice, 'YYYY-MM-DD') as day,
l.product_id as product_id,
sum(case when s.type in ('out_refund','in_invoice') then
l.quantity * u.factor * -1
else
l.quantity * u.factor
end) as product_qty,
s.partner_id as partner_id,
s.reconciled::integer,
s.payment_term as payment_term,
s.period_id as period_id,
u.name as uom_name,
s.currency_id as currency_id,
s.journal_id as journal_id,
s.fiscal_position as fiscal_position,
s.user_id as user_id,
s.company_id as company_id,
sum(case when s.type in ('out_refund','in_invoice') then
l.quantity*l.price_unit * -1
else
l.quantity*l.price_unit
end) as price_total,
sum(case when s.type in ('out_refund','in_invoice') then
l.quantity*l.price_unit * -1
else
l.quantity*l.price_unit
end) / sum(l.quantity * u.factor)::decimal(16,2) as price_average,
count(*) as nbr,
s.type as type,
s.state,
pt.categ_id,
s.date_due as date_due,
s.address_contact_id as address_contact_id,
s.address_invoice_id as address_invoice_id,
s.account_id as account_id,
s.partner_bank as partner_bank,
sum(case when s.type in ('out_refund','in_invoice') then
s.residual * -1
else
s.residual
end) as residual,
case when s.state != 'paid' then null else
extract(epoch from avg(am.date_created-l.create_date))/(24*60*60)::decimal(16,2)
end as delay_to_pay
from account_invoice_line l
left join account_invoice s on (s.id=l.invoice_id)
left join product_template pt on (pt.id=l.product_id)
left join product_uom u on (u.id=l.uos_id),
account_move_line am left join account_invoice i on (i.move_id=am.move_id)
where am.account_id=i.account_id
group by
s.type,
s.date_invoice,
s.partner_id,
l.product_id,
u.name,
l.uos_id,
s.reconciled,
s.user_id,
s.state,
s.residual,
pt.categ_id,
s.company_id,
s.payment_term,
s.period_id,
s.fiscal_position,
s.currency_id,
s.journal_id,
s.date_due,
s.address_contact_id,
s.address_invoice_id,
s.account_id,
s.partner_bank
select min(ail.id) as id,
ai.date_invoice as date,
to_char(ai.date_invoice, 'YYYY') as year,
to_char(ai.date_invoice, 'MM') as month,
to_char(ai.date_invoice, 'YYYY-MM-DD') as day,
ail.product_id,
ai.partner_id as partner_id,
ai.reconciled::integer,
ai.payment_term as payment_term,
ai.period_id as period_id,
u.name as uom_name,
ai.currency_id as currency_id,
ai.journal_id as journal_id,
ai.fiscal_position as fiscal_position,
ai.user_id as user_id,
ai.company_id as company_id,
count(ail.*) as nbr,
ai.type as type,
ai.state,
pt.categ_id,
ai.date_due as date_due,
ai.address_contact_id as address_contact_id,
ai.address_invoice_id as address_invoice_id,
ai.account_id as account_id,
ai.partner_bank as partner_bank,
sum(case when ai.type in ('out_refund','in_invoice') then
ail.quantity * u.factor * -1
else
ail.quantity * u.factor
end) as product_qty,
sum(case when ai.type in ('out_refund','in_invoice') then
ail.quantity*ail.price_unit * -1
else
ail.quantity*ail.price_unit
end) as price_total,
sum(ail.quantity*ail.price_unit)/sum(ail.quantity*u.factor)*count(ail.product_id)::decimal(16,2) as price_average,
sum((select extract(epoch from avg(date_trunc('day',aml.date_created)-date_trunc('day',l.create_date)))/(24*60*60)::decimal(16,2)
from account_move_line as aml
left join account_invoice as a ON (a.move_id=aml.move_id)
left join account_invoice_line as l ON (a.id=l.invoice_id)
where a.id=ai.id)) as delay_to_pay,
(case when ai.type in ('out_refund','in_invoice') then
ai.residual * -1
else
ai.residual
end)/(select count(l.*) from account_invoice_line as l
left join account_invoice as a ON (a.id=l.invoice_id)
where a.id=ai.id) as residual
from account_invoice_line as ail
left join account_invoice as ai ON (ai.id=ail.invoice_id)
left join product_template pt on (pt.id=ail.product_id)
left join product_uom u on (u.id=ail.uos_id)
group by ail.product_id,
ai.date_invoice,
ai.id,
to_char(ai.date_invoice, 'YYYY'),
to_char(ai.date_invoice, 'MM'),
to_char(ai.date_invoice, 'YYYY-MM-DD'),
ai.partner_id,
ai.reconciled,
ai.payment_term,
ai.period_id,
u.name,
ai.currency_id,
ai.journal_id,
ai.fiscal_position,
ai.user_id,
ai.company_id,
ai.type,
ai.state,
pt.categ_id,
ai.date_due,
ai.address_contact_id,
ai.address_invoice_id,
ai.account_id,
ai.partner_bank,
ai.residual
)
""")
account_invoice_report()
@@ -32,8 +32,8 @@
<field name="reconciled" sum="# Reconciled"/>
<field name="price_average" avg="Average Price"/>
<field name="price_total" sum="Total Price"/>
<field name="residual" sum="Total Residual"/>
<field name="delay_to_pay" avg="Avg. Delay To Pay"/>
<field name="residual" sum="Total Residual" invisible="not context.get('residual_visible',False)"/>
<field name="delay_to_pay" avg="Avg. Delay To Pay" invisible="not context.get('residual_visible',False)"/>
</tree>
</field>
</record>
@@ -84,7 +84,7 @@
help = "Done Invoices"/>
<separator orientation="vertical"/>
<field name="partner_id"/>
<field name="user_id" widget="selection">
<field name="user_id" >
<filter icon="terp-dolar"
string="My Invoices"
help="My Invoices"
@@ -93,24 +93,24 @@
</group>
<newline/>
<group expand="1" string="Group By...">
<filter string="Salesman" name='user' icon="terp-personal" context="{'group_by':'user_id'}"/>
<filter string="Partner" icon="terp-personal" context="{'group_by':'partner_id'}"/>
<filter string="Salesman" name='user' icon="terp-personal" context="{'group_by':'user_id','residual_visible':True}"/>
<filter string="Partner" icon="terp-personal" context="{'group_by':'partner_id','residual_visible':True}"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id','set_visible':True}"/>
<separator orientation="vertical"/>
<filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
<filter string="Type" icon="terp-stock_symbol-selection" context="{'group_by':'type'}"/>
<filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state','residual_visible':True}"/>
<filter string="Type" icon="terp-stock_symbol-selection" context="{'group_by':'type','residual_visible':True}"/>
<separator orientation="vertical"/>
<filter string="Journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/>
<filter string="Account" icon="terp-folder-orange" context="{'group_by':'account_id'}"/>
<filter string="Journal" icon="terp-folder-orange" context="{'group_by':'journal_id','residual_visible':True}"/>
<filter string="Account" icon="terp-folder-orange" context="{'group_by':'account_id','residual_visible':True}"/>
<separator orientation="vertical"/>
<filter string="Category of Product" icon="terp-stock_symbol-selection" context="{'group_by':'categ_id'}"/>
<filter string="Force Period" icon="terp-go-month" context="{'group_by':'period_id'}"/>
<filter string="Force Period" icon="terp-go-month" context="{'group_by':'period_id','residual_visible':True}"/>
<separator orientation="vertical"/>
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<newline/>
<filter string="Day" name="day" icon="terp-go-today" context="{'group_by':'day'}"/>
<filter string="Month" name="month" icon="terp-go-month" context="{'group_by':'month'}"/>
<filter string="Year" name="year" icon="terp-go-year" context="{'group_by':'year'}"/>
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id','residual_visible':True}" groups="base.group_multi_company"/>
<separator orientation="vertical"/>
<filter string="Day" name="day" icon="terp-go-today" context="{'group_by':'day','residual_visible':True}"/>
<filter string="Month" name="month" icon="terp-go-month" context="{'group_by':'month','residual_visible':True}"/>
<filter string="Year" name="year" icon="terp-go-year" context="{'group_by':'year','residual_visible':True}"/>
</group>
<newline/>
<group expand="0" string="Extended options..." groups="base.group_extended">
+5 -5
View File
@@ -26,7 +26,7 @@
<lineMode width="0.7"/>
<lines>1cm 27.7cm 20cm 27.7cm</lines>
<lines>0.88cm 27.7cm 20.12cm 27.7cm</lines>
<setFont name="Helvetica" size="8"/>
</pageGraphics>
</pageTemplate>
@@ -105,7 +105,7 @@
</blockTable>
<section>
<para>[[ repeatIn(get_children_accounts(a,data['form']), 'o') ]]</para>
<blockTable rowHeights="0.65cm" colWidths="66.0,124.0,70.0,40.0,80.0,59.0,52.0,54.0" style="tbl_content">[[ data['form']['amount_currency'] == False or removeParentNode('blockTable') ]]
<blockTable colWidths="66.0,124.0,70.0,40.0,80.0,59.0,52.0,54.0" style="tbl_content">[[ data['form']['amount_currency'] == False or removeParentNode('blockTable') ]]
<tr>
<td>
<blockTable colWidths="280.0,100.0,52.5,52.5,52.5" style="Table5">
@@ -141,7 +141,7 @@
<blockTable colWidths="72.0,93.0,66.0,40.0,100.0,50.0,50.0,50.0,40.0" style="tbl_header" repeatRows="1">[[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]]
<blockTable colWidths="72.0,93.0,65.0,40.0,89.0,49.0,49.0,49.0,40.0" style="tbl_header" repeatRows="1">[[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]]
<tr>
<td><para style="date">Date</para></td>
<td><para style="P3">Partner</para></td>
@@ -156,10 +156,10 @@
</blockTable>
<section>
<para>[[ repeatIn(get_children_accounts(a,data['form']), 'o') ]]</para>
<blockTable rowHeights="0.65cm" colWidths="72.0,93.0,66.0,40.0,100.0,50.0,50.0,50.0,40.0" style="tbl_content">[[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]]
<blockTable colWidths="72.0,93.0,65.0,40.0,89.0,49.0,49.0,49.0,40.0" style="tbl_content">[[ data['form']['amount_currency'] == True or removeParentNode('blockTable') ]]
<tr>
<td>
<blockTable colWidths="264.00,100.0,50.0,50.0,49.0,40.00" style="Table5">
<blockTable colWidths="260.00,93.0,49.0,49.0,48.0,40.00" style="Table5">
<tr>
<td><para style="Standard">[[ o.code or '' ]] [[ o.name or '' ]]</para></td>
<td><para style="Standard"></para></td>
+7 -183
View File
@@ -107,182 +107,6 @@
<paraStyle name="Caption" fontName="Helvetica" fontSize="10.0" leading="11" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<blockTableStyle id="TrLevel8">
<blockLeftPadding length="0" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="TrLevel7">
<blockLeftPadding length="0" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="TrLevel6">
<blockLeftPadding length="0" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="TrLevel5">
<blockLeftPadding length="0" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="TrLevel4">
<blockLeftPadding length="0" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="TrLevel3">
<lineStyle kind="LINEBELOW" colorName="#777777" start="1,0" stop="1,0"/>
<blockLeftPadding length="0" start="0,3" stop="1,3"/>
</blockTableStyle>
<blockTableStyle id="TrLevel2">
<lineStyle kind="LINEBELOW" colorName="#777777" start="1,0" stop="-1,0"/>
<blockLeftPadding length="0" start="0,0" stop="1,0"/>
</blockTableStyle>
<blockTableStyle id="TrLevel1">
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
<blockLeftPadding length="0" start="0,0" stop="1,0"/>
</blockTableStyle>
<blockTableStyle id="TrLevel0">
<lineStyle kind="LINEBELOW" colorName="#777777" start="0,2" stop="1,2"/>
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="2,2" stop="-1,2"/>
</blockTableStyle>
<blockTableStyle id="LineLevel1">
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,2" stop="-1,-1"/>
</blockTableStyle>
<blockTableStyle id="Line1">
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,0" stop="-1,0"/>
</blockTableStyle>
<blockTableStyle id="Line2">
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,1" stop="-1,1"/>
</blockTableStyle>
<paraStyle
name="Level8"
fontName="Helvetica-Bold"
fontSize="8.0" />
<paraStyle
name="Level7"
fontName="Helvetica-Bold"
fontSize="8.0" />
<paraStyle
name="Level6"
fontName="Helvetica-Bold"
fontSize="8.0" />
<paraStyle
name="Level5"
fontName="Helvetica-Bold"
fontSize="8.0" />
<paraStyle
name="Level4"
fontName="Helvetica-Bold"
fontSize="8.0" />
<paraStyle
name="Level3"
fontName="Helvetica-Bold"
fontSize="8.0" />
<paraStyle name="Level2"
fontSize="8.0"
fontName="Helvetica-Bold"
/>
<paraStyle name="Level1"
fontSize="8.0"
fontName="Helvetica-Bold"
/>
<paraStyle
name="Amt_Level8"
fontName="Helvetica-Bold"
fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle
name="Amt_Level7"
fontName="Helvetica-Bold"
fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle
name="Amt_Level6"
fontName="Helvetica-Bold"
fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle
name="Amt_Level5"
fontName="Helvetica-Bold"
fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle
name="Amt_Level4"
fontName="Helvetica-Bold"
fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle
name="Amt_Level3"
fontName="Helvetica-Bold"
fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Amt_Level2"
fontSize="8.0"
fontName="Helvetica-Bold" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"
/>
<paraStyle name="Amt_Level1"
fontSize="8.0"
fontName="Helvetica-Bold" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"
/>
<paraStyle
name="Det_Level8"
fontName="Times-Italic"
fontSize="8.0" leading="5"/>
<paraStyle
name="Det_Level7"
fontName="Times-Italic"
fontSize="8.0" leading="5"/>
<paraStyle
name="Det_Level6"
fontName="Times-Italic"
fontSize="8.0" leading="5"/>
<paraStyle
name="Det_Level5"
fontName="Times-Italic"
fontSize="8.0" leading="5"/>
<paraStyle
name="Det_Level4"
fontName="Times-Italic"
fontSize="8.0" leading="5"/>
<paraStyle
name="Det_Level3"
fontName="Times-Italic"
fontSize="8.0" leading="5"/>
<paraStyle name="Det_Level2"
fontSize="8.0" leading="5"
fontName="Times-Italic"
/>
<paraStyle name="Det_Level1"
fontSize="8.0" leading="5"
fontName="Times-Italic"
/>
<paraStyle
name="Det_Amt_Level8"
fontName="Times-Italic"
fontSize="8.0" leading="5" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle
name="Det_Amt_Level7"
fontName="Times-Italic"
fontSize="8.0" leading="5" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle
name="Det_Amt_Level6"
fontName="Times-Italic"
fontSize="8.0" leading="5" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle
name="Det_Amt_Level5"
fontName="Times-Italic"
fontSize="8.0" leading="5" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle
name="Det_Amt_Level4"
fontName="Times-Italic"
fontSize="8.0" leading="5" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle
name="Det_Amt_Level3"
fontName="Times-Italic"
fontSize="8.0" leading="5" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Det_Amt_Level2"
fontSize="8.0"
fontName="Times-Italic" leading="5" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"
/>
<paraStyle name="Det_Amt_Level1"
fontSize="8.0"
fontName="Times-Italic" leading="5" alignment="RIGHT" spaceBefore="0.0" spaceAfter="6.0"
/>
</stylesheet>
<story>
<para style="P12a"></para>
@@ -305,19 +129,19 @@
</tr>
<tr>
<td><para style="P7">Balance</para></td>
<td><para style="P8"></para></td>
<td><para style="P8"></para></td>
<td><para style="P8">[[ formatLang(solde_debit(data)) ]]</para></td>
<td><para style="P8">[[ formatLang(solde_credit(data)) ]]</para></td>
<td><para style="P8"></para></td>
<td><para style="P8"></para></td>
</tr>
<tr>
<td><para style="P3">[[ repeatIn(lines(data), 'a') ]]<font>[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]][[ a['ref'] ]] [[ a['type']==3 and a['code'] ]]</font></para></td>
<td><para style="P3">[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]][[ a['name'] ]]</para></td>
<td><para style="P4">[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]][[ formatLang(a['debit']) ]]</para></td>
<td><para style="P4">[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]][[ formatLang(a['credit']) ]]</para></td>
<td><para style="P4">[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]][[ formatLang(a['balance']) ]]</para></td>
<td><para style="P4">[[ a['type']==3 and ( setTag('para','para',{'fontName':'Helvetica-Bold'})) ]][[ formatLang(a['enlitige'] or 0.00) ]]</para></td>
<td><para style="P3">[[ repeatIn(lines(data), 'a') ]]<font>[[ (a['type']==3 and setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font><font>[[ a['ref'] ]] [[ a['type']==3 and a['code'] ]]</font></para></td>
<td><para style="P3"><font>[[ (a['type']==3 and setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font>[[ a['name'] ]]</para></td>
<td><para style="P4"><font>[[ (a['type']==3 and setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font>[[ formatLang(a['debit']) ]]</para></td>
<td><para style="P4"><font>[[ (a['type']==3 and setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font>[[ formatLang(a['credit']) ]]</para></td>
<td><para style="P4"><font>[[ (a['type']==3 and setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font>[[ formatLang(a['balance']) ]]</para></td>
<td><para style="P4"><font>[[ (a['type']==3 and setTag('para','para',{'fontName':'Helvetica-Bold'})) or removeParentNode('font') ]]</font>[[ formatLang(a['enlitige'] or 0.00) ]]</para></td>
</tr>
</blockTable>
</story>
@@ -1,65 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_account_invoice_pay" model="ir.ui.view">
<record id="view_account_invoice_pay" model="ir.ui.view">
<field name="name">account.invoice.pay.form</field>
<field name="model">account.invoice.pay</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Pay invoice">
<group colspan="4" >
<field name="amount"/>
<newline/>
<field name="name"/>
<field name="date"/>
<field name="journal_id"/>
<field name="period_id"/>
</group>
<group colspan="4" >
<field name="amount"/>
<newline/>
<field name="name"/>
<field name="date"/>
<field name="journal_id" widget="selection"/>
<field name="period_id" widget="selection"/>
</group>
<group colspan="4" col="6">
<label string ="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-execute" string="Partial Payment" name="pay_and_reconcile" type="object"/>
<button icon="gtk-execute" string="Full Payment" name="wo_check" type="object"/>
<label string ="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-execute" string="Partial Payment" name="pay_and_reconcile" type="object"/>
<button icon="gtk-execute" string="Full Payment" name="wo_check" type="object"/>
</group>
</form>
</field>
</record>
<record id="action_account_invoice_pay" model="ir.actions.act_window">
<record id="action_account_invoice_pay" model="ir.actions.act_window">
<field name="name">Pay Invoice</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.invoice.pay</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_account_invoice_pay"/>
<field name="context">{'record_id' : active_id}</field>
<field name="context">{'record_id' : active_id}</field>
<field name="target">new</field>
</record>
</record>
<record id="view_account_invoice_pay_writeoff" model="ir.ui.view">
<record id="view_account_invoice_pay_writeoff" model="ir.ui.view">
<field name="name">account.invoice.pay.writeoff.form</field>
<field name="model">account.invoice.pay.writeoff</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Information addendum">
<group colspan="4" >
<separator string="Write-Off Move" colspan="4"/>
<field name="writeoff_journal_id"/>
<field name="writeoff_acc_id" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="comment"/>
<separator string="Analytic" colspan="4"/>
<field name="analytic_id"/>
</group>
<group colspan="4" >
<separator string="Write-Off Move" colspan="4"/>
<field name="writeoff_journal_id"/>
<field name="writeoff_acc_id" domain="[('type','&lt;&gt;','view'),('type','&lt;&gt;','consolidation')]"/>
<field name="comment"/>
<separator string="Analytic" colspan="4"/>
<field name="analytic_id"/>
</group>
<group colspan="4" col="6">
<label string ="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-execute" string="Pay and reconcile" name="pay_and_reconcile_writeoff" type="object"/>
<label string ="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-execute" string="Pay and reconcile" name="pay_and_reconcile_writeoff" type="object"/>
</group>
</form>
</field>
</record>
</data>
</data>
</openerp>
+6 -6
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-02-25 08:30+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.com>\n"
"PO-Revision-Date: 2010-07-08 17:05+0000\n"
"Last-Translator: Pomazan Bogdan <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-22 04:12+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_default
@@ -38,8 +38,8 @@ msgstr "Некорректный формат XML для структуры ви
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Название объекта должно начинаться с x_ и не должно содержать специальных "
"символов !"
"Имя Объекта должно начинаться с x_ и не должно содержать специальных "
"символов!"
#. module: account_analytic_default
#: view:account.analytic.default:0
@@ -64,7 +64,7 @@ msgstr "Последовательность"
#. module: account_analytic_default
#: field:account.analytic.default,product_id:0
msgid "Product"
msgstr "Продукция"
msgstr "Продукт"
#. module: account_analytic_default
#: field:account.analytic.default,analytic_id:0
+22 -22
View File
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 13:57+0000\n"
"Last-Translator: Dmitry Klimanov <k-dmitry2@narod.ru>\n"
"PO-Revision-Date: 2010-07-08 16:55+0000\n"
"Last-Translator: Pomazan Bogdan <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-22 04:10+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account4_ids:0
msgid "Account4 Id"
msgstr ""
msgstr "Счет 4 уровня"
#. module: account_analytic_plans
#: constraint:ir.model:0
@@ -38,7 +38,7 @@ msgstr "Перекрестная аналитика"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account5_ids:0
msgid "Account5 Id"
msgstr ""
msgstr "Счет 5 уровня"
#. module: account_analytic_plans
#: wizard_field:wizard.crossovered.analytic,init,date2:0
@@ -48,7 +48,7 @@ msgstr "Дата окончания"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance.line,rate:0
msgid "Rate (%)"
msgstr ""
msgstr "Ставка (%)"
#. module: account_analytic_plans
#: view:account.analytic.plan:0
@@ -87,7 +87,7 @@ 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 ""
msgstr "Шаблоны Аналитического Распределения"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
@@ -97,7 +97,7 @@ msgstr "Название счета"
#. module: account_analytic_plans
#: view:account.analytic.plan.instance.line:0
msgid "Analytic Distribution Line"
msgstr ""
msgstr "Строка аналитического распределения"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,code:0
@@ -107,7 +107,7 @@ msgstr ""
#. module: account_analytic_plans
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Недопустимое имя модели в определении действия."
#. module: account_analytic_plans
#: field:account.analytic.plan.line,name:0
@@ -117,7 +117,7 @@ msgstr "Название плана"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
msgid "Printing date"
msgstr ""
msgstr "Дата печати"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
@@ -137,7 +137,7 @@ msgstr "Выбор информаци"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account3_ids:0
msgid "Account3 Id"
msgstr ""
msgstr "Счет 3 уровня"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,journal_id:0
@@ -158,7 +158,7 @@ msgstr "Ссылка на счет аналитики"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
msgid "Analytic Account :"
msgstr ""
msgstr "Счет аналитики:"
#. module: account_analytic_plans
#: view:account.analytic.plan.line:0
@@ -196,7 +196,7 @@ msgstr "Мин. разрешено (%)"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account1_ids:0
msgid "Account1 Id"
msgstr ""
msgstr "Счет 1 уровня"
#. module: account_analytic_plans
#: field:account.analytic.plan.line,max_required:0
@@ -206,12 +206,12 @@ msgstr "Макс. разрешено (%)"
#. module: account_analytic_plans
#: wizard_view:create.model,info:0
msgid "Distribution Model Saved"
msgstr ""
msgstr "Распределительный шаблон сохранен"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance
msgid "Analytic Plan Instance"
msgstr ""
msgstr "Образец аналитического плана счетов"
#. module: account_analytic_plans
#: constraint:ir.ui.view:0
@@ -221,7 +221,7 @@ msgstr "Неправильный XML для просмотра архитект
#. module: account_analytic_plans
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_instance_model_open
msgid "Distribution Models"
msgstr ""
msgstr "Шаблоня распределения"
#. module: account_analytic_plans
#: model:ir.module.module,description:account_analytic_plans.module_meta_information
@@ -261,7 +261,7 @@ msgstr ""
#. module: account_analytic_plans
#: model:ir.module.module,shortdesc:account_analytic_plans.module_meta_information
msgid "Multiple-plans management in Analytic Accounting"
msgstr ""
msgstr "Управление несколькими планами аналитических счетов"
#. module: account_analytic_plans
#: view:account.analytic.plan.line:0
@@ -282,7 +282,7 @@ msgstr "План модели"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account2_ids:0
msgid "Account2 Id"
msgstr ""
msgstr "Счет 2 уровня"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
@@ -297,7 +297,7 @@ msgstr "Корневой счет для данного плана"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account6_ids:0
msgid "Account6 Id"
msgstr ""
msgstr "счет 6 уровня"
#. module: account_analytic_plans
#: rml:account.analytic.account.crossovered.analytic:0
@@ -328,7 +328,7 @@ msgstr "Корневой счет"
#: wizard_view:create.model,info:0
msgid ""
"This distribution model has been saved. You will be able to reuse it later."
msgstr ""
msgstr "Шаблон распределения сохранен. Теперь вы можете его использовать."
#. module: account_analytic_plans
#: field:account.analytic.plan.line,sequence:0
@@ -347,12 +347,12 @@ msgstr "Счет аналитики"
#: field:account.invoice.line,analytics_id:0
#: field:account.move.line,analytics_id:0
msgid "Analytic Distribution"
msgstr ""
msgstr "Аналитическое распределение"
#. module: account_analytic_plans
#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_plan_instance_action
msgid "Analytic Distribution's models"
msgstr ""
msgstr "Шаблон распределения аналитики"
#. module: account_analytic_plans
#: wizard_button:wizard.crossovered.analytic,init,end:0
+326 -326
View File
@@ -2,337 +2,337 @@
<openerp>
<!-- Budgetary Positions -->
<data noupdate="1">
<record id="account_budget_post_sales0" model="account.budget.post">
<field eval="&quot;&quot;&quot;Sales&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;SAL&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[ref('account.a_sale')])]" name="account_ids"/>
</record>
</data>
<data noupdate="1">
<record id="account_budget_post_purchase0" model="account.budget.post">
<field eval="&quot;&quot;&quot;Purchases&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;PUR&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[ref('account.a_expense')])]" name="account_ids"/>
</record>
</data>
<data noupdate="1">
<record id="account_budget_post_sales0" model="account.budget.post">
<field eval="&quot;&quot;&quot;Sales&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;SAL&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[ref('account.a_sale')])]" name="account_ids"/>
</record>
</data>
<data noupdate="1">
<record id="account_budget_post_purchase0" model="account.budget.post">
<field eval="&quot;&quot;&quot;Purchases&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;PUR&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[ref('account.a_expense')])]" name="account_ids"/>
</record>
</data>
<!-- Budgetary Dotations -->
<data noupdate="1">
<record id="account_budget_post_dot1" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_1"/>
</record>
<record id="account_budget_post_dot2" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_2"/>
</record>
<record id="account_budget_post_dot3" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_3"/>
</record>
<record id="account_budget_post_dot4" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_4"/>
</record>
<record id="account_budget_post_dot5" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_5"/>
</record>
<record id="account_budget_post_dot6" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_6"/>
</record>
<record id="account_budget_post_dot7" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_7"/>
</record>
<record id="account_budget_post_dot8" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_8"/>
</record>
<record id="account_budget_post_dot9" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_9"/>
</record>
<record id="account_budget_post_dot10" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_10"/>
</record>
<record id="account_budget_post_dot11" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_11"/>
</record>
<record id="account_budget_post_dot12" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_12"/>
</record>
<data noupdate="1">
<record id="account_budget_post_dot1" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_1"/>
</record>
<record id="account_budget_post_dot2" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_2"/>
</record>
<record id="account_budget_post_dot3" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_3"/>
</record>
<record id="account_budget_post_dot4" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_4"/>
</record>
<record id="account_budget_post_dot5" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_5"/>
</record>
<record id="account_budget_post_dot6" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_6"/>
</record>
<record id="account_budget_post_dot7" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_7"/>
</record>
<record id="account_budget_post_dot8" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_8"/>
</record>
<record id="account_budget_post_dot9" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_9"/>
</record>
<record id="account_budget_post_dot10" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_10"/>
</record>
<record id="account_budget_post_dot11" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_11"/>
</record>
<record id="account_budget_post_dot12" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="5000" name="amount"/>
<field name="post_id" ref="account_budget_post_sales0"/>
<field name="period_id" ref="account.period_12"/>
</record>
<record id="account_budget_post_dot_pur1" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_1"/>
</record>
<record id="account_budget_post_dot_pur2" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_2"/>
</record>
<record id="account_budget_post_dot_pur3" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_3"/>
</record>
<record id="account_budget_post_dot_pur4" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_4"/>
</record>
<record id="account_budget_post_dot_pur5" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_5"/>
</record>
<record id="account_budget_post_dot_pur6" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_6"/>
</record>
<record id="account_budget_post_dot_pur7" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_7"/>
</record>
<record id="account_budget_post_dot_pur8" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_8"/>
</record>
<record id="account_budget_post_dot_pur9" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_9"/>
</record>
<record id="account_budget_post_dot_pur10" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_10"/>
</record>
<record id="account_budget_post_dot_pur11" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_11"/>
</record>
<record id="account_budget_post_dot_pur12" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_12"/>
</record>
</data>
<record id="account_budget_post_dot_pur1" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_1"/>
</record>
<record id="account_budget_post_dot_pur2" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_2"/>
</record>
<record id="account_budget_post_dot_pur3" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_3"/>
</record>
<record id="account_budget_post_dot_pur4" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_4"/>
</record>
<record id="account_budget_post_dot_pur5" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_5"/>
</record>
<record id="account_budget_post_dot_pur6" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_6"/>
</record>
<record id="account_budget_post_dot_pur7" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_7"/>
</record>
<record id="account_budget_post_dot_pur8" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_8"/>
</record>
<record id="account_budget_post_dot_pur9" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_9"/>
</record>
<record id="account_budget_post_dot_pur10" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_10"/>
</record>
<record id="account_budget_post_dot_pur11" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_11"/>
</record>
<record id="account_budget_post_dot_pur12" model="account.budget.post.dotation">
<field eval="&quot;&quot;&quot;/&quot;&quot;&quot;" name="name"/>
<field eval="-2000" name="amount"/>
<field name="post_id" ref="account_budget_post_purchase0"/>
<field name="period_id" ref="account.period_12"/>
</record>
</data>
<!-- Budgets -->
<data noupdate="1">
<record id="crossovered_budget_budgetoptimistic0" model="crossovered.budget">
<field eval="&quot;&quot;&quot;+2008&quot;&quot;&quot;" name="code"/>
<field eval="&quot;&quot;&quot;Budget 2008: Optimistic&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="&quot;&quot;&quot;draft&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
<field name="creating_user_id" ref="base.user_root"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_budgetpessimistic0" model="crossovered.budget">
<field eval="&quot;&quot;&quot;-2008&quot;&quot;&quot;" name="code"/>
<field eval="&quot;&quot;&quot;Budget 2008: Pessimistic&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="&quot;&quot;&quot;draft&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
<field name="creating_user_id" ref="base.user_root"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_budgetoptimistic0" model="crossovered.budget">
<field eval="&quot;&quot;&quot;+2011&quot;&quot;&quot;" name="code"/>
<field eval="&quot;&quot;&quot;Budget 2011: Optimistic&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="&quot;&quot;&quot;draft&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
<field name="creating_user_id" ref="base.user_root"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_budgetpessimistic0" model="crossovered.budget">
<field eval="&quot;&quot;&quot;-2011&quot;&quot;&quot;" name="code"/>
<field eval="&quot;&quot;&quot;Budget 2011: Pessimistic&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="&quot;&quot;&quot;draft&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
<field name="creating_user_id" ref="base.user_root"/>
</record>
</data>
<!-- Budget lines -->
<data noupdate="1">
<record id="crossovered_budget_lines_0" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-500.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_1" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-250.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_2" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="500.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_3" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-07&quot;&quot;&quot;" name="date_from"/>
<field eval="900.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_4" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="300.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-06&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_lines_5" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_super_product_trainings"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-09-01&quot;&quot;&quot;" name="date_from"/>
<field eval="375.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-03&quot;&quot;&quot;" name="paid_date"/>
<field eval="&quot;&quot;&quot;2208-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_6" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_super_product_trainings"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-09-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-150.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_7" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_super_product_trainings"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-09-01&quot;&quot;&quot;" name="date_from"/>
<field eval="375.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-03&quot;&quot;&quot;" name="paid_date"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_lines_8" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2009-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-7500.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2009-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_9" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-5000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_10" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-2000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2009-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_11" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="20000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2010-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_12" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="20000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2009-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_lines_13" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-3000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_14" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-1000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_15" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="10000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_16" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2008-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="10000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2008-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_lines_0" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-500.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_1" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-250.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_2" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="500.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_3" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2011-01-07&quot;&quot;&quot;" name="date_from"/>
<field eval="900.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_4" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_consultancy"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="300.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-06&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_lines_5" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_super_product_trainings"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2011-09-01&quot;&quot;&quot;" name="date_from"/>
<field eval="375.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-03&quot;&quot;&quot;" name="paid_date"/>
<field eval="&quot;&quot;&quot;2208-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_6" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_super_product_trainings"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2011-09-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-150.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_7" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_super_product_trainings"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2011-09-01&quot;&quot;&quot;" name="date_from"/>
<field eval="375.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-03&quot;&quot;&quot;" name="paid_date"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_lines_8" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2009-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-7500.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2009-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_9" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-5000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_10" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-2000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2009-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_11" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="20000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2010-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_12" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p1"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="20000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2009-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
<data noupdate="1">
<record id="crossovered_budget_lines_13" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-3000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_14" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_purchase0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="-1000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_15" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="10000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetpessimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
<record id="crossovered_budget_lines_16" model="crossovered.budget.lines">
<field name="analytic_account_id" ref="account.analytic_seagate_p2"/>
<field name="general_budget_id" ref="account_budget_post_sales0"/>
<field eval="&quot;&quot;&quot;2011-01-01&quot;&quot;&quot;" name="date_from"/>
<field eval="10000.0" name="planned_amount"/>
<field name="crossovered_budget_id" ref="crossovered_budget_budgetoptimistic0"/>
<field eval="&quot;&quot;&quot;2011-12-31&quot;&quot;&quot;" name="date_to"/>
</record>
</data>
</openerp>
+40 -40
View File
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-16 15:14+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-07-08 17:00+0000\n"
"Last-Translator: Pomazan Bogdan <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-22 04:18+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_budget
#: field:crossovered.budget,creating_user_id:0
msgid "Responsible User"
msgstr ""
msgstr "Ответственный пользователь"
#. module: account_budget
#: rml:account.budget:0
@@ -30,28 +30,28 @@ msgstr "% эффективности"
#: 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 ""
msgstr "Бюджетные статьи"
#. module: account_budget
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Недопустимое имя модели в определении действия."
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:crossovered.budget.report:0
msgid "Printed at:"
msgstr ""
msgstr "Напечатано:"
#. module: account_budget
#: view:crossovered.budget:0
msgid "Confirm"
msgstr ""
msgstr "Подтвердить"
#. module: account_budget
#: field:crossovered.budget,validating_user_id:0
msgid "Validate User"
msgstr ""
msgstr "Проверить пользователя"
#. module: account_budget
#: constraint:ir.model:0
@@ -64,7 +64,7 @@ msgstr ""
#. module: account_budget
#: selection:crossovered.budget,state:0
msgid "Confirmed"
msgstr ""
msgstr "Подтверждено"
#. module: account_budget
#: field:account.budget.post.dotation,period_id:0
@@ -87,7 +87,7 @@ msgstr "Дата вывода на печать"
#. module: account_budget
#: selection:crossovered.budget,state:0
msgid "Draft"
msgstr ""
msgstr "Черновик"
#. module: account_budget
#: rml:account.analytic.account.budget:0
@@ -99,7 +99,7 @@ msgstr "в"
#. module: account_budget
#: view:account.budget.post:0
msgid "Dotations"
msgstr ""
msgstr "Дотации"
#. module: account_budget
#: rml:account.budget:0
@@ -121,7 +121,7 @@ msgstr "От"
#. module: account_budget
#: field:crossovered.budget.lines,percentage:0
msgid "Percentage"
msgstr ""
msgstr "Проценты"
#. module: account_budget
#: rml:account.budget:0
@@ -131,7 +131,7 @@ msgstr "Результаты"
#. module: account_budget
#: field:crossovered.budget,state:0
msgid "Status"
msgstr ""
msgstr "Состояние"
#. module: account_budget
#: model:ir.module.module,description:account_budget.module_meta_information
@@ -173,12 +173,12 @@ msgstr "%"
#: rml:account.analytic.account.budget:0
#: rml:crossovered.budget.report:0
msgid "Description"
msgstr ""
msgstr "Описание"
#. module: account_budget
#: rml:account.analytic.account.budget:0
msgid "Analytic Account :"
msgstr ""
msgstr "Счет аналитики:"
#. module: account_budget
#: wizard_button:account.budget.report,init,report:0
@@ -205,20 +205,20 @@ msgstr "до"
#: rml:account.budget:0
#: rml:crossovered.budget.report:0
msgid "Total :"
msgstr ""
msgstr "Всего :"
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: field:crossovered.budget.lines,planned_amount:0
#: rml:crossovered.budget.report:0
msgid "Planned Amount"
msgstr ""
msgstr "Запланированная сумма"
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:crossovered.budget.report:0
msgid "Perc(%)"
msgstr ""
msgstr "Проц.(%)"
#. module: account_budget
#: rml:account.budget:0
@@ -234,18 +234,18 @@ msgstr "Анализ бюджета"
#: view:crossovered.budget:0
#: selection:crossovered.budget,state:0
msgid "Done"
msgstr ""
msgstr "Выполнено"
#. module: account_budget
#: view:crossovered.budget:0
msgid "Validate"
msgstr ""
msgstr "Проверить"
#. module: account_budget
#: wizard_view:wizard.crossovered.budget,init:0
#: wizard_view:wizard.crossovered.budget.summary,init:0
msgid "Select Options"
msgstr ""
msgstr "Выбрать опции"
#. module: account_budget
#: rml:account.analytic.account.budget:0
@@ -258,7 +258,7 @@ msgstr ""
#: field:crossovered.budget,date_to:0
#: field:crossovered.budget.lines,date_to:0
msgid "End Date"
msgstr ""
msgstr "Дата окончания"
#. module: account_budget
#: constraint:ir.ui.view:0
@@ -318,30 +318,30 @@ msgstr "Сумма"
#. module: account_budget
#: field:crossovered.budget.lines,paid_date:0
msgid "Paid Date"
msgstr ""
msgstr "Дата оплаты"
#. module: account_budget
#: model:ir.actions.act_window,name:account_budget.action_account_budget_post_tree
#: model:ir.ui.menu,name:account_budget.menu_action_account_budget_post_tree
#: model:ir.ui.menu,name:account_budget.next_id_31
msgid "Budgets"
msgstr ""
msgstr "Бюджеты"
#. module: account_budget
#: selection:crossovered.budget,state:0
msgid "Cancelled"
msgstr ""
msgstr "Отменено"
#. module: account_budget
#: view:account.budget.post.dotation:0
#: model:ir.model,name:account_budget.model_account_budget_post_dotation
msgid "Budget Dotation"
msgstr ""
msgstr "Бюджетная дотация"
#. module: account_budget
#: view:account.budget.post.dotation:0
msgid "Budget Dotations"
msgstr ""
msgstr "Бюджетные дотации"
#. module: account_budget
#: rml:account.budget:0
@@ -353,7 +353,7 @@ msgstr ""
#: field:crossovered.budget.lines,general_budget_id:0
#: model:ir.model,name:account_budget.model_account_budget_post
msgid "Budgetary Position"
msgstr ""
msgstr "Бюджетная статья"
#. module: account_budget
#: wizard_field:account.budget.report,init,date1:0
@@ -369,7 +369,7 @@ msgstr "Начало периода"
#: model:ir.actions.wizard,name:account_budget.account_analytic_account_budget_report
#: model:ir.actions.wizard,name:account_budget.wizard_crossovered_budget_menu
msgid "Print Budgets"
msgstr ""
msgstr "Печать бюджетов"
#. module: account_budget
#: field:account.budget.post,code:0
@@ -380,12 +380,12 @@ msgstr "Код"
#. module: account_budget
#: field:account.budget.post.dotation,tot_planned:0
msgid "Total Planned Amount"
msgstr ""
msgstr "Запланировано всего"
#. module: account_budget
#: wizard_view:wizard.analytic.account.budget.report,init:0
msgid "Select Dates Period"
msgstr ""
msgstr "Выберите даты периода"
#. module: account_budget
#: field:account.budget.post,dotation_ids:0
@@ -396,7 +396,7 @@ msgstr ""
#: rml:account.analytic.account.budget:0
#: rml:crossovered.budget.report:0
msgid "Theoretical Amount"
msgstr ""
msgstr "Теоретическая сумма"
#. module: account_budget
#: wizard_field:account.budget.spread,init,fiscalyear:0
@@ -406,12 +406,12 @@ msgstr "Учетный год"
#. module: account_budget
#: field:crossovered.budget.lines,analytic_account_id:0
msgid "Analytic Account"
msgstr ""
msgstr "Счет аналитического учета"
#. module: account_budget
#: rml:crossovered.budget.report:0
msgid "Budget :"
msgstr ""
msgstr "Бюджет:"
#. module: account_budget
#: rml:account.budget:0
@@ -430,7 +430,7 @@ msgstr "Счета"
#. module: account_budget
#: model:ir.actions.report.xml,name:account_budget.account_budget
msgid "Print Budget"
msgstr ""
msgstr "Печать бюджета"
#. module: account_budget
#: view:account.analytic.account:0
@@ -460,24 +460,24 @@ msgstr "Отмена"
#. module: account_budget
#: model:ir.module.module,shortdesc:account_budget.module_meta_information
msgid "Budget Management"
msgstr ""
msgstr "Управление бюджетом"
#. module: account_budget
#: field:crossovered.budget,date_from:0
#: field:crossovered.budget.lines,date_from:0
msgid "Start Date"
msgstr ""
msgstr "Дата начала"
#. module: account_budget
#: rml:account.analytic.account.budget:0
#: rml:crossovered.budget.report:0
msgid "Analysis from"
msgstr ""
msgstr "Анализ с"
#. module: account_budget
#: selection:crossovered.budget,state:0
msgid "Validated"
msgstr ""
msgstr "Проверено"
#. module: account_budget
#: wizard_view:account.budget.report,init:0
+168
View File
@@ -0,0 +1,168 @@
# Russian translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-11-24 13:11+0000\n"
"PO-Revision-Date: 2010-07-08 17:04+0000\n"
"Last-Translator: Pomazan Bogdan <Unknown>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_coda
#: field:account.coda,journal_id:0
#: wizard_field:account.coda_import,init,journal_id:0
msgid "Bank Journal"
msgstr ""
#. module: account_coda
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Название объекта должно начинаться с x_ и не должно содержать специальных "
"символов !"
#. module: account_coda
#: wizard_field:account.coda_import,extraction,note:0
msgid "Log"
msgstr "Журнал"
#. module: account_coda
#: wizard_button:account.coda_import,extraction,open:0
msgid "_Open Statement"
msgstr ""
#. module: account_coda
#: model:ir.module.module,shortdesc:account_coda.module_meta_information
msgid "Account CODA"
msgstr ""
#. module: account_coda
#: field:account.coda,name:0
msgid "Coda file"
msgstr ""
#. module: account_coda
#: wizard_view:account.coda_import,init:0
msgid "Clic on 'New' to select your file :"
msgstr ""
#. module: account_coda
#: model:ir.actions.wizard,name:account_coda.wizard_account_coda_import
msgid "Import Coda File"
msgstr ""
#. module: account_coda
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr "Недопустимое имя модели в определении действия."
#. module: account_coda
#: field:account.coda,note:0
msgid "Import log"
msgstr ""
#. module: account_coda
#: wizard_field:account.coda_import,init,def_receivable:0
msgid "Default receivable Account"
msgstr ""
#. module: account_coda
#: model:ir.module.module,description:account_coda.module_meta_information
msgid ""
"Module provides functionality to import\n"
" bank statements from .csv file.\n"
" Import coda file wizard is used to import bank statements."
msgstr ""
#. module: account_coda
#: wizard_button:account.coda_import,extraction,end:0
msgid "_Close"
msgstr "_Закрыть"
#. module: account_coda
#: field:account.coda,statement_id:0
msgid "Generated Bank Statement"
msgstr ""
#. module: account_coda
#: view:account.coda:0
#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement
#: model:ir.actions.act_window,name:account_coda.action_account_coda
msgid "Coda import"
msgstr ""
#. module: account_coda
#: field:account.coda,user_id:0
msgid "User"
msgstr "Пользователь"
#. module: account_coda
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Неправильный XML для просмотра структуры!"
#. module: account_coda
#: model:ir.model,name:account_coda.model_account_coda
msgid "coda for an Account"
msgstr ""
#. module: account_coda
#: wizard_field:account.coda_import,init,def_payable:0
msgid "Default Payable Account"
msgstr ""
#. module: account_coda
#: model:ir.ui.menu,name:account_coda.menu_account_coda
msgid "Coda Statements"
msgstr ""
#. module: account_coda
#: model:ir.ui.menu,name:account_coda.menu_account_coda_wizard
msgid "Import Coda Statements"
msgstr ""
#. module: account_coda
#: wizard_button:account.coda_import,init,extraction:0
msgid "_Ok"
msgstr "_Далее"
#. module: account_coda
#: wizard_view:account.coda_import,extraction:0
#: wizard_view:account.coda_import,init:0
msgid "Import Coda Statement"
msgstr ""
#. module: account_coda
#: field:account.bank.statement,coda_id:0
msgid "Coda"
msgstr ""
#. module: account_coda
#: wizard_view:account.coda_import,extraction:0
msgid "Results :"
msgstr ""
#. module: account_coda
#: wizard_field:account.coda_import,init,coda:0
msgid "Coda File"
msgstr ""
#. module: account_coda
#: field:account.coda,date:0
msgid "Import Date"
msgstr ""
#. module: account_coda
#: wizard_view:account.coda_import,init:0
msgid "Select your bank journal :"
msgstr ""
@@ -153,8 +153,8 @@
<field name="type">form</field>
<field name="arch" type="xml">
<field name="overdue_msg" nolabel="1" colspan ="4" position="after">
<separator string="Follow-up Message" colspan="4"/>
<field name="follow_up_msg" nolabel="1" colspan ="4"/>
<separator string="Follow-up Message" colspan="4"/>
</field>
</field>
</record>
+15 -4
View File
@@ -212,9 +212,21 @@ class account_voucher(osv.osv):
self.write(cr, uid, ids, {'state':'posted'})
return True
def action_cancel_draft(self, cr, uid, ids, *args):
def action_cancel_draft(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'draft'})
return True
def audit_pass(self, cr, uid, ids, context={}):
move_pool = self.pool.get('account.move')
result = True
audit_pass = []
for voucher in self.browse(cr, uid, ids):
if voucher.move_id and voucher.move_id.state == 'draft':
result = result and move_pool.button_validate(cr, uid, [voucher.move_id.id])
audit_pass += [voucher.id]
self.write(cr, uid, audit_pass, {'state':'audit'})
return result
def cancel_voucher(self, cr, uid, ids, context={}):
move_pool = self.pool.get('account.move')
@@ -258,7 +270,6 @@ class account_voucher(osv.osv):
company_currency = inv.company_id.currency_id.id
diff_currency_p = inv.currency_id.id <> company_currency
ref = inv.reference
journal = journal_pool.browse(cr, uid, inv.journal_id.id)
if journal.sequence_id:
@@ -289,7 +300,7 @@ class account_voucher(osv.osv):
'journal_id': inv.journal_id.id,
'period_id': inv.period_id.id,
'partner_id': False,
'ref': ref,
'ref': inv.reference,
'date': inv.date
}
if diff_currency_p:
@@ -318,7 +329,7 @@ class account_voucher(osv.osv):
'journal_id': inv.journal_id.id,
'period_id': inv.period_id.id,
'partner_id': line.partner_id.id or False,
'ref': ref,
'ref': line.ref,
'date': inv.date,
'analytic_account_id': False
}
+18 -2
View File
@@ -58,7 +58,7 @@
<field name="move_ids" colspan="4" nolabel="1" readonly="1"/>
</page>
</notebook>
<group col="8" colspan="4">
<group col="10" colspan="4">
<field name="state"/>
<button name="open_voucher" string="Pro-forma" states="draft" icon="terp-check"/>
<button name="proforma_voucher" string="Create" states="proforma" icon="terp-document-new"/>
@@ -199,12 +199,28 @@
</record>
<act_window
domain="[('journal_id', '=', active_id)]"
domain="[('journal_id','=',active_id)]"
id="act_journal_voucher_open"
name="Voucher Entries"
context="{'journal_id': active_id, 'type':type}"
res_model="account.voucher"
src_model="account.journal"/>
<record model="ir.actions.act_window" id="action_review_voucher_list">
<field name="name">Vouchers Entries</field>
<field name="res_model">account.voucher</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" eval="view_voucher_tree"/>
<field name="domain">[('state','=','posted')]</field>
<field name="context">{'state':'posted'}</field>
<field name="search_view_id" ref="view_voucher_filter_new"/>
</record>
<menuitem
id="menu_action_review_voucher_list"
action="action_review_voucher_list"
parent="account.periodical_processing_journal_entries_validation" sequence="2"/>
</data>
</openerp>
+3 -5
View File
@@ -18,16 +18,14 @@
<record id="act_proforma" model="workflow.activity">
<field name="wkf_id" ref="wkf"/>
<field name="name">proforma</field>
<field name="action">write({'state':'proforma'})
open_voucher()</field>
<field name="action">open_voucher()</field>
<field name="kind">function</field>
</record>
<record id="act_done" model="workflow.activity">
<field name="wkf_id" ref="wkf"/>
<field name="name">done</field>
<field name="action">write({'state':'posted'})
proforma_voucher()</field>
<field name="action">proforma_voucher()</field>
<field name="kind">function</field>
</record>
@@ -48,7 +46,7 @@
<record id="act_audit" model="workflow.activity">
<field name="wkf_id" ref="wkf"/>
<field name="name">audit</field>
<field name="action">write({'state':'audit'})</field>
<field name="action">audit_pass()</field>
<field name="flow_stop">True</field>
<field name="kind">function</field>
</record>
@@ -53,8 +53,7 @@ class account_voucher(osv.osv):
company_currency = inv.company_id.currency_id.id
diff_currency_p = inv.currency_id.id <> company_currency
ref = inv.reference
journal = journal_pool.browse(cr, uid, inv.journal_id.id)
if journal.sequence_id:
name = sequence_pool.get_id(cr, uid, journal.sequence_id.id)
@@ -84,7 +83,7 @@ class account_voucher(osv.osv):
'journal_id': inv.journal_id.id,
'period_id': inv.period_id.id,
'partner_id': False,
'ref': ref,
'ref': inv.reference,
'date': inv.date
}
if diff_currency_p:
@@ -113,7 +112,7 @@ class account_voucher(osv.osv):
'journal_id': inv.journal_id.id,
'period_id': inv.period_id.id,
'partner_id': line.partner_id.id or False,
'ref': ref,
'ref': line.ref,
'date': inv.date,
'analytic_account_id': False
}
@@ -143,14 +142,15 @@ class account_voucher(osv.osv):
})
amount = line.amount
if line.invoice_id:
move_line.update({
'invoice_id':line.invoice_id.id
})
invoice_pool.pay_and_reconcile(cr, uid, [line.invoice_id.id], amount, inv.account_id.id, inv.period_id.id, inv.journal_id.id, False, False, False)
move_line_id = move_line_pool.create(cr, uid, move_line)
line_ids += [move_line_id]
if line.invoice_id:
rec_ids = [move_line_id]
for move_line in line.invoice_id.move_id.line_id:
if line.account_id.id == move_line.account_id.id:
rec_ids += [move_line.id]
move_line_pool.reconcile_partial(cr, uid, rec_ids)
rec = {
'move_id': move_id,
@@ -196,7 +196,9 @@ class account_voucher_line(osv.osv):
residual = currency_pool.compute(cr, uid, invoice.currency_id.id, currency_id, invoice.residual)
res.update({
'amount': residual
'amount': residual,
'account_id': invoice.account_id.id,
'ref':invoice.number
})
return {
@@ -231,21 +233,4 @@ class account_voucher_line(osv.osv):
}
account_voucher_line()
class account_invoice(osv.osv):
_inherit = "account.invoice"
def action_cancel(self, cr, uid, ids, *args):
res = super(account_invoice, self).action_cancel(cr, uid, ids, *args)
invoices = self.read(cr, uid, ids, ['move_id'])
voucher_db = self.pool.get('account.voucher')
voucher_ids = voucher_db.search(cr, uid, [])
voucher_obj = voucher_db.browse(cr, uid, voucher_ids)
move_db = self.pool.get('account.move')
move_ids = move_db.search(cr, uid, [])
move_obj = move_db.browse(cr, uid, move_ids)
return res
account_invoice()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -18,19 +18,31 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import fields, osv
import netsvc
from osv import osv
from osv import fields
class account_voucher_unreconcile(osv.osv_memory):
_name = "account.voucher.unreconcile"
_description = "Account voucher unreconcile"
_columns = {
'remove':fields.boolean('Want to remove accounting entries too ?', required=False),
}
_defaults = {
'remove': lambda *a: True,
}
def trans_unrec(self, cr, uid, ids, context=None):
res = self.browse(cr, uid, ids[0])
if context is None:
context = {}
voucher_pool = self.pool.get('account.voucher')
reconcile_pool = self.pool.get('account.move.reconcile')
if context.get('active_id'):
voucher = obj_voucher.browse(cr, uid, context.get('active_id'), context=context)
voucher = voucher_pool.browse(cr, uid, context.get('active_id'), context)
recs = []
for line in voucher.move_ids:
if line.reconcile_id:
@@ -39,6 +51,10 @@ class account_voucher_unreconcile(osv.osv_memory):
for rec in recs:
obj_reconcile.unlink(cr, uid, rec)
if res.remove:
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', context.get('active_id'), 'cancel_voucher', cr)
return {}
account_voucher_unreconcile()
@@ -11,6 +11,8 @@
<separator colspan="4" string="Unreconciliation transactions" />
<label string="If you unreconciliate transactions, you must also verify all the actions that are linked to those transactions because they will not be disable" colspan="2"/>
<separator colspan="4"/>
<field name="remove"/>
<separator colspan="4"/>
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
<button name="trans_unrec" default_focus="1" string="Unreconcile" type="object" icon="gtk-ok"/>
</form>
+160 -87
View File
@@ -1,19 +1,19 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * auction
# * auction
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-02-03 11:07+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-07-08 17:06+0000\n"
"Last-Translator: Pomazan Bogdan <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-22 04:13+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: auction
@@ -32,16 +32,19 @@ msgid "Set to draft"
msgstr "Установить в 'Черновик'"
#. module: auction
#: field:auction.deposit,partner_id:0 view:auction.lots:0
#: xsl:report.auction.seller.list:0 field:report.deposit.border,seller:0
#: field:report.seller.auction,seller:0 field:report.seller.auction2,seller:0
#: field:auction.deposit,partner_id:0
#: view:auction.lots:0
#: xsl:report.auction.seller.list:0
#: field:report.deposit.border,seller:0
#: field:report.seller.auction,seller:0
#: field:report.seller.auction2,seller:0
msgid "Seller"
msgstr "Продавец"
#. module: auction
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Недопустимое имя модели в определении действия."
#. module: auction
#: selection:auction.lots.send.aie,date_ask,numerotation:0
@@ -87,18 +90,23 @@ msgid "Deposit Form"
msgstr "Форма депозита"
#. module: auction
#: rml:auction.bids:0 view:auction.lots:0 field:auction.lots,ach_uid:0
#: rml:auction.bids:0
#: view:auction.lots:0
#: field:auction.lots,ach_uid:0
#: wizard_field:auction.lots.buyer_map,check,ach_uid:0
#: wizard_field:auction.lots.make_invoice_buyer,init,buyer_id:0
#: wizard_field:auction.pay.buy,init,buyer_id:0 rml:buyer.list:0
#: wizard_field:auction.pay.buy,init,buyer_id:0
#: rml:buyer.list:0
#: model:ir.ui.menu,name:auction.auction_report_buyer_menu
#: rml:report.auction.buyer.result:0 field:report.buyer.auction,buyer:0
#: rml:report.auction.buyer.result:0
#: field:report.buyer.auction,buyer:0
#: field:report.buyer.auction2,buyer:0
msgid "Buyer"
msgstr "Покупатель"
#. module: auction
#: field:report.auction.view,nobjects:0 field:report.buyer.auction,object:0
#: field:report.auction.view,nobjects:0
#: field:report.buyer.auction,object:0
msgid "No of objects"
msgstr "Кол-во объектов"
@@ -123,7 +131,8 @@ msgid "Antique/Books, manuscripts, eso."
msgstr "Антиквариат/ книги, манускрипты, и т.д"
#. module: auction
#: view:auction.deposit:0 model:ir.model,name:auction.model_auction_deposit
#: view:auction.deposit:0
#: model:ir.model,name:auction.model_auction_deposit
msgid "Deposit Border"
msgstr "Граница депозита"
@@ -195,7 +204,8 @@ msgid "Objects by Auction"
msgstr ""
#. module: auction
#: field:auction.lots,lot_num:0 field:report.unclassified.objects,lot_num:0
#: field:auction.lots,lot_num:0
#: field:report.unclassified.objects,lot_num:0
msgid "List Number"
msgstr "Номер списка"
@@ -230,7 +240,8 @@ msgid "Contemporary Art"
msgstr "Современное искусство"
#. module: auction
#: view:auction.lots:0 view:report.unclassified.objects:0
#: view:auction.lots:0
#: view:report.unclassified.objects:0
msgid "Ref"
msgstr "Ссылка"
@@ -250,7 +261,8 @@ msgid "Error: Sign in (resp. Sign out) must follow Sign out (resp. Sign in)"
msgstr ""
#. module: auction
#: view:auction.lots:0 field:report.buyer.auction,total_price:0
#: view:auction.lots:0
#: field:report.buyer.auction,total_price:0
msgid "Total Adj."
msgstr "Общий рез-т"
@@ -260,7 +272,8 @@ msgid "Net margin (%)"
msgstr "Чистая маржа (%)"
#. module: auction
#: selection:auction.lots,state:0 selection:report.object.encoded,state:0
#: selection:auction.lots,state:0
#: selection:report.object.encoded,state:0
#: selection:report.seller.auction,state:0
#: selection:report.unclassified.objects,state:0
msgid "Unsold"
@@ -288,7 +301,9 @@ msgid "Seller Costs"
msgstr "Стоимости продавца"
#. module: auction
#: view:auction.bid:0 view:auction.bid_line:0 view:auction.lots:0
#: view:auction.bid:0
#: view:auction.bid_line:0
#: view:auction.lots:0
#: field:auction.lots,bid_lines:0
#: model:ir.actions.report.xml,name:auction.bid_auction
#: model:ir.ui.menu,name:auction.menu_action_bid_open
@@ -311,7 +326,8 @@ msgid "Contact"
msgstr "Контакт"
#. module: auction
#: field:report.auction.view,obj_ret:0 field:report.object.encoded,obj_ret:0
#: field:report.auction.view,obj_ret:0
#: field:report.object.encoded,obj_ret:0
#: field:report.object.encoded.manager,obj_ret:0
msgid "# obj ret"
msgstr ""
@@ -352,7 +368,8 @@ msgid "Sold Objects"
msgstr "Проданные объекты"
#. module: auction
#: view:report.buyer.auction2:0 view:report.seller.auction2:0
#: view:report.buyer.auction2:0
#: view:report.seller.auction2:0
msgid "Sum net margin"
msgstr "Суммарная чистая маржа"
@@ -362,7 +379,9 @@ msgid "Deposit Border Form"
msgstr "Форма границы депозита"
#. module: auction
#: field:auction.bid,bid_lines:0 rml:auction.bids:0 rml:bids.lots:0
#: field:auction.bid,bid_lines:0
#: rml:auction.bids:0
#: rml:bids.lots:0
#: model:ir.model,name:auction.model_auction_bid_line
msgid "Bid"
msgstr "Заявка"
@@ -373,8 +392,10 @@ msgid "Langage"
msgstr "Язык"
#. module: auction
#: field:auction.bid_line,lot_id:0 field:auction.lot.history,lot_id:0
#: view:auction.lots:0 model:ir.model,name:auction.model_auction_lots
#: field:auction.bid_line,lot_id:0
#: field:auction.lot.history,lot_id:0
#: view:auction.lots:0
#: model:ir.model,name:auction.model_auction_lots
msgid "Object"
msgstr "Объект"
@@ -407,9 +428,11 @@ msgid "Auction buyer reporting form view"
msgstr "Вид вормы отчета покупателя аукцциона"
#. module: auction
#: field:auction.dates,state:0 field:auction.lots,state:0
#: field:auction.dates,state:0
#: field:auction.lots,state:0
#: field:report.auction.adjudication,state:0
#: field:report.object.encoded,state:0 field:report.seller.auction,state:0
#: field:report.object.encoded,state:0
#: field:report.seller.auction,state:0
#: field:report.unclassified.objects,state:0
msgid "Status"
msgstr "Статус"
@@ -425,7 +448,8 @@ msgid "Antique/Cartoons"
msgstr "Antique/ Эскизы"
#. module: auction
#: view:auction.lots:0 selection:auction.lots,state:0
#: view:auction.lots:0
#: selection:auction.lots,state:0
#: selection:report.seller.auction,state:0
#: selection:report.unclassified.objects,state:0
msgid "Sold"
@@ -510,7 +534,8 @@ msgid "auction.dates"
msgstr ""
#. module: auction
#: rml:auction.total.rml:0 model:ir.ui.menu,name:auction.auction_buyers_menu
#: rml:auction.total.rml:0
#: model:ir.ui.menu,name:auction.auction_buyers_menu
msgid "Buyers"
msgstr "Покупатели"
@@ -732,7 +757,8 @@ msgid "Antique/Toys"
msgstr "Антиквариат/ Игрушки"
#. module: auction
#: field:auction.deposit,create_uid:0 field:auction.lots,create_uid:0
#: field:auction.deposit,create_uid:0
#: field:auction.lots,create_uid:0
msgid "Created by"
msgstr "Создано"
@@ -860,7 +886,8 @@ msgid "Gestion emporte"
msgstr ""
#. module: auction
#: xsl:report.auction.lots.list.landscape:0 xsl:report.auction.vnd_bordereau:0
#: xsl:report.auction.lots.list.landscape:0
#: xsl:report.auction.vnd_bordereau:0
msgid "Cat. N."
msgstr ""
@@ -895,7 +922,8 @@ msgid "API ID"
msgstr "API ID"
#. module: auction
#: field:auction.bid,name:0 field:auction.bid_line,bid_id:0
#: field:auction.bid,name:0
#: field:auction.bid_line,bid_id:0
msgid "Bid ID"
msgstr "ID заявки"
@@ -948,13 +976,16 @@ msgid "Antique/Carpet and textilles"
msgstr "Антиквариат/ ковры и текстиль"
#. module: auction
#: xsl:report.auction.seller.list:0 field:report.object.encoded.manager,adj:0
#: xsl:report.auction.seller.list:0
#: field:report.object.encoded.manager,adj:0
msgid "Adj."
msgstr "Рез-т"
#. module: auction
#: field:auction.lot.history,name:0 field:report.attendance,name:0
#: field:report.auction.adjudication,date:0 xsl:report.auction.deposit:0
#: field:auction.lot.history,name:0
#: field:report.attendance,name:0
#: field:report.auction.adjudication,date:0
#: xsl:report.auction.deposit:0
#: field:report.auction.estimation.adj.category,date:0
msgid "Date"
msgstr "Дата"
@@ -995,12 +1026,14 @@ msgid "Specific Costs"
msgstr ""
#. module: auction
#: view:report.buyer.auction2:0 view:report.seller.auction2:0
#: view:report.buyer.auction2:0
#: view:report.seller.auction2:0
msgid "Sum adj"
msgstr ""
#. module: auction
#: view:auction.dates:0 view:report.auction.view2:0
#: view:auction.dates:0
#: view:report.auction.view2:0
msgid "Auctions"
msgstr "Аукционы"
@@ -1035,7 +1068,8 @@ msgid "Aie Category"
msgstr ""
#. module: auction
#: xsl:flagey.huissier:0 rml:report.auction.buyer.result:0
#: xsl:flagey.huissier:0
#: rml:report.auction.buyer.result:0
#: xsl:report.auction.deposit:0
msgid "Num"
msgstr ""
@@ -1083,7 +1117,8 @@ msgid "Detailed lots"
msgstr "Подробные лоты"
#. module: auction
#: view:report.object.encoded:0 view:report.object.encoded.manager:0
#: view:report.object.encoded:0
#: view:report.object.encoded.manager:0
msgid "Objects statistics"
msgstr "Статистика объектов"
@@ -1098,7 +1133,8 @@ msgid "Send results to Auction-in-europe.com"
msgstr "Отправить результаты на Auction-in-europe.com"
#. module: auction
#: rml:bids.lots:0 rml:bids.phones.details:0
#: rml:bids.lots:0
#: rml:bids.phones.details:0
msgid "Cat.N"
msgstr "№ по кат."
@@ -1142,7 +1178,8 @@ msgid "-"
msgstr "-"
#. module: auction
#: xsl:report.auction.ach_bordereau:0 xsl:report.auction.vnd_bordereau:0
#: xsl:report.auction.ach_bordereau:0
#: xsl:report.auction.vnd_bordereau:0
msgid "Subtotal:"
msgstr "Подитог"
@@ -1158,7 +1195,8 @@ msgid "Invoice Number"
msgstr "Номер счета"
#. module: auction
#: field:report.buyer.auction,date:0 field:report.buyer.auction2,date:0
#: field:report.buyer.auction,date:0
#: field:report.buyer.auction2,date:0
#: field:report.object.encoded,date:0
#: field:report.object.encoded.manager,date:0
#: field:report.seller.auction,date:0
@@ -1181,7 +1219,8 @@ msgid "Name"
msgstr "Название"
#. module: auction
#: field:auction.deposit,name:0 field:auction.lots,bord_vnd_id:0
#: field:auction.deposit,name:0
#: field:auction.lots,bord_vnd_id:0
#: wizard_field:auction.lots.numerotate,init,bord_vnd_id:0
#: field:report.deposit.border,bord:0
#: field:report.unclassified.objects,bord_vnd_id:0
@@ -1209,7 +1248,8 @@ msgid "Login"
msgstr "Учетная запись"
#. module: auction
#: rml:buyer.list:0 xsl:report.auction.seller.list:0
#: rml:buyer.list:0
#: xsl:report.auction.seller.list:0
msgid "To pay"
msgstr "К оплате"
@@ -1229,7 +1269,8 @@ msgid "Seller Form"
msgstr "Форма продавца"
#. module: auction
#: field:auction.lots,lot_type:0 field:report.unclassified.objects,lot_type:0
#: field:auction.lots,lot_type:0
#: field:report.unclassified.objects,lot_type:0
msgid "Object category"
msgstr "Категория объекта"
@@ -1298,7 +1339,8 @@ msgid "Payment's history"
msgstr "Журнал платежей"
#. module: auction
#: xsl:report.auction.ach_bordereau:0 xsl:report.auction.vnd_bordereau:0
#: xsl:report.auction.ach_bordereau:0
#: xsl:report.auction.vnd_bordereau:0
msgid "Document"
msgstr "Документ"
@@ -1370,7 +1412,8 @@ msgid "Cont. Art/Curiosa"
msgstr "Совр. искусство/ Редкости"
#. module: auction
#: field:auction.bid,auction_id:0 field:auction.lots,auction_id:0
#: field:auction.bid,auction_id:0
#: field:auction.lots,auction_id:0
#: wizard_field:auction.lots.auction_move,init,auction_id:0
#: wizard_field:auction.lots.send.aie,date_ask,dates:0
#: wizard_field:auction.lots.send.aie,init,dates:0
@@ -1418,7 +1461,8 @@ msgid "Cont. Art/Jewelry"
msgstr "Совр. искусство/ Ювелирные изделия"
#. module: auction
#: xsl:report.auction.deposit:0 xsl:report.auction.vnd_bordereau:0
#: xsl:report.auction.deposit:0
#: xsl:report.auction.vnd_bordereau:0
msgid "Inventory"
msgstr ""
@@ -1428,7 +1472,8 @@ msgid "Next Auctions"
msgstr "След. аукционы"
#. module: auction
#: rml:buyer.list:0 xsl:report.auction.seller.list:0
#: rml:buyer.list:0
#: xsl:report.auction.seller.list:0
msgid "#"
msgstr "№"
@@ -1558,14 +1603,16 @@ msgid "Buyer Journal"
msgstr "Книга покупателя"
#. module: auction
#: selection:auction.lots,state:0 xsl:report.auction.ach_bordereau:0
#: selection:auction.lots,state:0
#: xsl:report.auction.ach_bordereau:0
#: selection:report.object.encoded,state:0
#: selection:report.unclassified.objects,state:0
msgid "Paid"
msgstr "Оплачено"
#. module: auction
#: rml:bids.lots:0 rml:bids.phones.details:0
#: rml:bids.lots:0
#: rml:bids.phones.details:0
msgid "Phone"
msgstr "Телефон"
@@ -1596,8 +1643,10 @@ msgid "Antique/Sculpture, bronze, eso."
msgstr "Антиквариат/ Скульптура, бронза и т.п."
#. module: auction
#: rml:buyer.list:0 xsl:report.auction.ach_bordereau:0
#: xsl:report.auction.seller.list:0 xsl:report.auction.vnd_bordereau:0
#: rml:buyer.list:0
#: xsl:report.auction.ach_bordereau:0
#: xsl:report.auction.seller.list:0
#: xsl:report.auction.vnd_bordereau:0
msgid "Total:"
msgstr "Итого:"
@@ -1743,7 +1792,8 @@ msgid "Plate Number:"
msgstr ""
#. module: auction
#: view:auction.deposit:0 field:auction.deposit,lot_id:0
#: view:auction.deposit:0
#: field:auction.deposit,lot_id:0
#: model:ir.ui.menu,name:auction.auction_objects_menu
msgid "Objects"
msgstr "Объекты"
@@ -1765,9 +1815,12 @@ msgid "Allow Negative Amount"
msgstr "Разрешить отрицательные суммы"
#. module: auction
#: rml:auction.bids:0 view:auction.lots:0 rml:auction.total.rml:0
#: rml:auction.bids:0
#: view:auction.lots:0
#: rml:auction.total.rml:0
#: model:ir.ui.menu,name:auction.auction_report_auction_menu
#: xsl:report.auction.ach_bordereau:0 xsl:report.auction.deposit:0
#: xsl:report.auction.ach_bordereau:0
#: xsl:report.auction.deposit:0
msgid "Auction"
msgstr "Аукцион"
@@ -1777,12 +1830,17 @@ msgid "Cont. Art/Shows"
msgstr "Совр. искусство/ Выставки"
#. module: auction
#: field:auction.dates,name:0 field:auction.lot.history,auction_id:0
#: field:auction.dates,name:0
#: field:auction.lot.history,auction_id:0
#: field:report.auction.adjudication,name:0
#: field:report.auction.view,auction_id:0 field:report.auction.view2,auction:0
#: field:report.auction.view2,date:0 field:report.buyer.auction,auction:0
#: field:report.buyer.auction2,auction:0 field:report.seller.auction,auction:0
#: field:report.seller.auction2,auction:0 field:report.seller.auction2,date:0
#: field:report.auction.view,auction_id:0
#: field:report.auction.view2,auction:0
#: field:report.auction.view2,date:0
#: field:report.buyer.auction,auction:0
#: field:report.buyer.auction2,auction:0
#: field:report.seller.auction,auction:0
#: field:report.seller.auction2,auction:0
#: field:report.seller.auction2,date:0
#: field:report.unclassified.objects,auction:0
msgid "Auction date"
msgstr "Дата аукциона"
@@ -1934,7 +1992,8 @@ msgstr "Первый день экпозиции"
#. module: auction
#: wizard_view:auction.lots.auction_move,init:0
msgid "Warning, this will erase the object adjudication price and its buyer !"
msgid ""
"Warning, this will erase the object adjudication price and its buyer !"
msgstr "Внимание, это удалит результат цены объекта и покупателя!"
#. module: auction
@@ -1958,14 +2017,16 @@ msgid "Income Account"
msgstr ""
#. module: auction
#: field:auction.lots,net_revenue:0 field:report.auction.view2,net_revenue:0
#: field:auction.lots,net_revenue:0
#: field:report.auction.view2,net_revenue:0
#: field:report.object.encoded.manager,net_revenue:0
#: field:report.seller.auction2,net_revenue:0
msgid "Net revenue"
msgstr "Чистая выручка"
#. module: auction
#: xsl:report.auction.deposit:0 xsl:report.auction.lots.list.landscape:0
#: xsl:report.auction.deposit:0
#: xsl:report.auction.lots.list.landscape:0
msgid "Limit"
msgstr "Лимит"
@@ -2037,7 +2098,8 @@ msgid "Closed"
msgstr "Закрыто"
#. module: auction
#: field:auction.lots,obj_comm:0 field:report.unclassified.objects,obj_comm:0
#: field:auction.lots,obj_comm:0
#: field:report.unclassified.objects,obj_comm:0
msgid "Commission"
msgstr "Комиссия"
@@ -2057,7 +2119,8 @@ msgid "Employee"
msgstr "Сотрудник"
#. module: auction
#: xsl:report.auction.ach_bordereau:0 xsl:report.auction.vnd_bordereau:0
#: xsl:report.auction.ach_bordereau:0
#: xsl:report.auction.vnd_bordereau:0
msgid "Adj.(EUR)"
msgstr "Рез-т(EUR)"
@@ -2134,7 +2197,8 @@ msgid "Invoiced"
msgstr "Выставлен счет"
#. module: auction
#: view:auction.lots:0 selection:auction.lots,state:0
#: view:auction.lots:0
#: selection:auction.lots,state:0
msgid "Taken away"
msgstr "Забрано"
@@ -2171,7 +2235,8 @@ msgid "Error ! You can not create recursive associated members."
msgstr ""
#. module: auction
#: selection:auction.dates,state:0 selection:auction.lots,state:0
#: selection:auction.dates,state:0
#: selection:auction.lots,state:0
#: selection:report.auction.adjudication,state:0
#: selection:report.object.encoded,state:0
#: selection:report.seller.auction,state:0
@@ -2200,7 +2265,8 @@ msgid "Adj"
msgstr "Рез-т"
#. module: auction
#: view:auction.dates:0 model:ir.ui.menu,name:auction.auction_date_menu
#: view:auction.dates:0
#: model:ir.ui.menu,name:auction.auction_date_menu
msgid "Auction Dates"
msgstr "Даты аукциона"
@@ -2346,11 +2412,16 @@ msgid "Report Sign In/Out"
msgstr ""
#. module: auction
#: view:auction.deposit:0 field:auction.deposit,info:0 view:auction.lots:0
#: view:auction.deposit:0
#: field:auction.deposit,info:0
#: view:auction.lots:0
#: wizard_field:auction.lots.numerotate,search,obj_desc:0
#: rml:bids.phones.details:0 xsl:flagey.huissier:0
#: xsl:report.auction.ach_bordereau:0 xsl:report.auction.deposit:0
#: xsl:report.auction.lots.list.landscape:0 xsl:report.auction.vnd_bordereau:0
#: rml:bids.phones.details:0
#: xsl:flagey.huissier:0
#: xsl:report.auction.ach_bordereau:0
#: xsl:report.auction.deposit:0
#: xsl:report.auction.lots.list.landscape:0
#: xsl:report.auction.vnd_bordereau:0
msgid "Description"
msgstr "Описание"
@@ -2360,7 +2431,8 @@ msgid "Cont. Art/Arts"
msgstr "Совр. искусство/ Ремесла"
#. module: auction
#: field:auction.lots,obj_price:0 field:report.auction.view,adj_price:0
#: field:auction.lots,obj_price:0
#: field:report.auction.view,adj_price:0
#: field:report.unclassified.objects,obj_price:0
msgid "Adjudication price"
msgstr "Цена результата"
@@ -2422,7 +2494,8 @@ msgid "Pay objects"
msgstr ""
#. module: auction
#: view:report.object.encoded:0 view:report.object.encoded.manager:0
#: view:report.object.encoded:0
#: view:report.object.encoded.manager:0
msgid "# objects"
msgstr "Кол-во объектов"
@@ -2490,12 +2563,12 @@ msgstr "Заказы"
#. module: auction
#: view:board.board:0
msgid "Objects by day"
msgstr "Объекты по дням"
msgstr ""
#. module: auction
#: model:ir.ui.menu,name:auction.menu_board_auction_manager
msgid "Auction Manager"
msgstr "Менеджер аукциона"
msgstr ""
#. module: auction
#: view:board.board:0
@@ -2505,7 +2578,7 @@ msgstr ""
#. module: auction
#: model:ir.ui.menu,name:auction.menu_board_auction
msgid "Auction Member"
msgstr "Участник аукциона"
msgstr ""
#. module: auction
#: model:ir.actions.act_window,name:auction.open_board_auction
@@ -2515,7 +2588,7 @@ msgstr ""
#. module: auction
#: view:board.board:0
msgid "Auction manager "
msgstr "Менелжер аукциона "
msgstr ""
#. module: auction
#: model:ir.module.module,shortdesc:auction.module_meta_information
@@ -2525,49 +2598,49 @@ msgstr ""
#. module: auction
#: view:board.board:0
msgid "Estimations/Adjudication"
msgstr "Оценка / Результат"
msgstr ""
#. module: auction
#: view:board.board:0
msgid "Total Adjudications"
msgstr "Итоговые результаты"
msgstr ""
#. module: auction
#: view:board.board:0
msgid "Latest objects"
msgstr "Новейшие объекты"
msgstr ""
#. module: auction
#: view:board.board:0
msgid "Latest deposits"
msgstr "Новейшие депозиты"
msgstr ""
#. module: auction
#: view:board.board:0
msgid "Menu"
msgstr "Меню"
msgstr ""
#. module: auction
#: view:board.board:0
msgid "My objects By Day"
msgstr "Мои объекты по дням"
msgstr ""
#. module: auction
#: view:board.board:0
msgid "My board"
msgstr "Моя панель"
msgstr ""
#. module: auction
#: model:ir.actions.act_window,name:auction.open_board_auction_manager
msgid "Auction manager board"
msgstr "Панель менеджера аукциона"
msgstr ""
#. module: auction
#: view:board.board:0
msgid "Min/Adj/Max"
msgstr "Ми/Рез-т/Макс"
msgstr ""
#. module: auction
#: view:board.board:0
msgid "My Latest Objects"
msgstr "Мои новейшие объекты"
msgstr ""
+1
View File
@@ -793,6 +793,7 @@ class calendar_alarm(osv.osv):
@param use_new_cursor: False or the dbname
@param context: A standard dictionary for contextual values
"""
return True # XXX FIXME REMOVE THIS AFTER FIXING get_recurrent_dates!!
if not context:
context = {}
current_datetime = datetime.now()
+33 -32
View File
@@ -7,24 +7,24 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-04-13 07:22+0000\n"
"Last-Translator: grisha <Unknown>\n"
"PO-Revision-Date: 2010-07-08 15:37+0000\n"
"Last-Translator: Pomazan Bogdan <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-22 04:01+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_contact
#: field:res.partner.job,sequence_contact:0
msgid "Contact Seq."
msgstr ""
msgstr "Последовательность контакта"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_contact
msgid "res.partner.contact"
msgstr ""
msgstr "Контакт партнера"
#. module: base_contact
#: constraint:ir.model:0
@@ -37,7 +37,7 @@ msgstr ""
#. module: base_contact
#: field:res.partner.job,function_id:0
msgid "Partner Function"
msgstr ""
msgstr "Функции партнера"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.action_partner_contact_form
@@ -52,12 +52,12 @@ msgstr "Контакты"
#. module: base_contact
#: field:res.partner.job,sequence_partner:0
msgid "Partner Seq."
msgstr ""
msgstr "Последовательность партнеров"
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Current"
msgstr ""
msgstr "Текущий"
#. module: base_contact
#: field:res.partner.contact,first_name:0
@@ -72,32 +72,32 @@ msgstr ""
#. module: base_contact
#: field:res.partner.job,other:0
msgid "Other"
msgstr ""
msgstr "Другое"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_contacttofunction0
msgid "Contact to function"
msgstr ""
msgstr "Функции контакта"
#. module: base_contact
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Недопустимое имя модели в определении действия."
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_partnertoaddress0
msgid "Partner to address"
msgstr ""
msgstr "Адрес партнера"
#. module: base_contact
#: view:res.partner.address:0
msgid "# of Contacts"
msgstr ""
msgstr "Кол-во контактных лиц"
#. module: base_contact
#: help:res.partner.job,other:0
msgid "Additional phone field"
msgstr ""
msgstr "Дополнительное поле телефона"
#. module: base_contact
#: model:process.node,name:base_contact.process_node_function0
@@ -107,7 +107,7 @@ msgstr "Функция"
#. module: base_contact
#: field:res.partner.job,fax:0
msgid "Fax"
msgstr ""
msgstr "Факс"
#. module: base_contact
#: field:res.partner.contact,lang_id:0
@@ -137,7 +137,7 @@ msgstr "Функции контакта"
#. module: base_contact
#: model:ir.module.module,shortdesc:base_contact.module_meta_information
msgid "Base Contact"
msgstr ""
msgstr "Основной контакт"
#. module: base_contact
#: help:res.partner.job,sequence_partner:0
@@ -145,6 +145,7 @@ msgid ""
"Order of importance of this job title in the list of job title of the linked "
"partner"
msgstr ""
"С учетом важности этой работы названия в списке Должность связанного партнера"
#. module: base_contact
#: field:res.partner.contact,email:0
@@ -155,7 +156,7 @@ msgstr "Эл. почта"
#. module: base_contact
#: field:res.partner.job,date_stop:0
msgid "Date Stop"
msgstr ""
msgstr "Дата Остановки"
#. module: base_contact
#: view:res.partner:0
@@ -167,7 +168,7 @@ msgstr "Адрес"
#: model:ir.actions.act_window,name:base_contact.action_res_partner_job
#: model:ir.ui.menu,name:base_contact.menu_action_res_partner_job
msgid "Contact's Jobs"
msgstr ""
msgstr "Должность контакта"
#. module: base_contact
#: field:res.partner.contact,country_id:0
@@ -185,7 +186,7 @@ msgstr ""
#: field:res.partner.address,job_id:0
#: field:res.partner.contact,job_id:0
msgid "Main Job"
msgstr ""
msgstr "Основная должность"
#. module: base_contact
#: view:res.partner:0
@@ -200,7 +201,7 @@ msgstr ""
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_partnertoaddress0
msgid "Define partners and their addresses."
msgstr ""
msgstr "Определить партнеров и их адреса."
#. module: base_contact
#: constraint:ir.ui.view:0
@@ -220,7 +221,7 @@ msgstr ""
#. module: base_contact
#: field:res.partner.job,extension:0
msgid "Extension"
msgstr ""
msgstr "Расширение"
#. module: base_contact
#: field:res.partner.contact,mobile:0
@@ -230,12 +231,12 @@ msgstr "Моб. тел."
#. module: base_contact
#: help:res.partner.job,extension:0
msgid "Internal/External extension phone number"
msgstr ""
msgstr "Внутренний / внешний расширение телефонного номера"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_contacts0
msgid "People you work with."
msgstr ""
msgstr "Люди с которыми вы работает"
#. module: base_contact
#: view:res.partner.contact:0
@@ -246,7 +247,7 @@ msgstr "Доп. информация"
#: view:res.partner.contact:0
#: field:res.partner.contact,job_ids:0
msgid "Functions and Addresses"
msgstr ""
msgstr "Функции и Адреса"
#. module: base_contact
#: field:res.partner.contact,active:0
@@ -261,7 +262,7 @@ msgstr "Контакт"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_partners0
msgid "Companies you work with."
msgstr ""
msgstr "Организации с которыми вы работаете"
#. module: base_contact
#: field:res.partner.contact,partner_id:0
@@ -276,7 +277,7 @@ msgstr ""
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.act_res_partner_jobs
msgid "Partner Contacts"
msgstr ""
msgstr "Контакты партнера"
#. module: base_contact
#: view:res.partner.contact:0
@@ -297,7 +298,7 @@ msgstr "Адреса"
#. module: base_contact
#: model:process.node,note:base_contact.process_node_addresses0
msgid "Working and private addresses."
msgstr ""
msgstr "Рабочие и дополнительные адреса."
#. module: base_contact
#: field:res.partner.contact,name:0
@@ -307,18 +308,18 @@ msgstr "Фамилия"
#. module: base_contact
#: field:res.partner.job,state:0
msgid "State"
msgstr ""
msgstr "Состояние"
#. module: base_contact
#: view:res.partner.contact:0
#: view:res.partner.job:0
msgid "General"
msgstr ""
msgstr "Основной"
#. module: base_contact
#: selection:res.partner.job,state:0
msgid "Past"
msgstr ""
msgstr "Прошлые"
#. module: base_contact
#: view:res.partner.contact:0
@@ -338,12 +339,12 @@ msgstr "Партнер"
#. module: base_contact
#: field:res.partner.job,date_start:0
msgid "Date Start"
msgstr ""
msgstr "Дата начала"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_functiontoaddress0
msgid "Define functions and address."
msgstr ""
msgstr "Определить функции и адреса"
#. module: base_contact
#: field:res.partner.contact,website:0
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-08 03:49+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_iban
@@ -38,7 +38,6 @@ the "Dashboard" menu.
'update_xml': [
'security/ir.model.access.csv',
'wizard/report_menu_create_view.xml',
'wizard/report_open_view.xml',
'base_report_creator_wizard.xml',
'base_report_creator_view.xml'
],
+101 -71
View File
@@ -98,7 +98,7 @@ class report_creator(osv.osv):
if context is None:
context = {}
data = context and context.get('report_id', False) or False
data = context and context.get('report_id', False) or False
if (not context) or 'report_id' not in context:
return super(report_creator, self).fields_view_get(cr, user, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
report = self.browse(cr, user, data)
@@ -114,7 +114,7 @@ class report_creator(osv.osv):
else:
fields['column_count'] = {'readonly': True, 'type': 'integer', 'string': 'Count', 'size': 64, 'name': 'column_count'}
arch = '<?xml version="1.0" encoding="utf-8"?>\n'
arch = '<?xml version="1.0"?>'
if view_type == 'graph':
orientation_eval = {'horz':'horizontal','vert' :'vertical'}
orientation = eval(report.view_graph_orientation,orientation_eval)
@@ -163,14 +163,14 @@ class report_creator(osv.osv):
arch += '''>'''
arch += ''.join(temp_list)
else:
arch += '<%s string="%s">\n' % (view_type, report.name)
arch += '<%s string="%s">' % (view_type, report.name)
i = 0
for f in report.field_ids:
if f.field_id.model:
arch += '<field name="%s" select="1"/>' % ('field' + str(i),)
arch += '<field name="%s"/>' % ('field' + str(i),)
i += 1
else:
arch += '<field name="%s" select="1"/>' % ('column_count',)
arch += '<field name="%s"/>' % ('column_count',)
arch += '</%s>' % (view_type,)
result = {
'arch': arch,
@@ -181,7 +181,6 @@ class report_creator(osv.osv):
'action': [],
'relate': []
}
return result
def read(self, cr, user, ids, fields = None, context = None, load = '_classic_read'):
@@ -406,55 +405,85 @@ class report_creator(osv.osv):
return result
_columns = {
'name': fields.char('Report Name', size=64, required=True),
'name': fields.char('Report Name', size=64, required=True),
'type': fields.selection([('list', 'Rows And Columns Report'), ], 'Report Type', required=True), #('sum','Summation Report')
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the report without removing it."),
'view_type1': fields.selection([('form', 'Form'),
('tree', 'Tree'),
('graph', 'Graph'),
('calendar', 'Calendar')], 'First View', required=True),
'view_type2': fields.selection([('', '/'),
('form', 'Form'),
('tree', 'Tree'),
('graph', 'Graph'),
('calendar', 'Calendar')], 'Second View'),
'view_type3': fields.selection([('', '/'),
('form', 'Form'),
('tree', 'Tree'),
('graph', 'Graph'),
('calendar', 'Calendar')], 'Third View'),
'view_graph_type': fields.selection([('pie', 'Pie Chart'),
('bar', 'Bar Chart')], 'Graph Type', required=True),
'view_graph_orientation': fields.selection([('horz', 'Horizontal'),
('vert', 'Vertical')], 'Graph Orientation', required=True),
'model_ids': fields.many2many('ir.model', 'base_report_creator_report_model_rel', 'report_id', 'model_id', 'Reported Objects'),
'field_ids': fields.one2many('base_report_creator.report.fields', 'report_id', 'Fields to Display'),
'filter_ids': fields.one2many('base_report_creator.report.filter', 'report_id', 'Filters'),
'state': fields.selection([
('draft', 'Draft'),
('valid', 'Valid')],
'State', required=True,
help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed custom report. \
\n* The \'Valid\' state is used when user validates the custom report.'),
'sql_query': fields.function(_sql_query_get, method=True, type="text", string='SQL Query', store=True),
'group_ids': fields.many2many('res.groups', 'base_report_creator_group_rel', 'report_id', 'group_id', 'Authorized Groups'),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the report without removing it."),
'view_type1': fields.selection([('form', 'Form'),
('tree', 'Tree'),
('graph', 'Graph'),
('calendar', 'Calendar')], 'First View', required=True),
'view_type2': fields.selection([('', '/'),
('form', 'Form'),
('tree', 'Tree'),
('graph', 'Graph'),
('calendar', 'Calendar')], 'Second View'),
'view_type3': fields.selection([('', '/'),
('form', 'Form'),
('tree', 'Tree'),
('graph', 'Graph'),
('calendar', 'Calendar')], 'Third View'),
'view_graph_type': fields.selection([('pie', 'Pie Chart'),
('bar', 'Bar Chart')], 'Graph Type', required=True),
'view_graph_orientation': fields.selection([('horz', 'Horizontal'),
('vert', 'Vertical')], 'Graph Orientation', required=True),
'model_ids': fields.many2many('ir.model', 'base_report_creator_report_model_rel', 'report_id', 'model_id', 'Reported Objects'),
'field_ids': fields.one2many('base_report_creator.report.fields', 'report_id', 'Fields to Display'),
'filter_ids': fields.one2many('base_report_creator.report.filter', 'report_id', 'Filters'),
'sql_query': fields.function(_sql_query_get, method=True, type="text", string='SQL Query', store=True),
'group_ids': fields.many2many('res.groups', 'base_report_creator_group_rel', 'report_id', 'group_id', 'Authorized Groups'),
'menu_id': fields.many2one('ir.ui.menu', "Menu", readonly=True),
}
_defaults = {
'type': lambda *args: 'list',
'state': lambda *args: 'draft',
'active': lambda *args: True,
'view_type1': lambda *args: 'tree',
'view_type2': lambda *args: 'graph',
'view_graph_type': lambda *args: 'bar',
'view_graph_orientation': lambda *args: 'horz',
'type': lambda *args: 'list',
'active': lambda *args: True,
'view_type1': lambda *args: 'tree',
'view_type2': lambda *args: 'graph',
'view_graph_type': lambda *args: 'bar',
'view_graph_orientation': lambda *args: 'horz',
}
def open_report(self, cr, uid, ids, context=None):
"""
This Function opens base creator report view
@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 report open's IDs
@param context: A standard dictionary for contextual values
@return : Dictionary value for base creator report form
"""
if not context:
context = {}
rep = self.browse(cr, uid, ids, context=context)
if not rep:
return False
rep = rep[0]
view_mode = rep.view_type1
if rep.view_type2:
view_mode += ',' + rep.view_type2
if rep.view_type3:
view_mode += ',' + rep.view_type3
value = {
'name': rep.name,
'view_type': 'form',
'view_mode': view_mode,
'res_model': 'base_report_creator.report',
'type': 'ir.actions.act_window',
'context': "{'report_id':%d}" % (rep.id,),
'nodestroy': True,
}
return value
def _function_field(self, cr, uid, ids):
"""
constraints function which specify that
constraints function which specify that
not display field which are not stored in Database.
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of Report creator's id.
@param ids: List of Report creator's id.
@return: True if display field which are stored in database.
or false if display field which are not store in dtabase.
"""
@@ -514,10 +543,11 @@ class report_creator(osv.osv):
return False
return True
_constraints = [
(_function_field, 'You can not display field which are not stored in Database.', ['field_ids']),
(_aggregation_error, 'You can apply aggregate function to the non calculated field.', ['field_ids']),
(_calander_view_error, "You must have to give calendar view's color,start date and delay.", ['field_ids']),
(_function_field, 'You can not display field which are not stored in Database.', ['field_ids']),
(_aggregation_error, 'You can apply aggregate function to the non calculated field.', ['field_ids']),
(_calander_view_error, "You must have to give calendar view's color,start date and delay.", ['field_ids']),
]
report_creator()
@@ -531,25 +561,25 @@ class report_creator_field(osv.osv):
_rec_name = 'field_id'
_order = "sequence,id"
_columns = {
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of fields."),
'field_id': fields.many2one('ir.model.fields', 'Field'),
'report_id': fields.many2one('base_report_creator.report', 'Report', on_delete='cascade'),
'group_method': fields.selection([('group', 'Grouped'),
('sum', 'Sum'),
('min', 'Minimum'),
('count', 'Count'),
('max', 'Maximum'),
('avg', 'Average')], 'Grouping Method', required=True),
'graph_mode': fields.selection([('', '/'),
('x', 'X Axis'),
('y', 'Y Axis')], 'Graph Mode'),
'calendar_mode': fields.selection([('', '/'),
('date_start', 'Starting Date'),
('date_end', 'Ending Date'), ('date_delay', 'Delay'), ('date_stop', 'End Date'), ('color', 'Unique Colors')], 'Calendar Mode'),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of fields."),
'field_id': fields.many2one('ir.model.fields', 'Field'),
'report_id': fields.many2one('base_report_creator.report', 'Report', on_delete='cascade'),
'group_method': fields.selection([('group', 'Grouped'),
('sum', 'Sum'),
('min', 'Minimum'),
('count', 'Count'),
('max', 'Maximum'),
('avg', 'Average')], 'Grouping Method', required=True),
'graph_mode': fields.selection([('', '/'),
('x', 'X Axis'),
('y', 'Y Axis')], 'Graph Mode'),
'calendar_mode': fields.selection([('', '/'),
('date_start', 'Starting Date'),
('date_end', 'Ending Date'), ('date_delay', 'Delay'), ('date_stop', 'End Date'), ('color', 'Unique Colors')], 'Calendar Mode'),
}
_defaults = {
'group_method': lambda *args: 'group',
'graph_mode': lambda *args: '',
'group_method': lambda *args: 'group',
'graph_mode': lambda *args: '',
}
report_creator_field()
@@ -561,14 +591,14 @@ class report_creator_filter(osv.osv):
_name = "base_report_creator.report.filter"
_description = "Report Filters"
_columns = {
'name': fields.char('Filter Name', size=64, required=True),
'expression': fields.text('Value', required=True, help='Provide an expression for the field based on which you want to filter the records.\n e.g. res_partner.id=3'),
'report_id': fields.many2one('base_report_creator.report', 'Report', on_delete='cascade'),
'condition': fields.selection([('and', 'AND'),
'name': fields.char('Filter Name', size=64, required=True),
'expression': fields.text('Value', required=True, help='Provide an expression for the field based on which you want to filter the records.\n e.g. res_partner.id=3'),
'report_id': fields.many2one('base_report_creator.report', 'Report', on_delete='cascade'),
'condition': fields.selection([('and', 'AND'),
('or', 'OR')], 'Condition')
}
_defaults = {
'condition': lambda *args: 'and',
'condition': lambda *args: 'and',
}
report_creator_filter()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -10,7 +10,6 @@
<field eval="&quot;tree&quot;" name="view_type1"/>
<field eval="&quot;list&quot;" name="type"/>
<field eval="&quot;horz&quot;" name="view_graph_orientation"/>
<field eval="&quot;valid&quot;" name="state"/>
</record>
<record id="base_report_creator_report_fields_0" model="base_report_creator.report.fields">
<field name="report_id" ref="base_report_creator_report_salesanalysis0"/>
@@ -23,7 +23,6 @@
<tree string="Report Creator">
<field name="name"/>
<field name="type"/>
<field name="state"/>
</tree>
</field>
</record>
@@ -42,12 +41,21 @@
<notebook colspan="4">
<page string="General Configuration">
<field name="model_ids" colspan="4"
context="{'model_ids':model_ids}" />
<separator string="State" colspan="4"/>
<field name="state"/>
<button string="Create Menu"
name="%(action_report_menu_create)d" type="action"
colspan="2" icon="gtk-justify-fill" />
context="{'model_ids':model_ids}" nolabel="1" />
<separator string="" colspan="4"/>
<group colspan="4" col="4">
<group colspan="2">
<field name="menu_id"/>
</group>
<group colspan="2">
<button string="Create Menu"
name="%(action_report_menu_create)d" type="action"
icon="gtk-justify-fill" attrs="{'invisible':[('menu_id','!=',False)]}"/>
<button string="Open Report"
name="open_report" type="object"
icon="gtk-open" />
</group>
</group>
</page><page string="View parameters">
<separator string="Used View" colspan="4"/>
<field name="view_type1"/>
@@ -112,6 +120,17 @@
</field>
</record>
<record id="view_report_filter" model="ir.ui.view">
<field name="name">Report Name</field>
<field name="model">base_report_creator.report</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Report">
<field name="name"></field>
</search>
</field>
</record>
<!-- Action for Report creator form -->
<record model="ir.actions.act_window" id="base_report_creator_action">
@@ -119,6 +138,7 @@
<field name="res_model">base_report_creator.report</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_report_filter"/>
</record>
<menuitem
@@ -152,11 +172,5 @@
id="menu_base_report_creator_action"
action="base_report_creator_action_tree"/>
<act_window id="action_report_open"
key2="client_action_multi" name="Open Report"
res_model="report.open" src_model="base_report_creator.report"
view_mode="form" target="new" view_type="form" />
</data>
</openerp>
@@ -3,6 +3,5 @@
<data>
<wizard id="wizard_set_filter_fields" string="Set Filter Fields"
name="base_report_creator.report_filter.fields" />
</data>
</openerp>
@@ -21,6 +21,5 @@
import wiz_set_filter_fields
import report_menu_create
import report_open
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,64 +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 wizard
import netsvc
import time
import pooler
from osv import osv
from tools.translate import _
class report_creator_open(wizard.interface):
def _open_report(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
if context.get('report_id',False):
raise wizard.except_wizard(_('UserError'),_('No Wizards available for this object!'))
rep = pool.get('base_report_creator.report').browse(cr, uid, data['id'], context)
view_mode = rep.view_type1
if rep.view_type2:
view_mode += ','+rep.view_type2
if rep.view_type3:
view_mode += ','+rep.view_type3
value = {
'name': rep.name,
'view_type': 'form',
'view_mode': view_mode,
'res_model': 'base_report_creator.report',
'context': {'report_id': data['id']},
'view_id': False,
'type': 'ir.actions.act_window'
}
return value
states = {
'init' : {
'actions' : [],
'result' : {'type':'action', 'action':_open_report, 'state':'end'}
}
}
report_creator_open('base_report_creator.report.open')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -43,31 +43,41 @@ class report_menu_create(osv.osv_memory):
if not context:
context = {}
context_id = context and context.get('active_id', False) or False
obj_menu = self.pool.get('ir.ui.menu')
data_obj = self.pool.get('ir.model.data')
obj_board = self.pool.get('base_report_creator.report')
if context_id:
board = self.pool.get('base_report_creator.report').browse(cr, uid, context_id)
data = self.browse(cr, uid, ids, context=context)
if not data:
return {}
data = data[0]
board = obj_board.browse(cr, uid, context_id)
view = board.view_type1
if board.view_type2:
view += ',' + board.view_type2
if board.view_type3:
view += ',' + board.view_type3
result = data_obj._get_id(cr, uid, 'base_report_creator', 'view_report_filter')
res = data_obj.read(cr, uid, result, ['res_id'])
action_id = self.pool.get('ir.actions.act_window').create(cr, uid, {
'name': board.name,
'view_type':'form',
'view_mode':view,
'context': "{'report_id':%d}" % (board.id,),
'res_model': 'base_report_creator.report'
})
obj_menu = self.pool.get('ir.ui.menu')
#start Loop
for data in self.read(cr, uid, ids):
obj_menu.create(cr, uid, {
'name': data.get('menu_name'),
'parent_id': data.get('menu_parent_id'),
'res_model': 'base_report_creator.report',
'search_view_id': res['res_id']
})
menu_id = obj_menu.create(cr, uid, {
'name': data.menu_name,
'parent_id': data.menu_parent_id.id,
'icon': 'STOCK_SELECT_COLOR',
'action': 'ir.actions.act_window, ' + str(action_id)
}, context=context)
return {}
#End Loop
obj_board.write(cr, uid, context_id, {'menu_id': menu_id})
return {}
report_menu_create()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,71 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import fields, osv
class report_open(osv.osv_memory):
"""
Open report
"""
_name = "report.open"
_description = __doc__
def open_report(self, cr, uid, ids, context=None):
"""
This Function opens base creator report view
@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 report open's IDs
@param context: A standard dictionary for contextual values
@return : Dictionary value for base creator report form
"""
if not context:
context = {}
context_id = context and context.get('active_id', False) or False
if context.get('report_id', False):
raise osv.except_osv(_('UserError'), _('No Wizards available for this object!'))
rep = self.pool.get('base_report_creator.report').browse(cr, uid, context_id, context)
view_mode = rep.view_type1
if rep.view_type2:
view_mode += ',' + rep.view_type2
if rep.view_type3:
view_mode += ',' + rep.view_type3
value = {
'name': rep.name,
'view_type': 'form',
'view_mode': view_mode,
'res_model': 'base_report_creator.report',
'context': {'report_id': context_id},
'view_id': False,
'type': 'ir.actions.act_window'
}
return value
report_open()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,34 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Report Open wizard -->
<record id="view_report_open" model="ir.ui.view">
<field name="name">report.open.form</field>
<field name="model">report.open</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Report open">
<separator string="" colspan="4" />
<group colspan="4" col="6">
<button icon="gtk-cancel" special="cancel"
string="Cancel" />
<button icon="gtk-open" string="Open Report"
name="open_report" type="object" />
</group>
</form>
</field>
</record>
<record id="action_report_open" model="ir.actions.act_window">
<field name="name">Open Report</field>
<field name="res_model">report.open</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_report_open"/>
<field name="target">new</field>
</record>
</data>
</openerp>
+1 -1
View File
@@ -28,7 +28,7 @@
<field name="stock" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="mrp" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<field name="account" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="purchase" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<field name="hr" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="point_of_sale" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<field name="marketing" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)" groups="base.group_extended"/> <field name="misc_tools" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<field name="marketing" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="misc_tools" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<field name="report_designer" groups="base.group_extended" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<separator string="Install Specific Business Modules" colspan="4"/>
<field name="association" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
+1 -1
View File
@@ -67,7 +67,7 @@
<record id="base_setup_company_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_setup_company"/>
<field name="sequence">1</field>
<field name="sequence">3</field>
<field name="restart">onskip</field>
</record>
</data>
+44 -44
View File
@@ -10,50 +10,50 @@
<form position="attributes">
<attribute name="string">Contact Information</attribute>
</form>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">To receive more information, please fill in the form about you and your company. Documentation and/or information will be sent to you as soon as possible.</attribute>
</xpath>
<xpath expr='//separator[@string="title"]' position='attributes'>
<attribute name='string'>Would you like more information or documentation ?</attribute>
<attribute name='colspan'>4</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>22</attribute>
<attribute name='string'></attribute>
</xpath>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">To receive more information, please fill in the form about you and your company. Documentation and/or information will be sent to you as soon as possible.</attribute>
</xpath>
<xpath expr='//separator[@string="title"]' position='attributes'>
<attribute name='string'>Would you like more information or documentation ?</attribute>
<attribute name='colspan'>4</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>22</attribute>
<attribute name='string'></attribute>
</xpath>
<group string="res_config_contents" position="replace">
<group colspan="4" height="450" width="600">
<group colspan="4">
<field name="ebook" nolabel="1"/>
<label align="0.0" string="I want to receive the Open ERP ebook (PDF) by email." colspan="3"/>
<field name="updates" nolabel="1"/>
<label align="0.0" string="Yes, I would like to receive information updates from OpenERP." colspan="3"/>
</group>
<group colspan="4" attrs="{'invisible':[('ebook','=',False),('updates','=',False)]}">
<separator colspan="4" string="About You"/>
<field name="name" colspan="2" attrs="{'required':[('ebook','=',True),('updates','=',True)]}"/>
<field name="job" colspan="2"/>
<field name="email" colspan="2" attrs="{'required':[('ebook','=',True),('updates','=',True)]}"/>
<field name="phone" colspan="2" attrs="{'required':[('ebook','=',True),('updates','=',True)]}"/>
<field name="total_employees" colspan="2"/>
<field name="industry" colspan="2"/>
</group>
<group colspan="4" attrs="{'invisible':[('ebook','=',False),('updates','=',False)]}">
<separator string="Your projects with OpenERP" colspan="4"/>
<field name="use_openerp" align="0.0" colspan="1"/>
<field name="already_using_openerp" align="0.0" colspan="1"/>
<field name="sell_openerp" align="0.0" colspan="1"/>
<field name="already_selling__openerp" align="0.0" colspan="1"/>
<separator colspan="4" string="You would like to know more about"/>
<field name="features" align="0.0" colspan="1"/>
<field name="training" align="0.0" colspan="1"/>
<field name="saas" align="0.0" colspan="1"/>
<field name="support" align="0.0" colspan="1"/>
<field name="partners_program" align="0.0" colspan="1"/>
<field name="other" align="0.0" colspan="1"/>
</group>
</group>
</group>
<group colspan="4" height="450" width="600">
<group colspan="4">
<field name="ebook" nolabel="1"/>
<label align="0.0" string="I want to receive the Open ERP ebook (PDF) by email." colspan="3"/>
<field name="updates" nolabel="1"/>
<label align="0.0" string="Yes, I would like to receive information updates from OpenERP." colspan="3"/>
</group>
<group colspan="4" attrs="{'invisible':[('ebook','=',False),('updates','=',False)]}">
<separator colspan="4" string="About You"/>
<field name="name" colspan="2" attrs="{'required':[('ebook','=',True),('updates','=',True)]}"/>
<field name="job" colspan="2"/>
<field name="email" colspan="2" attrs="{'required':[('ebook','=',True),('updates','=',True)]}"/>
<field name="phone" colspan="2" attrs="{'required':[('ebook','=',True),('updates','=',True)]}"/>
<field name="total_employees" colspan="2"/>
<field name="industry" colspan="2"/>
</group>
<group colspan="4" attrs="{'invisible':[('ebook','=',False),('updates','=',False)]}">
<separator string="Your projects with OpenERP" colspan="4"/>
<field name="use_openerp" align="0.0" colspan="1"/>
<field name="already_using_openerp" align="0.0" colspan="1"/>
<field name="sell_openerp" align="0.0" colspan="1"/>
<field name="already_selling__openerp" align="0.0" colspan="1"/>
<separator colspan="4" string="You would like to know more about"/>
<field name="features" align="0.0" colspan="1"/>
<field name="training" align="0.0" colspan="1"/>
<field name="saas" align="0.0" colspan="1"/>
<field name="support" align="0.0" colspan="1"/>
<field name="partners_program" align="0.0" colspan="1"/>
<field name="other" align="0.0" colspan="1"/>
</group>
</group>
</group>
</data>
</field>
</record>
@@ -70,7 +70,7 @@
<record id="base_setup_contact_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_contact"/>
<field name="sequence">1</field>
<field name="sequence">5</field>
<field name="restart">never</field>
</record>
</data>
+1
View File
@@ -18,5 +18,6 @@
#
##############################################################################
import claim_delivery
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+2 -1
View File
@@ -21,7 +21,7 @@
"name" : "Claim from delivery",
"version" : "1.0",
"author" : "Tiny",
"category" : "Enterprise Specific Modules/Food Industries",
"category" : "Generic Modules/Inventory Control",
"depends" : ["base", "crm_claim", "stock"],
"init_xml" : [],
"demo_xml" : [],
@@ -31,5 +31,6 @@
"active": False,
"installable": True
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+5 -1
View File
@@ -24,6 +24,10 @@ from osv import fields, osv
class stock_picking(osv.osv):
_inherit = "stock.picking"
_columns = {
'partner_id': fields.related('address_id','partner_id',type='many2one', relation="res.partner", string="Partner"),
'partner_id': fields.related('address_id', 'partner_id', type='many2one', relation="res.partner", string="Partner"),
}
stock_picking()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -14,19 +14,11 @@
</field>
</record>
<act_window
id="action_claim_from_delivery"
name="Claim"
domain="[]"
target="current"
view_mode="form"
res_model="crm.claim"
src_model="stock.picking"/>
<record id="action_claim_from_delivery" model="ir.actions.act_window">
<field name="context">{'default_partner_address_id': address_id, 'default_partner_id': partner_id}</field>
</record>
<act_window id="action_claim_from_delivery" name="Claim"
domain="[]" target="current"
context="{'default_partner_address_id': address_id, 'default_partner_id': partner_id}"
view_mode="form" res_model="crm.claim"
src_model="stock.picking" />
</data>
</openerp>
+23 -3
View File
@@ -31,6 +31,13 @@ import collections
import binascii
import tools
CRM_LEAD_PENDING_STATES = (
crm.AVAILABLE_STATES[2][0], # Cancelled
crm.AVAILABLE_STATES[3][0], # Done
crm.AVAILABLE_STATES[4][0], # Pending
)
class crm_lead(osv.osv, crm_case):
""" CRM Lead Case """
_name = "crm.lead"
@@ -95,6 +102,10 @@ class crm_lead(osv.osv, crm_case):
return res
_columns = {
# Overridden from res.partner.address:
'partner_id': fields.many2one('res.partner', 'Partner', ondelete='set null',
select=True, help="Optional linked partner, usually after conversion of the lead"),
# From crm.case
'name': fields.char('Name', size=64),
'active': fields.boolean('Active', required=False),
@@ -168,6 +179,9 @@ and users"),
"""
res = super(crm_lead, self).case_open(cr, uid, ids, *args)
self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')})
for (id, name) in self.name_get(cr, uid, ids):
message = _('Lead ') + " '" + name + "' "+ _("is Open.")
self.log(cr, uid, id, message)
return res
def case_close(self, cr, uid, ids, *args):
@@ -180,6 +194,9 @@ and users"),
"""
res = super(crm_lead, self).case_close(cr, uid, ids, args)
self.write(cr, uid, ids, {'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')})
for (id, name) in self.name_get(cr, uid, ids):
message = _('Lead ') + " '" + name + "' "+ _("is Closed.")
self.log(cr, uid, id, message)
return res
def convert_opportunity(self, cr, uid, ids, context=None):
@@ -276,7 +293,10 @@ and users"),
vals.update(res)
res = self.create(cr, uid, vals, context)
message = _('A Lead created') + " '" + subject + "' " + _("from Mailgate.")
self.log(cr, uid, res, message)
attachents = msg.get('attachments', [])
for attactment in attachents or []:
data_attach = {
@@ -325,8 +345,8 @@ and users"),
# previous state, so we have to loop:
for case in self.browse(cr, uid, ids, context=context):
values = dict(vals)
if case.state == crm.AVAILABLE_STATES[4][0]: #pending
values.update(state=crm.AVAILABLE_STATES[1][0]) #open
if case.state in CRM_LEAD_PENDING_STATES:
values.update(state=crm.AVAILABLE_STATES[1][0]) #re-open
res = self.write(cr, uid, [case.id], values, context=context)
return res
+2 -3
View File
@@ -43,16 +43,15 @@
<group colspan="4" col="7">
<field name="name" required="1" string="Name"/>
<field name="priority"/>
<field name="date_deadline"/>
<button
name="convert_opportunity"
string="Convert to Opportunity"
help="Convert to Opportunity"
icon="gtk-index"
colspan="2"
type="object"/>
<newline />
<field name="section_id" colspan="1"
widget="selection" />
<field name="section_id" widget="selection" />
<field name="user_id" />
<field name="stage_id" widget="selection"
domain="[('object_id.model', '=', 'crm.lead')]" />
+6
View File
@@ -65,6 +65,9 @@ class crm_opportunity(osv.osv):
"""
res = super(crm_opportunity, self).case_close(cr, uid, ids, args)
self.write(cr, uid, ids, {'probability' : 100.0, 'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')})
for (id, name) in self.name_get(cr, uid, ids):
message = _('Opportunity ') + " '" + name + "' "+ _("is Won.")
self.log(cr, uid, id, message)
return res
def case_cancel(self, cr, uid, ids, *args):
@@ -77,6 +80,9 @@ class crm_opportunity(osv.osv):
"""
res = super(crm_opportunity, self).case_cancel(cr, uid, ids, args)
self.write(cr, uid, ids, {'probability' : 0.0})
for (id, name) in self.name_get(cr, uid, ids):
message = _('Opportunity ') + " '" + name + "' "+ _("is Lost.")
self.log(cr, uid, id, message)
return res
def case_open(self, cr, uid, ids, *args):
+1 -1
View File
@@ -200,7 +200,7 @@
<field name="model">crm.lead</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Opportunities" colors="blue:state=='pending';grey:state in ('cancel', 'done');red:date_deadline &lt; current_date">
<tree string="Opportunities" colors="blue:state=='pending';grey:state in ('cancel', 'done');red:date_deadline and (date_deadline &lt; current_date)">
<field name="date_deadline" invisible="1"/>
<field name="create_date"/>
<field name="name" string="Opportunity"/>
+195 -193
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -51,7 +51,7 @@ class crm_lead_report(osv.osv):
for case in self.browse(cr, uid, ids, context):
if field_name != 'avg_answers':
state = field_name[5:]
cr.execute("select count(id) from crm_opportunity where \
cr.execute("select count(id) from crm_lead where \
section_id =%s and state='%s'"%(case.section_id.id, state))
state_cases = cr.fetchone()[0]
perc_state = (state_cases / float(case.nbr)) * 100
+15 -2
View File
@@ -41,12 +41,25 @@
<field name="arch" type="xml">
<graph orientation="vertical" string="Leads Analysis" type="bar">
<field name="stage_id"/>
<field name="planned_revenue" operator="+"/>
<field name="nbr" operator="+"/>
<field group="True" name="user_id"/>
</graph>
</field>
</record>
<record id="view_report_crm_opportunity_graph" model="ir.ui.view">
<field name="name">crm.opportunity.report.graph</field>
<field name="model">crm.lead.report</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph orientation="vertical" string="Leads Analysis" type="bar">
<field name="stage_id"/>
<field name="planned_revenue" operator="+"/>
<field group="True" name="user_id"/>
</graph>
</field>
</record>
<!-- Leads by user and section Search View -->
<record id="view_report_crm_lead_filter" model="ir.ui.view">
@@ -208,7 +221,7 @@
<record model="ir.actions.act_window.view" id="action_report_crm_opportunity_graph">
<field name="sequence" eval="2"/>
<field name="view_mode">graph</field>
<field name="view_id" ref="view_report_crm_lead_graph"/>
<field name="view_id" ref="view_report_crm_opportunity_graph"/>
<field name="act_window_id" ref="action_report_crm_opportunity"/>
</record>
+1 -2
View File
@@ -53,7 +53,7 @@ class crm_phonecall_report(osv.osv):
for case in self.browse(cr, uid, ids, context):
if field_name != 'avg_answers':
state = field_name[5:]
cr.execute("select count(*) from crm_opportunity where \
cr.execute("select count(*) from crm_lead where \
section_id =%s and state='%s'"%(case.section_id.id, state))
state_cases = cr.fetchone()[0]
perc_state = (state_cases / float(case.nbr)) * 100
@@ -143,7 +143,6 @@ class crm_phonecall_report(osv.osv):
extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open
from
crm_phonecall c
where c.categ_id in (select res_id from ir_model_data where (name = 'categ_phone1' or name ='categ_phone2') and model = 'crm.case.categ')
)""")
crm_phonecall_report()
+3 -1
View File
@@ -86,7 +86,8 @@ class crm_lead2opportunity(osv.osv_memory):
if lead.partner_id:
msg_ids = [ x.id for x in lead.message_ids]
self.pool.get('mailgate.message').write(cr, uid, msg_ids, {'partner_id': lead.partner_id.id}, context=context)
message = _('Lead ') + " '" + lead.name + "' "+ _("is converted to Opportunity.")
self.log(cr, uid, lead.id, message)
value = {
'name': _('Opportunity'),
'view_type': 'form',
@@ -99,6 +100,7 @@ class crm_lead2opportunity(osv.osv_memory):
'type': 'ir.actions.act_window',
'search_view_id': res['res_id']
}
return value
_columns = {
+1 -1
View File
@@ -103,7 +103,7 @@ class crm_send_new_email2(osv.osv_memory):
ref_id = hist.ref_id
case = model_pool.browse(cr, uid, res_id)
emails = [obj.email_to]
email_cc = (obj.email_cc or '').split(',')
email_cc = obj.email_cc and obj.email_cc.split(',') or ''
emails = filter(None, emails)
body = obj.text
+3 -1
View File
@@ -76,7 +76,9 @@ class crm_helpdesk(osv.osv, crm.crm_case):
help='The state is set to \'Draft\', when a case is created.\
\nIf the case is in progress the state is set to \'Open\'.\
\nWhen the case is over, the state is set to \'Done\'.\
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('model','=',_name)]),
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('model','=',_name)]),
}
_defaults = {
+7 -2
View File
@@ -1,6 +1,11 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_event_type","event.type","model_event_type","event.group_event_subscriber",1,0,0,0
"access_event_type_manager","event.type manager","model_event_type","event.group_event_manager",1,1,1,1
"access_event_event","event.event","model_event_event","event.group_event_subscriber",1,1,1,1
"access_event_registration","event.registration","model_event_registration","event.group_event_subscriber",1,1,1,1
"access_event_event","event.event","model_event_event","event.group_event_subscriber",1,1,1,0
"access_event_registration","event.registration","model_event_registration","event.group_event_subscriber",1,1,1,0
"access_report_event_registration","report.event.registration","model_report_event_registration","event.group_event_subscriber",1,0,0,0
"access_event_event_manager","event.event manager","model_event_event","event.group_event_manager",1,1,1,1
"access_event_registration_manager","event.registration manager","model_event_registration","event.group_event_manager",1,1,1,1
"access_crm_case_section_manager","crm.case.section manager","crm.model_crm_case_section","event.group_event_manager",1,1,1,1
"access_product_product","product.product.product manager","product.model_product_product","event.group_event_manager",1,1,1,1
"access_report_event_registration","report.event.registration","model_report_event_registration","event.group_event_manager",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_event_type event.type model_event_type event.group_event_subscriber 1 0 0 0
3 access_event_type_manager event.type manager model_event_type event.group_event_manager 1 1 1 1
4 access_event_event event.event model_event_event event.group_event_subscriber 1 1 1 1 0
5 access_event_registration event.registration model_event_registration event.group_event_subscriber 1 1 1 1 0
6 access_report_event_registration report.event.registration model_report_event_registration event.group_event_subscriber 1 0 0 0
7 access_event_event_manager event.event manager model_event_event event.group_event_manager 1 1 1 1
8 access_event_registration_manager event.registration manager model_event_registration event.group_event_manager 1 1 1 1
9 access_crm_case_section_manager crm.case.section manager crm.model_crm_case_section event.group_event_manager 1 1 1 1
10 access_product_product product.product.product manager product.model_product_product event.group_event_manager 1 1 1 1
11 access_report_event_registration report.event.registration model_report_event_registration event.group_event_manager 1 1 1 1
+30
View File
@@ -277,6 +277,8 @@ class hr_applicant(osv.osv, crm.crm_case):
vals.update(res)
res = self.create(cr, uid, vals, context)
message = _('A Job Request created') + " '" + subject + "' " + _("from Mailgate.")
self.log(cr, uid, res, message)
attachents = msg.get('attachments', [])
for attactment in attachents or []:
@@ -338,6 +340,34 @@ class hr_applicant(osv.osv, crm.crm_case):
@param **args: Return Dictionary of Keyword Value
"""
return True
def case_open(self, cr, uid, ids, *args):
"""
@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 case's Ids
@param *args: Give Tuple Value
"""
res = super(hr_applicant, self).case_open(cr, uid, ids, *args)
for (id, name) in self.name_get(cr, uid, ids):
message = _('Job request for') + " '" + name + "' "+ _("is Open.")
self.log(cr, uid, id, message)
return res
def case_close(self, cr, uid, ids, *args):
"""
@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 case's Ids
@param *args: Give Tuple Value
"""
res = super(hr_applicant, self).case_close(cr, uid, ids, *args)
for (id, name) in self.name_get(cr, uid, ids):
message = _('Applicant ') + " '" + name + "' "+ _("is Hired.")
self.log(cr, uid, id, message)
return res
hr_applicant()
+1
View File
@@ -5,3 +5,4 @@
"access_idea_vote_stat","idea.vote.stat","model_idea_vote_stat","base.group_user",1,0,0,0
"access_idea_category_system","idea.category system","model_idea_category","base.group_system",1,1,1,1
"access_idea_comment","idea.comment","model_idea_comment","base.group_system",1,1,1,1
"access_idea_comment_user","idea.comment","model_idea_comment","base.group_user",1,1,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
5 access_idea_vote_stat idea.vote.stat model_idea_vote_stat base.group_user 1 0 0 0
6 access_idea_category_system idea.category system model_idea_category base.group_system 1 1 1 1
7 access_idea_comment idea.comment model_idea_comment base.group_system 1 1 1 1
8 access_idea_comment_user idea.comment model_idea_comment base.group_user 1 1 1 0
+5 -18
View File
@@ -44,9 +44,6 @@
!record {model: res.users, id: res_users_user1}:
company_id: base.main_company
context_lang: en_US
groups_id:
- base.group_system
- base.group_user
login: user2
name: user2
password: user2
@@ -54,16 +51,12 @@
- |
In order to post vote I connect as user1 and open the idea page
I click on "Submit Vote" wizard button and vote the idea as "Normal"
-
!record {model: idea.post.vote, id: idea_post_vote_0}:
vote: 50
- |
Now I click on "Post" button of this wizard.
-
!python {model: idea.post.vote}: |
uid = ref('res_users_user0')
self.do_vote(cr, uid, [ref("idea_post_vote_0")], {'active_ids': [ref('idea_idea_0')]})
uid = ref('res_users_user0')
new_id = self.create(cr, uid, {'vote': 50}, {"active_ids": [ref("idea_idea_0")]})
self.do_vote(cr, uid, [new_id], {"active_ids": [ref("idea_idea_0")]})
- |
To add other vote I connect as user2 and open the idea page.
@@ -72,16 +65,11 @@
and put comment "We can learn many things from technical presentation".
-
!record {model: idea.post.vote, id: idea_post_vote_1}:
vote: 100
note: 'We can learn many things from technical presentation'
- |
I click on "Post" button of this wizard.
-
!python {model: idea.post.vote}: |
uid = ref('res_users_user1')
self.do_vote(cr, uid, [ref("idea_post_vote_1")], {'active_ids': [ref('idea_idea_0')]})
new_id = self.create(cr, uid, {'vote': 100, 'note': 'We can learn many things from technical presentation'}, {"active_ids": [ref("idea_idea_0")]})
self.do_vote(cr, uid, [new_id], {'active_ids': [ref('idea_idea_0')]})
- |
I can see that the Average score changed in "Average score" field with value 75
@@ -99,4 +87,3 @@
-
!assert {model: idea.idea, id: idea_idea_0}:
- state == 'close'
+77 -81
View File
@@ -1,88 +1,84 @@
<openerp>
<data noupdate="1">
<record id="bank" model="res.partner">
<field name="comment">My bank !</field>
<field name="ref">banq</field>
<field name="name">Banque</field>
<field name="category_id" model="res.partner.category" search="[('name','=','Partenaire')]"/>
</record>
<record id="res_partner_address_bank1" model="res.partner.address">
<field name="fax">+41 31 622 13 00</field>
<field name="name">Marc Dufour</field>
<field name="zip">1015</field>
<field name="city">Lausanne</field>
<field name="partner_id" ref="bank"/>
<field name="country_id" model="res.country" search="[('code','=','ch')]"/>
<field name="title">M.</field>
<field name="email">tinyerp@bank.com</field>
<field name="phone">+41 24 620 10 12</field>
<field name="street">PSE-C</field>
<field name="active">1</field>
<field name="type">default</field>
</record>
<record id="bank" model="res.partner">
<field name="comment">My bank !</field>
<field name="ref">banq</field>
<field name="name">Banque</field>
<field name="category_id" model="res.partner.category" search="[('name','=','Partenaire')]"/>
</record>
<record id="res_partner_address_bank1" model="res.partner.address">
<field name="fax">+41 31 622 13 00</field>
<field name="name">Marc Dufour</field>
<field name="zip">1015</field>
<field name="city">Lausanne</field>
<field name="partner_id" ref="bank"/>
<field name="country_id" model="res.country" search="[('code','=','ch')]"/>
<field name="email">tinyerp@bank.com</field>
<field name="phone">+41 24 620 10 12</field>
<field name="street">PSE-C</field>
<field name="active">1</field>
<field name="type">default</field>
</record>
<record id="prolibre" model="res.partner">
<field name="comment">Very good company!
They provides a very high quality service.</field>
<field name="ref">ProL</field>
<field name="website">http://camptocamp.com</field>
<field name="name">ProLibre</field>
<field name="category_id" model="res.partner.category" search="[('name','=','Partenaire')]"/>
</record>
<record id="prolibre" model="res.partner">
<field name="comment">Very good company!
They provides a very high quality service.</field>
<field name="ref">ProL</field>
<field name="website">http://camptocamp.com</field>
<field name="name">ProLibre</field>
<field name="category_id" model="res.partner.category" search="[('name','=','Partenaire')]"/>
</record>
<record id="camptocamp" model="res.partner">
<field name="comment">Very good company!
They provides a very high quality service.</field>
<field name="ref">c2c</field>
<field name="website">http://camptocamp.com</field>
<field name="name">camptocamp SA</field>
<field name="category_id" model="res.partner.category" search="[('name','=','Partenaire')]"/>
</record>
<!--
Resource: res.partner.address
-->
<record id="camptocamp" model="res.partner">
<field name="comment">Very good company!
They provides a very high quality service.</field>
<field name="ref">c2c</field>
<field name="website">http://camptocamp.com</field>
<field name="name">camptocamp SA</field>
<field name="category_id" model="res.partner.category" search="[('name','=','Partenaire')]"/>
</record>
<!--
Resource: res.partner.address
-->
<record id="res_partner_address_1" model="res.partner.address">
<field name="fax">+41 21 619 10 00</field>
<field name="name">Luc Maurer</field>
<field name="zip">1015</field>
<field name="city">Lausanne</field>
<field name="partner_id" ref="camptocamp"/>
<field name="country_id" model="res.country" search="[('code','=','ch')]"/>
<field name="title">M.</field>
<field name="email">tinyerp@camptocamp.com</field>
<field name="phone">+41 21 619 10 12</field>
<field name="street">PSE-A, EPFL</field>
<field name="active">1</field>
<field name="type">default</field>
</record>
<record id="res_partner_address_2" model="res.partner.address">
<field name="name">Gilbert Robert</field>
<field name="zip">1227</field>
<field name="city">Carouge</field>
<field name="partner_id" ref="prolibre"/>
<field name="country_id" model="res.country" search="[('code','=','ch')]"/>
<field name="title">M.</field>
<field name="email">info@prolibre.com</field>
<field name="phone">+41 22 3015383</field>
<field name="street">18, rue des Moraines </field>
<field name="active">1</field>
<field name="type">default</field>
</record>
<record id="res_partner_address_3" model="res.partner.address">
<field name="fax">+41 21 619 10 00</field>
<field name="name">Claude Philipona</field>
<field name="zip">1015</field>
<field name="city">Lausanne</field>
<field name="partner_id" ref="camptocamp"/>
<field name="country_id" model="res.country" search="[('name','=','Switzerland')]"/>
<field name="title">M.</field>
<field name="email">tinyerp@camptocamp.com</field>
<field name="phone">+41 21 619 10 12 </field>
<field name="street">PSE-A, EPFL</field>
<field name="active">1</field>
<field name="type">default</field>
</record>
</data>
<record id="res_partner_address_1" model="res.partner.address">
<field name="fax">+41 21 619 10 00</field>
<field name="name">Luc Maurer</field>
<field name="zip">1015</field>
<field name="city">Lausanne</field>
<field name="partner_id" ref="camptocamp"/>
<field name="country_id" model="res.country" search="[('code','=','ch')]"/>
<field name="email">tinyerp@camptocamp.com</field>
<field name="phone">+41 21 619 10 12</field>
<field name="street">PSE-A, EPFL</field>
<field name="active">1</field>
<field name="type">default</field>
</record>
<record id="res_partner_address_2" model="res.partner.address">
<field name="name">Gilbert Robert</field>
<field name="zip">1227</field>
<field name="city">Carouge</field>
<field name="partner_id" ref="prolibre"/>
<field name="country_id" model="res.country" search="[('code','=','ch')]"/>
<field name="email">info@prolibre.com</field>
<field name="phone">+41 22 3015383</field>
<field name="street">18, rue des Moraines </field>
<field name="active">1</field>
<field name="type">default</field>
</record>
<record id="res_partner_address_3" model="res.partner.address">
<field name="fax">+41 21 619 10 00</field>
<field name="name">Claude Philipona</field>
<field name="zip">1015</field>
<field name="city">Lausanne</field>
<field name="partner_id" ref="camptocamp"/>
<field name="country_id" model="res.country" search="[('name','=','Switzerland')]"/>
<field name="email">tinyerp@camptocamp.com</field>
<field name="phone">+41 21 619 10 12 </field>
<field name="street">PSE-A, EPFL</field>
<field name="active">1</field>
<field name="type">default</field>
</record>
</data>
</openerp>
+1 -2
View File
@@ -71,7 +71,6 @@
<field name="name">Journal d'extourne</field>
<field name="code">JVE</field>
<field name="type">sale</field>
<field name="refund_journal">True</field>
<field name="view_id" ref="account.account_journal_view"/>
<field name="sequence_id" ref="account.sequence_journal"/>
<field name="user_id" ref="base.user_root"/>
@@ -101,4 +100,4 @@
<field name="sequence_id" ref="account.sequence_journal"/>
</record>
</data>
</openerp>
</openerp>
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:55+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: membership
+6 -2
View File
@@ -757,9 +757,11 @@ class mrp_production(osv.osv):
new_parent_ids.append(final_product.id)
for new_parent_id in new_parent_ids:
stock_mov_obj.write(cr, uid, [raw_product.id], {'move_history_ids': [(4,new_parent_id)]})
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production', production_id, 'button_produce_done', cr)
message = _('Manufacturing order ') + " '" + production.name + "' "+ _("is finished.")
self.log(cr, uid, production_id, message)
return True
def _costs_generate(self, cr, uid, production):
@@ -925,9 +927,11 @@ class mrp_production(osv.osv):
'company_id': production.company_id.id,
})
wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr)
proc_ids.append(proc_id)
proc_ids.append(proc_id)
wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
self.write(cr, uid, [production.id], {'picking_id': picking_id, 'move_lines': [(6,0,moves)], 'state':'confirmed'})
message = _('Manufacturing order ') + " '" + production.name + "' "+ _("is confirmed.")
self.log(cr, uid, production.id, message)
return picking_id
def force_production(self, cr, uid, ids, *args):
+4 -1
View File
@@ -40,8 +40,11 @@ class procurement_order(osv.osv):
"""
properties = [x.id for x in procurement.property_ids]
bom_id = self.pool.get('mrp.bom')._bom_find(cr, uid, procurement.product_id.id, procurement.product_uom.id, properties)
if not bom_id:
if not bom_id:
cr.execute('update procurement_order set message=%s where id=%s', (_('No BoM defined for this product !'), procurement.id))
for (id, name) in self.name_get(cr, uid, procurement.id):
message = _('Procurement ') + " '" + name + "' "+ _("has an exception.") + _('No BoM defined for this product !')
self.log(cr, uid, id, message)
return False
return True
+6 -6
View File
@@ -69,7 +69,7 @@
location_dest_id: stock.stock_location_customers
location_id: stock.stock_location_stock
name: Pack of 24 Beers
product_id: mrp_bom_packofbeers0
product_id: product_product_packofbeers0
product_qty: 2.0
product_uom: product.product_uom_unit
move_type: direct
@@ -83,12 +83,12 @@
"active_id": ref("stock.menu_action_picking_tree"), }
)
- |
I check that my Picking of a "PAck of 24 beers" as been automatically
I check that my Picking of a "Pack of 24 beers" has been automatically
converted to a picking of 24 beers and a pack of beer, so that my
stock of beers remains exact.
-
!assert {model: stock.picking, id: picking_out}:
- len(move_ids) == 2
- move_ids[0].product_id.id <> move_ids[1].product_id.id
- move_ids[0].product_id.id in (ref('product_product_beers0'), ref('product_product_beerspack0'))
- move_ids[1].product_id.id in (ref('product_product_beers0'), ref('product_product_beerspack0'))
- len(move_lines) == 2
- move_lines[0].product_id.id <> move_lines[1].product_id.id
- move_lines[0].product_id.id in (ref('product_product_beers0'), ref('product_product_beerspack0'))
- move_lines[1].product_id.id in (ref('product_product_beers0'), ref('product_product_beerspack0'))
+1 -1
View File
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: multi_company
+1 -1
View File
@@ -250,7 +250,7 @@
country_id: base.in
partner_id: res_partner_microlinktechnologies0
street: Ash House, Ash Road
title: Ms.
title: base.res_partner_title_miss
-
I create product category .
-
+1 -1
View File
@@ -24,7 +24,7 @@ from osv import osv,fields
class company(osv.osv):
_inherit = 'res.company'
_columns = {
'schedule_range': fields.float('Scheduler Range', required=True,
'schedule_range': fields.float('Scheduler Range Days', required=True,
help="This is the time frame analysed by the scheduler when "\
"computing procurements. All procurements that are not between "\
"today and today+range are skipped for futur computation."),
@@ -3,7 +3,7 @@
<data>
<!--
Process
Process Node from where the Procurement flow starts
-->
<record id="process_process_procurementprocess0" model="process.process">
@@ -11,11 +11,6 @@
<field name="model_id" ref="procurement.model_procurement_order"/>
<field eval="1" name="active"/>
</record>
<!--
Process Node
-->
</data>
</openerp>
+8 -2
View File
@@ -331,6 +331,8 @@ class procurement_order(osv.osv):
})
move_obj.action_confirm(cr, uid, [id], context=context)
self.write(cr, uid, [procurement.id], {'move_id': id, 'close_move': 1})
message = _('Procurement ') + " '" + procurement.name + "' "+ _("is running.")
self.log(cr, uid, procurement.id, message)
self.write(cr, uid, ids, {'state': 'confirmed', 'message': ''})
return True
@@ -355,8 +357,10 @@ class procurement_order(osv.osv):
if not (procurement.move_id.state in ('done','assigned','cancel')):
ok = ok and self.pool.get('stock.move').action_assign(cr, uid, [id])
cr.execute('select count(id) from stock_warehouse_orderpoint where product_id=%s', (procurement.product_id.id,))
if not cr.fetchone()[0]:
if not cr.fetchone()[0]:
cr.execute('update procurement_order set message=%s where id=%s', (_('Not enough stock and no minimum orderpoint rule defined.'), procurement.id))
message = _('Procurement ') + " '" + procurement.name + "' "+ _("has an exception.") + _('Not enough stock and no minimum orderpoint rule defined.')
self.log(cr, uid, procurement.id, message)
return ok
def action_produce_assign_service(self, cr, uid, ids, context={}):
@@ -434,6 +438,8 @@ class procurement_order(osv.osv):
if procurement.move_id:
if procurement.close_move and (procurement.move_id.state <> 'done'):
move_obj.action_done(cr, uid, [procurement.move_id.id])
message = _('Procurement ') + " '" + procurement.name + "' "+ _("is done.")
self.log(cr, uid, procurement.id, message)
res = self.write(cr, uid, ids, {'state': 'done', 'date_close': time.strftime('%Y-%m-%d')})
wf_service = netsvc.LocalService("workflow")
for id in ids:
@@ -472,7 +478,7 @@ class stock_warehouse_orderpoint(osv.osv):
help="When the virtual stock goes belong the Min Quantity, Open ERP generates "\
"a procurement to bring the virtual stock to the Max Quantity."),
'product_max_qty': fields.float('Max Quantity', required=True,
help="When the virtual stock goes belong the Mix Quantity, Open ERP generates "\
help="When the virtual stock goes belong the Max Quantity, Open ERP generates "\
"a procurement to bring the virtual stock to the Max Quantity."),
'qty_multiple': fields.integer('Qty Multiple', required=True,
help="The procurement quantity will by rounded up to this multiple."),
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product
+3 -3
View File
@@ -127,9 +127,9 @@
</group>
<group colspan="2" col="2" name="store">
<separator string="Storage Localisation" colspan="2"/>
<field name="loc_rack"/>
<field name="loc_row"/>
<field name="loc_case"/>
<field name="loc_rack" attrs="{'readonly':[('type','=','service')]}" />
<field name="loc_row" attrs="{'readonly':[('type','=','service')]}"/>
<field name="loc_case" attrs="{'readonly':[('type','=','service')]}"/>
</group>
<group colspan="2" col="2" name="misc" groups="base.group_extended">
@@ -0,0 +1,47 @@
# Estonian translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-03-25 12:11+0000\n"
"PO-Revision-Date: 2010-07-08 08:45+0000\n"
"Last-Translator: lyyser <logard.1961@gmail.com>\n"
"Language-Team: Estonian <et@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: product_visible_discount
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "Vigane XML vaate arhitektuurile!"
#. module: product_visible_discount
#: model:ir.module.module,description:product_visible_discount.module_name_translation
msgid ""
"\n"
" This module lets you calculate discounts on Sale Order lines and Invoice "
"lines base on the partner's pricelist.\n"
" To this end, a new check box named \"Visible Discount\" is added to the "
"pricelist form.\n"
" Example:\n"
" For the product PC1 and the partner \"Asustek\": if listprice=450, "
"and the price calculated using Asustek's pricelist is 225\n"
" If the check box is checked, we will have on the sale order line: "
"Unit price=450, Discount=50,00, Net price=225\n"
" If the check box is unchecked, we will have on Sale Order and "
"Invoice lines: Unit price=225, Discount=0,00, Net price=225\n"
" "
msgstr ""
#. module: product_visible_discount
#: model:ir.module.module,shortdesc:product_visible_discount.module_name_translation
#: field:product.pricelist,visible_discount:0
msgid "Visible Discount"
msgstr "Nähtavad soodus"
+15
View File
@@ -174,6 +174,9 @@ class project(osv.osv):
def set_done(self, cr, uid, ids, context=None):
self.write(cr, uid, ids, {'state':'close'}, context=context)
for (id, name) in self.name_get(cr, uid, ids):
message = _('Project ') + " '" + name + "' "+ _("is Closed.")
self.log(cr, uid, id, message)
return True
def set_cancel(self, cr, uid, ids, context=None):
@@ -190,6 +193,9 @@ class project(osv.osv):
def reset_project(self, cr, uid, ids, context=None):
res = self.setActive(cr, uid, ids, value=True, context=context)
for (id, name) in self.name_get(cr, uid, ids):
message = _('Project ') + " '" + name + "' "+ _("is Open.")
self.log(cr, uid, id, message)
return res
def copy(self, cr, uid, id, default={}, context=None):
@@ -434,6 +440,8 @@ class task(osv.osv):
elif project.warn_manager:
task_id = ids[0]
mail_send = True
message = _('Task ') + " '" + task.name + "' "+ _("is Done.")
self.log(cr, uid, task.id, message)
self.write(cr, uid, [task.id], {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0})
for parent_id in task.parent_ids:
if parent_id.state in ('pending','draft'):
@@ -494,6 +502,8 @@ class task(osv.osv):
'ref_doc1': 'project.task,%d' % task.id,
'ref_doc2': 'project.project,%d' % project.id,
})
message = _('Task ') + " '" + task.name + "' "+ _("is Cancelled.")
self.log(cr, uid, task.id, message)
self.write(cr, uid, [task.id], {'state': 'cancelled', 'remaining_hours':0.0})
return True
@@ -501,6 +511,8 @@ class task(osv.osv):
tasks= self.browse(cr,uid,ids)
for t in tasks:
self.write(cr, uid, [t.id], {'state': 'open'})
message = _('Task ') + " '" + t.name + "' "+ _("is Open.")
self.log(cr, uid, t.id, message)
return True
def do_draft(self, cr, uid, ids, *args):
@@ -510,6 +522,9 @@ class task(osv.osv):
def do_pending(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state': 'pending'})
for (id, name) in self.name_get(cr, uid, ids):
message = _('Task ') + " '" + name + "' "+ _("is Pending.")
self.log(cr, uid, id, message)
return True
def next_type(self, cr, uid, ids, *args):
+2 -1
View File
@@ -142,8 +142,9 @@
<field name="type">tree</field>
<field name="field_parent">child_ids</field>
<field name="arch" type="xml">
<tree colors="red:date&lt;current_date and state in ('open');blue:state in ('draft','pending');grey: state in ('close','cancelled')" string="Projects">
<tree colors="red:date and (date&lt;current_date) and (state in ('open'));blue:state in ('draft','pending');grey: state in ('close','cancelled')" string="Projects">
<field name="sequence" invisible="1"/>
<field name="date" invisible="1"/>
<field name="name" string="Project Name"/>
<field name="user_id" string="Project Manager"/>
<field name="partner_id" string="Partner"/>
@@ -82,12 +82,13 @@ class project_task_delegate(osv.osv_memory):
'prefix': _get_prefix,
'new_task_description': _get_new_desc,
'state': 'pending',
}
}
def validate(self, cr, uid, ids, context=None):
if context is None:
context = {}
task_obj = self.pool.get('project.task')
user_obj = self.pool.get('res.users')
delegate_data = self.read(cr, uid, ids, context=context)[0]
task = task_obj.browse(cr, uid, context['active_id'], context=context)
newname = delegate_data['prefix'] or ''
@@ -111,6 +112,9 @@ class project_task_delegate(osv.osv_memory):
task_obj.do_pending(cr, uid, [task.id])
else:
task_obj.do_close(cr, uid, [task.id])
delegrate_user = user_obj.browse(cr, uid, delegate_data['user_id'], context=context)
message = _('Task ') + " '" + delegate_data['name'] + "' "+ _("is Delegated to User:") +" '"+ delegrate_user.name +"' "
self.log(cr, uid, task.id, message)
return {}
project_task_delegate()
+20
View File
@@ -52,8 +52,26 @@ class project_issue(osv.osv, crm.crm_case):
res = super(project_issue, self).case_open(cr, uid, ids, *args)
self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')})
for (id, name) in self.name_get(cr, uid, ids):
message = _('Issue ') + " '" + name + "' "+ _("is Open.")
self.log(cr, uid, id, message)
return res
def case_close(self, cr, uid, ids, *args):
"""
@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 case's Ids
@param *args: Give Tuple Value
"""
res = super(project_issue, self).case_close(cr, uid, ids, *args)
for (id, name) in self.name_get(cr, uid, ids):
message = _('Issue ') + " '" + name + "' "+ _("is Closed.")
self.log(cr, uid, id, message)
return res
def _compute_day(self, cr, uid, ids, fields, args, context=None):
if context is None:
context = {}
@@ -319,6 +337,8 @@ class project_issue(osv.osv, crm.crm_case):
if res:
vals.update(res)
res = self.create(cr, uid, vals, context)
message = _('An Issue created') + " '" + subject + "' " + _("from Mailgate.")
self.log(cr, uid, res, message)
self.convert_to_bug(cr, uid, [res], context=context)
attachents = msg.get('attachments', [])
@@ -86,6 +86,11 @@ class project_phase(osv.osv):
return False
return True
def _get_default_uom_id(self, cr, uid):
model_data_obj = self.pool.get('ir.model.data')
model_data_id = model_data_obj._get_id(cr, uid, 'product', 'uom_hour')
return model_data_obj.read(cr, uid, [model_data_id], ['res_id'])[0]['res_id']
_columns = {
'name': fields.char("Name", size=64, required=True),
'date_start': fields.datetime('Start Date', help="Starting Date of the phase"),
@@ -146,7 +151,7 @@ class project_phase(osv.osv):
cal_id = res.get('calendar_id', False) and res.get('calendar_id')[0] or False
if cal_id:
calendar_id = cal_id
default_uom_id = uom_obj.search(cr, uid, [('name', '=', 'Hour')], context=context)[0]
default_uom_id = self._get_default_uom_id(cr, uid)
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
work_times = cal_obj.interval_min_get(cr, uid, calendar_id, date_end, avg_hours or 0.0, resource_id and resource_id[0] or False)
dt_start = work_times[0][0].strftime('%Y-%m-%d %H:%M:%S')
@@ -169,7 +174,7 @@ class project_phase(osv.osv):
cal_id = res.get('calendar_id', False) and res.get('calendar_id')[0] or False
if cal_id:
calendar_id = cal_id
default_uom_id = uom_obj.search(cr, uid, [('name', '=', 'Hour')], context=context)[0]
default_uom_id = self._get_default_uom_id(cr, uid)
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
work_times = cal_obj.interval_get(cr, uid, calendar_id, date_start, avg_hours or 0.0, resource_id and resource_id[0] or False)
dt_end = work_times[-1][1].strftime('%Y-%m-%d %H:%M:%S')
@@ -192,7 +197,7 @@ class project_phase(osv.osv):
cal_id = resource_obj.browse(cr, uid, resource_id[0], context=context).calendar_id.id
if cal_id:
calendar_id = cal_id
default_uom_id = uom_obj.search(cr, uid, [('name', '=', 'Hour')])[0]
default_uom_id = self._get_default_uom_id(cr, uid)
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
# Change the date_start and date_end
@@ -81,7 +81,7 @@ class project_compute_phases(osv.osv_memory):
'vacation': tuple(leaves),
'efficiency': time_efficiency
})
default_uom_id = uom_obj.search(cr, uid, [('name','=','Hour')])[0]
default_uom_id = phase_obj._get_default_uom_id(cr, uid)
avg_hours = uom_obj._compute_qty(cr, uid, phase.product_uom.id, phase.duration, default_uom_id)
duration = str(avg_hours) + 'H'
# Create a new project for each phase
+1
View File
@@ -51,6 +51,7 @@ automatically created via sale orders.
'init_xml': [],
'update_xml': ['project_mrp_workflow.xml',
#'process/project_mrp_process.xml',
'project_mrp_view.xml'
],
'demo_xml': [],
'test': ['test/project_task_procurement.yml'],
+10 -4
View File
@@ -26,12 +26,16 @@ import tools
class procurement_order(osv.osv):
_name = "procurement.order"
_inherit = "procurement.order"
_columns = {
'task_id': fields.many2one('project.task', 'Task')
}
def action_produce_assign_service(self, cr, uid, ids, context=None):
if context is None:
context = {}
for procurement in self.browse(cr, uid, ids):
sline = self.pool.get('sale.order.line')
product_obj=self.pool.get('product.product')
content = ''
sale_order = self.pool.get('sale.order')
so_ref = procurement.name.split(':')[0]
@@ -69,6 +73,7 @@ class procurement_order(osv.osv):
self.write(cr, uid, [procurement.id], {'state': 'running'})
name_task = ('','')
planned_hours=0.0
if procurement.product_id.type == 'service':
proc_name = procurement.name
if procurement.origin == proc_name:
@@ -77,12 +82,12 @@ class procurement_order(osv.osv):
name_task = (procurement.origin, proc_name or '')
else:
name_task = (procurement.product_id.name or procurement.origin, procurement.name or '')
planned_hours= procurement.product_id.sale_delay +procurement.product_id. produce_delay
task_id = self.pool.get('project.task').create(cr, uid, {
'name': '%s:%s' % name_task,
'date_deadline': procurement.date_planned,
'planned_hours': procurement.product_qty,
'remaining_hours': procurement.product_qty,
'planned_hours':planned_hours,
'remaining_hours': planned_hours,
'user_id': procurement.product_id.product_manager.id,
'notes': "b"+(l and l.order_id.note or ''),
'procurement_id': procurement.id,
@@ -93,7 +98,8 @@ class procurement_order(osv.osv):
'company_id': procurement.company_id.id,
'project_id': project_id,
},context=context)
self.write(cr, uid, [procurement.id],{'task_id':task_id})
product_obj.write(cr,uid,[procurement.product_id.id],{'user_id':uid,'project_id':project_id})
return task_id
procurement_order()
+8
View File
@@ -48,5 +48,13 @@ class project_task(osv.osv):
return True
project_task()
class product_product(osv.osv):
_inherit = "product.product"
_columns = {
'user_id': fields.many2one('res.users', 'Responsible', ondelete='set null',help='Project Manager'),
'project_id': fields.many2one('project.project', 'Project', ondelete='set null',)
}
product_product()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+31
View File
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_procurement_task_form" model="ir.ui.view">
<field name="name">procurement.procurement.form.view.inherit</field>
<field name="model">procurement.order</field>
<field name="type">form</field>
<field name="inherit_id" ref="procurement.procurement_form_view"/>
<field name="arch" type="xml">
<field name="close_move" position="after">
<field name="task_id"/>
</field>
</field>
</record>
<record id="view_product_task_form" model="ir.ui.view">
<field name="name">product.form.view.inherit</field>
<field name="model">product.product</field>
<field name="type">form</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<field name="company_id" position="after">
<field name="user_id" attrs="{'readonly':[('type','!=','service')]}"/>
<field name="project_id" attrs="{'readonly':[('type','!=','service')]}" />
</field>
</field>
</record>
</data>
</openerp>
-1
View File
@@ -103,7 +103,6 @@
<record id="trans_confirmed_router" model="workflow.transition">
<field name="act_from" ref="act_confirmed"/>
<field name="act_to" ref="act_router"/>
<field name="signal">purchase_approve</field>
</record>
<record id="trans_router_picking" model="workflow.transition">
<field name="act_from" ref="act_router"/>
@@ -26,3 +26,9 @@
"access_res_partner_address_purchase_user","res.partner.address purchase","base.model_res_partner_address","group_purchase_user",1,0,0,0
"access_account_journal","account.journal","account.model_account_journal","purchase.group_purchase_user",1,1,1,0
"access_account_journal_manager","account.journal","account.model_account_journal","purchase.group_purchase_manager",1,1,1,1
"access_account_period","account.period","account.model_account_period","purchase.group_purchase_user",1,0,0,0
"access_account_fiscalyear","account.fiscalyear","account.model_account_fiscalyear","purchase.group_purchase_user",1,0,0,0
"access_account_move","account.move","account.model_account_move","purchase.group_purchase_user",1,1,1,1
"access_account_move_line","account.move.line","account.model_account_move_line","purchase.group_purchase_user",1,1,1,1
"access_account_analytic_line","account.analytic.line","account.model_account_analytic_line","purchase.group_purchase_user",1,1,1,1
"access_account_move_reconcile","account.move.reconcile","account.model_account_move_reconcile","purchase.group_purchase_user",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
26 access_res_partner_address_purchase_user res.partner.address purchase base.model_res_partner_address group_purchase_user 1 0 0 0
27 access_account_journal account.journal account.model_account_journal purchase.group_purchase_user 1 1 1 0
28 access_account_journal_manager account.journal account.model_account_journal purchase.group_purchase_manager 1 1 1 1
29 access_account_period account.period account.model_account_period purchase.group_purchase_user 1 0 0 0
30 access_account_fiscalyear account.fiscalyear account.model_account_fiscalyear purchase.group_purchase_user 1 0 0 0
31 access_account_move account.move account.model_account_move purchase.group_purchase_user 1 1 1 1
32 access_account_move_line account.move.line account.model_account_move_line purchase.group_purchase_user 1 1 1 1
33 access_account_analytic_line account.analytic.line account.model_account_analytic_line purchase.group_purchase_user 1 1 1 1
34 access_account_move_reconcile account.move.reconcile account.model_account_move_reconcile purchase.group_purchase_user 1 1 1 1
@@ -39,7 +39,7 @@ class purchase_requisition(osv.osv):
'exclusive': fields.selection([('exclusive','Purchase Tender (exclusive)'),('multiple','Multiple Requisitions')],'Requisition Type', required=True, help="Purchase Tender (exclusive):On the confirmation of a purchase order, it cancels the remaining purchase order.Multiple Requisitions:It allows to have multiple purchase orders.On confirmation of a purchase order it does not cancel the remaining orders"""),
'description': fields.text('Description'),
'company_id': fields.many2one('res.company', 'Company', required=True),
'purchase_ids' : fields.one2many('purchase.order','requisition_id','Purchase Orders'),
'purchase_ids' : fields.one2many('purchase.order','requisition_id','Purchase Orders',states={'done': [('readonly', True)]}),
'line_ids' : fields.one2many('purchase.requisition.line','requisition_id','Products to Purchase',states={'done': [('readonly', True)]}),
'state': fields.selection([('draft','Draft'),('in_progress','In Progress'),('cancel','Cancelled'),('done','Done')], 'State', required=True)
}
@@ -41,7 +41,6 @@
<field name="origin"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
<notebook colspan="4">
<page string="Products">
<field name="line_ids" colspan="4" nolabel="1">
@@ -83,7 +82,8 @@
<separator colspan="4" string=""/>
<group col="8" colspan="4">
<label colspan="6" string=""/>
<button name="%(action_purchase_requisition_partner)d" string="Requests for Quotation" type="action" icon="gtk-execute" />
<button name="%(action_purchase_requisition_partner)d" string="Requests for Quotation" type="action" icon="gtk-execute"
attrs="{'readonly': [('state', '=', 'done')]}" />
</group>
</page>
<page string="Notes">
+3 -17
View File
@@ -88,26 +88,12 @@ class report_intrastat(osv.osv):
else 0
end) as value,
sum(
case when uom.category_id != puom.category_id then pt.weight_net * inv_line.quantity
else
case when uom.factor_inv_data > 0
then
pt.weight_net * inv_line.quantity * uom.factor_inv_data
else
pt.weight_net * inv_line.quantity / uom.factor
end
end
case when uom.category_id != puom.category_id then (pt.weight_net * inv_line.quantity)
else (pt.weight_net * inv_line.quantity * uom.factor) end
) as weight,
sum(
case when uom.category_id != puom.category_id then inv_line.quantity
else
case when uom.factor_inv_data > 0
then
inv_line.quantity * uom.factor_inv_data
else
inv_line.quantity / uom.factor
end
end
else (inv_line.quantity * uom.factor) end
) as supply_units,
inv.currency_id as currency_id,
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-08 03:50+0000\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
+3 -1
View File
@@ -98,7 +98,7 @@ class crm_make_sale(osv.osv_memory):
raise osv.except_osv(_('Data Insufficient!'),_('Customer has no addresses defined!'))
vals = {
'origin': 'CRM-Opportunity:%s' % str(case.id),
'origin': 'Opportunity:%s' % str(case.id),
'section_id': case.section_id and case.section_id.id or False,
'picking_policy': make.picking_policy,
'shop_id': make.shop_id.id,
@@ -129,6 +129,8 @@ class crm_make_sale(osv.osv_memory):
case_obj.write(cr, uid, [case.id], {'ref': 'sale.order,%s' % new_id})
new_ids.append(new_id)
message = _('Opportunity ') + " '" + case.name + "' "+ _("is converted to Sales Quotation.")
self.log(cr, uid, case.id, message)
if make.close:
case_obj.case_close(cr, uid, data)
+1 -1
View File
@@ -19,7 +19,7 @@
#
##############################################################################
import sale
import sale_order_dates
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

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