Raphaël Valyi
2010-07-09 11:38:43 -03:00
96 changed files with 2028 additions and 1358 deletions
+50 -11
View File
@@ -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:
@@ -719,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()
@@ -2385,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
@@ -2495,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:
@@ -2532,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
+1 -1
View File
@@ -159,7 +159,7 @@ class account_bank_statement(osv.osv):
'period_id': _get_period,
}
def button_confirm(self, cr, uid, ids, context={}):
def button_confirm_bank(self, cr, uid, ids, context={}):
done = []
res_currency_obj = self.pool.get('res.currency')
res_users_obj = self.pool.get('res.users')
+57 -22
View File
@@ -67,19 +67,25 @@ class account_cash_statement(osv.osv):
_inherit = 'account.bank.statement'
def _get_starting_balance(self, cr, uid, ids, name, arg, context=None):
def _get_starting_balance(self, cr, uid, ids, context=None):
""" Find starting balance "
""" Find starting balance
@param name: Names of fields.
@param arg: User defined arguments
@return: Dictionary of values.
"""
"""
res ={}
for statement in self.browse(cr, uid, ids):
amount_total=0.0
if statement.journal_id.type not in('cash'):
continue
for line in statement.starting_details_ids:
amount_total+= line.pieces * line.number
res[statement.id]=amount_total
res[statement.id] = {
'balance_start':amount_total
}
return res
def _balance_end_cash(self, cr, uid, ids, name, arg, context=None):
@@ -116,7 +122,7 @@ class account_cash_statement(osv.osv):
""" To get default journal for the object"
@param name: Names of fields.
@return: journal
"""
"""
company_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.id
journal = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', company_id)])
if journal:
@@ -166,11 +172,10 @@ class account_cash_statement(osv.osv):
company_id = company_pool.search(cr, uid, [])[0]
return company_id
_columns = {
'company_id':fields.many2one('res.company', 'Company', required=False),
'journal_id': fields.many2one('account.journal', 'Journal', required=True),
'balance_start': fields.function(_get_starting_balance, store=True, method=True, string='Opening Balance', type='float',digits=(16,2), help="Opening balance based on cashBox"),
'balance_end_real': fields.float('Closing Balance', digits=(16,2), states={'confirm':[('readonly', True)]}, help="closing balance entered by the cashbox verifier"),
'state': fields.selection(
[('draft', 'Draft'),
@@ -178,7 +183,7 @@ class account_cash_statement(osv.osv):
('open','Open')], 'State', required=True, states={'confirm': [('readonly', True)]}, readonly="1"),
'total_entry_encoding':fields.function(_get_sum_entry_encoding, method=True, store=True, string="Cash Transaction", help="Total cash transactions"),
'closing_date':fields.datetime("Closed On"),
'balance_end': fields.function(_end_balance, method=True, store=True, string='Balance', help="Closing balance based on transactions"),
'balance_end': fields.function(_end_balance, method=True, store=True, string='Balance', help="Closing balance based on Opening Balance and Transactions"),
'balance_end_cash': fields.function(_balance_end_cash, method=True, store=True, string='Balance', help="Closing balance based on cashBox"),
'starting_details_ids': fields.one2many('account.cashbox.line', 'starting_id', string='Opening Cashbox'),
'ending_details_ids': fields.one2many('account.cashbox.line', 'ending_id', string='Closing Cashbox'),
@@ -205,8 +210,31 @@ class account_cash_statement(osv.osv):
for i in starting_details_ids:
if i and i[0] and i[1]:
i[0], i[1] = 0, 0
res = super(account_cash_statement, self).create(cr, uid, vals, context=context)
return res
res_id = super(account_cash_statement, self).create(cr, uid, vals, context=context)
res = self._get_starting_balance(cr, uid, [res_id])
for rs in res:
super(account_cash_statement, self).write(cr, uid, rs, res.get(rs))
return res_id
def write(self, cr, uid, ids, vals, context=None):
"""
Update redord(s) comes in {ids}, with new value comes as {vals}
return True on success, False otherwise
@param cr: cursor to database
@param user: id of current user
@param ids: list of record ids to be update
@param vals: dict of new values to be set
@param context: context arguments, like lang, time zone
@return: True on success, False otherwise
"""
super(account_cash_statement, self).write(cr, uid, ids, vals)
res = self._get_starting_balance(cr, uid, ids)
for rs in res:
super(account_cash_statement, self).write(cr, uid, rs, res.get(rs))
return True
def onchange_journal_id(self, cr, uid, statement_id, journal_id, context={}):
""" Changes balance start and starting details if journal_id changes"
@@ -285,7 +313,7 @@ class account_cash_statement(osv.osv):
self.write(cr, uid, ids, vals)
return True
def button_confirm(self, cr, uid, ids, context={}):
def button_confirm_cash(self, cr, uid, ids, context={}):
""" Check the starting and ending detail of statement
@return: True
@@ -296,20 +324,24 @@ class account_cash_statement(osv.osv):
account_move_obj = self.pool.get('account.move')
account_move_line_obj = self.pool.get('account.move.line')
account_bank_statement_line_obj = self.pool.get('account.bank.statement.line')
company_currency_id = res_users_obj.browse(cr, uid, uid, context=context).company_id.currency_id.id
for st in self.browse(cr, uid, ids, context):
self.write(cr, uid, [st.id], {'balance_end_real':st.balance_end})
st.balance_end_real = st.balance_end
if not st.state == 'open':
continue
if not self._equal_balance(cr, uid, ids, st, context):
raise osv.except_osv(_('Error !'), _('Cash balance is not matching with closing balance !'))
if not (abs((st.balance_end or 0.0) - st.balance_end_real) < 0.0001):
raise osv.except_osv(_('Error !'),
_('The statement balance is incorrect !\n') +
_('The expected balance (%.2f) is different than the computed one. (%.2f)') % (st.balance_end_real, st.balance_end))
raise osv.except_osv(_('Error !'), _('CashBox Balance is not matching with Calculated Balance !'))
# if not (abs((st.balance_end or 0.0) - st.balance_end_real) < 0.0001):
# raise osv.except_osv(_('Error !'),
# _('The statement balance is incorrect !\n') +
# _('The expected balance (%.2f) is different than the computed one. (%.2f)') % (st.balance_end_real, st.balance_end))
if (not st.journal_id.default_credit_account_id) \
or (not st.journal_id.default_debit_account_id):
raise osv.except_osv(_('Configuration Error !'),
@@ -435,7 +467,7 @@ class account_cash_statement(osv.osv):
if move.reconcile_id and move.reconcile_id.line_ids:
torec += map(lambda x: x.id, move.reconcile_id.line_ids)
#try:
if abs(move.reconcile_amount-move.amount)<0.0001:
writeoff_acc_id = False
@@ -447,13 +479,16 @@ class account_cash_statement(osv.osv):
account_move_line_obj.reconcile(cr, uid, torec, 'statement', writeoff_acc_id=writeoff_acc_id, writeoff_period_id=st.period_id.id, writeoff_journal_id=st.journal_id.id, context=context)
else:
account_move_line_obj.reconcile_partial(cr, uid, torec, 'statement', context)
#except:
# raise osv.except_osv(_('Error !'), _('Unable to reconcile entry "%s": %.2f') % (move.name, move.amount))
if st.journal_id.entry_posted:
account_move_obj.write(cr, uid, [move_id], {'state':'posted'})
done.append(st.id)
self.write(cr, uid, done, {'state':'confirm'}, context=context)
vals = {
'state':'confirm',
'closing_date':time.strftime("%Y-%m-%d %H:%M:%S")
}
self.write(cr, uid, done, vals, context=context)
return True
def button_cancel(self, cr, uid, ids, context={}):
+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"/>
+60 -46
View File
@@ -332,7 +332,7 @@
<group colspan="4" col="6">
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="type" on_change="onchange_type(type)"/>
<field name="type" on_change="onchange_type(type, currency)"/>
</group>
<notebook colspan="4">
<page string="General Information">
@@ -358,14 +358,11 @@
<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="Invoicing Data" colspan="4"/>
<field name="invoice_sequence_id" groups="base.group_extended"/>
@@ -430,6 +427,9 @@
<field name="balance_end_real"/>
<field name="balance_end"/>
<field name="state"/>
<button type="object" string="Open" name="button_open" states="draft" icon="terp-camera_test"/>
<button type="object" string="Confirm" name="button_confirm_bank" states="open" icon="terp-gtk-go-back-rtl"/>
<button type="object" string="Cancel" name="button_cancel" states="confirm" icon="terp-gtk-stop"/>
</tree>
</field>
</record>
@@ -468,7 +468,7 @@
<field name="journal_id" on_change="onchange_journal_id(journal_id)" select="1"/>
<field name="period_id"/>
<field name="balance_start"/>
<field name="balance_end_real"/>
<field name="balance_end_real"/>
</group>
<notebook colspan="4">
<page string="Transaction">
@@ -508,7 +508,7 @@
<field name="state"/>
<field name="balance_end"/>
<button name="button_dummy" states="draft" string="Compute" icon="terp-stock_format-scientific"/>
<button name="button_confirm" states="draft" string="Confirm" type="object" icon="terp-camera_test"/>
<button name="button_confirm_bank" states="draft" string="Confirm" type="object" icon="terp-camera_test"/>
<button name="button_cancel" states="confirm" string="Cancel" type="object" icon="terp-gtk-stop"/>
</group>
</form>
@@ -521,6 +521,18 @@
<field name="view_mode">tree,form</field>
<field name="domain">[('journal_id.type', '=', 'bank')]</field>
</record>
<record model="ir.actions.act_window.view" id="action_bank_statement_tree_bank">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="act_window_id" ref="action_bank_statement_tree"/>
</record>
<record model="ir.actions.act_window.view" id="action_bank_statement_form_bank">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form"/>
<field name="act_window_id" ref="action_bank_statement_tree"/>
</record>
<menuitem string="Bank Statements" action="action_bank_statement_tree" id="menu_bank_statement_tree" parent="menu_finance_bank_and_cash" sequence="7"/>
<record id="action_bank_statement_draft_tree" model="ir.actions.act_window">
@@ -1130,10 +1142,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'}"/>
@@ -1179,15 +1187,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"/>-->
@@ -1209,7 +1223,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"/>
@@ -1221,7 +1235,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>
@@ -1553,7 +1567,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>-->
@@ -1842,17 +1856,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>
@@ -1878,7 +1892,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"/>
@@ -1903,19 +1917,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>
@@ -2060,20 +2074,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>
@@ -2268,7 +2282,7 @@
<field name="user_id" select="1"/>
<field name="state"/>
<button type="object" string="Open" name="button_open" states="draft" icon="terp-camera_test"/>
<button type="object" string="Confirm" name="button_confirm" states="open" icon="terp-gtk-go-back-rtl"/>
<button type="object" string="Confirm" name="button_confirm_cash" states="open" icon="terp-gtk-go-back-rtl"/>
<button type="object" string="Cancel" name="button_cancel" states="confirm" icon="terp-gtk-stop"/>
</tree>
</field>
@@ -2286,7 +2300,7 @@
<field name="journal_id" on_change="onchange_journal_id(journal_id)" domain="[('type','=','cash')]" select="1" />
<field name="user_id" select="1" readonly="1"/>
<field name="period_id" select="1"/>
<field name="balance_end_real"/>
<!-- <field name="balance_end_real"/>-->
</group>
<notebook colspan="4">
@@ -2319,7 +2333,7 @@
</form>
</field>
</page>
<page string="Cash Box">
<page string="CashBox">
<group col="2" colspan="2" expand="1">
<field name="starting_details_ids" nolabel="1" colspan="2" attrs="{'readonly':[('state','=','draft')]}">
<tree string = "Opening Balance" editable="bottom">
@@ -2350,7 +2364,7 @@
</group>
</page>
<page string="Accounting Entries" attrs="{'invisible': [('state','!=','confirm')]}">
<field colspan="4" name="move_line_ids" nolabel="1"/>
<field colspan="4" name="move_line_ids" nolabel="1" string="Accounting Entries"/>
</page>
</notebook>
<group col="6" colspan="4">
@@ -2361,18 +2375,18 @@
</group>
<group col="2" colspan="2">
<separator string="Opening Balance" colspan="4"/>
<field name="balance_start"/>
<field name="balance_start" readonly="1" string="Opening Balance"/>
<field name="total_entry_encoding"/>
</group>
<group col="2" colspan="2">
<separator string="Closing Balance" colspan="4"/>
<field name="balance_end" string="Approx"/>
<field name="balance_end_cash" string="Cash Balance"/>
<field name="balance_end" string="Calculated Balance"/>
<field name="balance_end_cash" string="CashBox Balance"/>
</group>
</group>
<group col="8" colspan="4">
<field name="state" colspan="4"/>
<button name="button_confirm" states="open" string="Close CashBox" icon="terp-check" type="object"/>
<button name="button_confirm_cash" states="open" string="Close CashBox" icon="terp-check" type="object"/>
<button name="button_open" states="draft" string="Open CashBox" icon="terp-document-new" type="object"/>
<button name="button_cancel" states="confirm,open" string="Cancel" icon="terp-gtk-stop" type="object" groups="base.group_extended"/>
</group>
+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
+11 -10
View File
@@ -223,7 +223,7 @@ class account_invoice(osv.osv):
_log_create = True
_columns = {
'name': fields.char('Description', size=64, select=True, readonly=True, states={'draft':[('readonly',False)]}),
'origin': fields.char('Source Document', size=64, help="Reference of the document that produced this invoice."),
'origin': fields.char('Source Document', size=64, help="Reference of the document that produced this invoice.", readonly=True, states={'draft':[('readonly',False)]}),
'type': fields.selection([
('out_invoice','Customer Invoice'),
('in_invoice','Supplier Invoice'),
@@ -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([
@@ -250,8 +250,8 @@ class account_invoice(osv.osv):
\n* The \'Open\' state is used when user create invoice,a invoice number is generated.Its in open state till user does not pay invoice. \
\n* The \'Done\' state is set automatically when invoice is paid.\
\n* The \'Cancelled\' state is used when user cancel invoice.'),
'date_invoice': fields.date('Date Invoiced', states={'open':[('readonly',True)], 'close':[('readonly',True)]}, help="Keep empty to use the current date"),
'date_due': fields.date('Due Date', states={'open':[('readonly',True)], 'close':[('readonly',True)]},
'date_invoice': fields.date('Date Invoiced', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]}, help="Keep empty to use the current date"),
'date_due': fields.date('Due Date', states={'paid':[('readonly',True)], 'open':[('readonly',True)], 'close':[('readonly',True)]},
help="If you use payment terms, the due date will be computed automatically at the generation "\
"of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month."),
'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}),
@@ -291,7 +291,7 @@ class account_invoice(osv.osv):
multi='all'),
'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'journal_id': fields.many2one('account.journal', 'Journal', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'company_id': fields.many2one('res.company', 'Company', required=True, change_default=True),
'company_id': fields.many2one('res.company', 'Company', required=True, change_default=True, readonly=True, states={'draft':[('readonly',False)]}),
'check_total': fields.float('Total', digits_compute=dp.get_precision('Account'), states={'open':[('readonly',True)],'close':[('readonly',True)]}),
'reconciled': fields.function(_reconciled, method=True, string='Paid/Reconciled', type='boolean',
store={
@@ -300,7 +300,7 @@ class account_invoice(osv.osv):
'account.move.reconcile': (_get_invoice_from_reconcile, None, 50),
}, help="The Ledger Postings of the invoice have been reconciled with Ledger Postings of the payment(s)."),
'partner_bank': fields.many2one('res.partner.bank', 'Bank Account',
help='The bank account to pay to or to be paid from'),
help='The bank account to pay to or to be paid from', readonly=True, states={'draft':[('readonly',False)]}),
'move_lines':fields.function(_get_lines , method=True, type='many2many', relation='account.move.line', string='Entry Lines'),
'residual': fields.function(_amount_residual, method=True, digits_compute=dp.get_precision('Account'), string='Residual',
store={
@@ -312,9 +312,9 @@ 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'),
'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position')
'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', readonly=True, states={'draft':[('readonly',False)]})
}
_defaults = {
'type': _get_type,
@@ -1241,6 +1241,7 @@ class account_invoice_line(osv.osv):
return {'price_unit': price_unit,'invoice_line_tax_id': tax_id}
def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context=None):
print "2222*", uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context
if context is None:
context = {}
company_id = context.get('company_id',False)
@@ -1574,4 +1575,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:
@@ -28,12 +28,12 @@
<field name="partner_bank" invisible="1"/>
<field name="account_id" invisible="1"/>
<field name="nbr" sum="# of Lines"/>
<field name="product_qty"/>
<field name="product_qty" sum="Qty"/>
<field name="reconciled" sum="# Reconciled"/>
<field name="price_average" avg="Average Price"/>
<field name="price_average" sum="Average Price"/>
<field name="price_total" sum="Total Price"/>
<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)"/>
<field name="residual" sum="Total Residual" invisible="context.get('residual_invisible',False)"/>
<field name="delay_to_pay" sum="Avg. Delay To Pay" invisible="context.get('residual_invisible',False)"/>
</tree>
</field>
</record>
@@ -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','residual_visible':True}"/>
<filter string="Salesman" name='user' icon="terp-personal" context="{'group_by':'user_id'}"/>
<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}"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id','set_visible':True,'residual_invisible':True}"/>
<separator orientation="vertical"/>
<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}"/>
<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'}"/>
<separator orientation="vertical"/>
<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}"/>
<filter string="Journal" icon="terp-folder-orange" context="{'group_by':'journal_id'}"/>
<filter string="Account" icon="terp-folder-orange" context="{'group_by':'account_id'}"/>
<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','residual_visible':True}"/>
<filter string="Category of Product" icon="terp-stock_symbol-selection" context="{'group_by':'categ_id','residual_invisible':True}"/>
<filter string="Force Period" icon="terp-go-month" context="{'group_by':'period_id'}"/>
<separator orientation="vertical"/>
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id','residual_visible':True}" groups="base.group_multi_company"/>
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" 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}"/>
<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'}"/>
</group>
<newline/>
<group expand="0" string="Extended options..." groups="base.group_extended">
@@ -35,7 +35,7 @@ class account_change_currency(osv.osv_memory):
context = {}
state = obj_inv.browse(cr, uid, context['active_id']).state
if obj_inv.browse(cr, uid, context['active_id']).state != 'draft':
raise osv.except_osv(_('Error'), _('You can not change currency for Open Invoice !'))
raise osv.except_osv(_('Error'), _('You can only change currency for Draft Invoice !'))
pass
def change_currency(self, cr, uid, ids, context=None):
@@ -61,7 +61,8 @@ class account_invoice_refund(osv.osv_memory):
date = False
period = False
description = False
for inv in inv_obj.browse(cr, uid, context['active_ids'], context=context):
company = self.pool.get('res.users').browse(cr, uid, uid).company_id
for inv in inv_obj.browse(cr, uid, context.get('active_ids'), context=context):
if inv.state in ['draft', 'proforma2', 'cancel']:
raise osv.except_osv(_('Error !'), _('Can not %s draft/proforma/cancel invoice.') % (mode))
if form['period'] :
@@ -77,11 +78,8 @@ class account_invoice_refund(osv.osv_memory):
and name = 'company_id'")
result_query = cr.fetchone()
if result_query:
cr.execute("""SELECT id
from account_period where date(%s)
between date_start AND date_stop \
and company_id = %s limit 1 """,
(date, self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id,))
cr.execute("""select p.id from account_fiscalyear y, account_period p where y.id=p.fiscalyear_id \
and date(%s) between p.date_start AND p.date_stop and y.company_id = %s limit 1""", (date, company.id,))
else:
cr.execute("""SELECT id
from account_period where date(%s)
@@ -154,7 +152,7 @@ class account_invoice_refund(osv.osv_memory):
'tax_line': tax_lines,
'period_id': period,
'name': description
})
})
for field in ('address_contact_id', 'address_invoice_id', 'partner_id',
'account_id', 'currency_id', 'payment_term', 'journal_id'):
@@ -192,4 +190,4 @@ class account_invoice_refund(osv.osv_memory):
account_invoice_refund()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -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
@@ -1,16 +1,17 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="view_account_journal_form_inherit" model="ir.ui.view">
<record id="view_account_journal_form_inherit" model="ir.ui.view">
<field name="name">account.journal.form</field>
<field name="model">account.journal</field>
<field name="type">form</field>
<field name="inherit_id" ref="account.view_account_journal_form"/>
<field name="arch" type="xml">
<xpath expr="/form/notebook/page[@string='General Information']/group/group/field[@name='centralisation']" position="after">
<field name="entry_posted" position="after">
<!-- <xpath expr="/form/notebook/page[@string='General Information']/group/group/field[@name='centralisation']" position="after">-->
<field name="update_posted"/>
</xpath>
</field>
</field>
</record>
</data>
</openerp>
</record>
</data>
</openerp>
+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
}
+17 -1
View File
@@ -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,
@@ -197,7 +197,8 @@ class account_voucher_line(osv.osv):
res.update({
'amount': residual,
'account_id': invoice.account_id.id
'account_id': invoice.account_id.id,
'ref':invoice.number
})
return {
@@ -49,7 +49,7 @@ class account_voucher_unreconcile(osv.osv_memory):
recs = [line.reconcile_id.id]
for rec in recs:
obj_reconcile.unlink(cr, uid, rec)
reconcile_pool.unlink(cr, uid, rec)
if res.remove:
wf_service = netsvc.LocalService("workflow")
+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 ""
+14 -11
View File
@@ -22,7 +22,8 @@
from datetime import datetime
from osv import fields, osv, orm
from tools.translate import _
import mx.DateTime
from datetime import datetime
from datetime import timedelta
import pooler
import re
import time
@@ -105,7 +106,9 @@ the rule to mark CC(mail to any other person defined in actions)."),
'act_mail_to_email': fields.char('Mail to these Emails', size=128, \
help="Email-id of the persons whom mail is to be sent"),
'act_mail_body': fields.text('Mail body', help="Content of mail"),
'regex_name': fields.char('Regular Expression on Model Name', size=128),
'regex_name': fields.char('Regex on Resource Name', size=128, help="Regular expression for mathching name of the resource\
\ne.g.: urgent.* will search for records having name starting with urgent\
\nNote: This is case sensitive search."),
'server_action_id': fields.many2one('ir.actions.server', 'Server Action', help="Describes the action name.\neg:on which object which action to be taken on basis of which condition"),
'filter_id':fields.many2one('ir.filters', 'Filter', required=False),
'domain':fields.char('Domain', size=124, required=False, readonly=False),
@@ -352,23 +355,23 @@ the rule to mark CC(mail to any other person defined in actions)."),
base = False
if hasattr(obj, 'create_date') and action.trg_date_type=='create':
base = mx.DateTime.strptime(obj.create_date[:19], '%Y-%m-%d %H:%M:%S')
base = datetime.strptime(obj.create_date[:19], '%Y-%m-%d %H:%M:%S')
elif hasattr(obj, 'create_date') and action.trg_date_type=='action_last':
if hasattr(obj, 'date_action_last') and obj.date_action_last:
base = mx.DateTime.strptime(obj.date_action_last, '%Y-%m-%d %H:%M:%S')
base = datetime.strptime(obj.date_action_last, '%Y-%m-%d %H:%M:%S')
else:
base = mx.DateTime.strptime(obj.create_date[:19], '%Y-%m-%d %H:%M:%S')
base = datetime.strptime(obj.create_date[:19], '%Y-%m-%d %H:%M:%S')
elif hasattr(obj, 'date_deadline') and action.trg_date_type=='deadline' \
and obj.date_deadline:
base = mx.DateTime.strptime(obj.date_deadline, '%Y-%m-%d %H:%M:%S')
base = datetime.strptime(obj.date_deadline, '%Y-%m-%d %H:%M:%S')
elif hasattr(obj, 'date') and action.trg_date_type=='date' and obj.date:
base = mx.DateTime.strptime(obj.date, '%Y-%m-%d %H:%M:%S')
base = datetime.strptime(obj.date, '%Y-%m-%d %H:%M:%S')
if base:
fnct = {
'minutes': lambda interval: mx.DateTime.RelativeDateTime(minutes=interval),
'day': lambda interval: mx.DateTime.RelativeDateTime(days=interval),
'hour': lambda interval: mx.DateTime.RelativeDateTime(hours=interval),
'month': lambda interval: mx.DateTime.RelativeDateTime(months=interval),
'minutes': lambda interval: timedelta(minutes=interval),
'day': lambda interval: timedelta(days=interval),
'hour': lambda interval: timedelta(hours=interval),
'month': lambda interval: timedelta(months=interval),
}
d = base + fnct[action.trg_date_range_type](action.trg_date_range)
dt = d.strftime('%Y-%m-%d %H:%M:%S')
@@ -24,7 +24,7 @@
<page string="Conditions">
<group col="2" colspan="2" name="model">
<separator colspan="4" string="Conditions on Model Fields"/>
<field name="regex_name" string="Regex on Model Name" colspan="2"/>
<field name="regex_name" colspan="2"/>
<field name="trg_user_id"/>
</group>
<group col="2" colspan="2" name="partner">
+15 -8
View File
@@ -317,7 +317,7 @@ class calendar_attendee(osv.osv):
obj = self.pool.get('res.lang')
ids = obj.search(cr, uid, [])
res = obj.read(cr, uid, ids, ['code', 'name'], context=context)
res = [((r['code']).replace('_', '-'), r['name']) for r in res]
res = [((r['code']).replace('_', '-').lower(), r['name']) for r in res]
return res
_columns = {
@@ -378,6 +378,10 @@ property or property parameter."),
}
_defaults = {
'state': 'needs-action',
'user_id': lambda self, cr, uid, ctx: uid,
'role': 'req-participant',
'rsvp': True,
'cutype': 'individual',
}
def copy(self, cr, uid, id, default=None, context=None):
@@ -542,13 +546,13 @@ property or property parameter."),
context = {}
for vals in self.browse(cr, uid, ids, context=context):
user = vals.user_id
if user:
mod_obj = self.pool.get(vals.ref._name)
if vals.ref:
if vals.ref.user_id.id != user.id:
defaults = {'user_id': user.id}
new_event = mod_obj.copy(cr, uid, vals.ref.id, default=defaults, context=context)
#user = vals.user_id
#if user:
# mod_obj = self.pool.get(vals.ref._name)
# if vals.ref:
# if vals.ref.user_id.id != user.id:
# defaults = {'user_id': user.id}
# new_event = mod_obj.copy(cr, uid, vals.ref.id, default=defaults, context=context)
self.write(cr, uid, vals.id, {'state': 'accepted'}, context)
return True
@@ -793,6 +797,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()
@@ -1415,6 +1420,8 @@ true, it will allow you to hide the event alarm information without removing it.
until_date = arg[2]
res = super(calendar_event, self).search(cr, uid, args_without_date, \
offset, limit, order, context, count)
#Search Event ID which are invitted
return self.get_recurrent_ids(cr, uid, res, start_date, until_date, limit)
+20 -7
View File
@@ -76,13 +76,26 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Invitation details">
<field name="email" string="Invitation To"/>
<field name="user_id" string="Internal User" />
<field name="partner_address_id" string="Contact" />
<field name="role" />
<field name="sent_by_uid" string="Invitation From" />
<field name="role" string="My Role"/>
<field name="cutype" string="Invitation type"/>
<field name="state" />
<field name="cutype" invisible="1"/>
<field name="rsvp" invisible="1"/>
<field name="rsvp" string="Required to Join"/>
<button name="do_tentative" states="needs-action,declined,accepted"
string="Uncertain" type="object"
icon="terp-crm" />
<button name="do_accept" string="Accept"
states="needs-action,tentative,declined"
type="object" icon="gtk-apply" />
<button name="do_decline" string="Decline"
states="needs-action,tentative,accepted"
type="object" icon="gtk-cancel" />
<button
name="%(base_calendar.action_view_calendar_invite_attendee_wizard)d"
string="Delegate" type="action"
icon="gtk-sort-descending"
states="needs-action,tentative,declined,accepted"
context="{'model' : 'calendar.attendee', 'attendee_field' : 'child_ids'}" />
</tree>
</field>
</record>
@@ -103,7 +116,7 @@
separator="1" help="Declined Invitations" />
<separator orientation="vertical"/>
<field name="email" select='1'/>
<field name="sent_by_uid" select="1"/>
<field name="user_id" select="1"/>
<separator orientation="vertical"/>
<field name="cutype" string="Invitation type" select="1"/>
<field name="event_date" select="1"/>
@@ -75,7 +75,8 @@ send an Email to Invited Person')
obj = self.pool.get(model)
res_obj = obj.browse(cr, uid, context_id)
att_obj = self.pool.get('calendar.attendee')
user_obj = self.pool.get('res.users')
current_user = user_obj.browse(cr, uid, uid, context=context)
for datas in self.read(cr, uid, ids, context=context):
type = datas.get('type')
vals = []
@@ -89,7 +90,7 @@ send an Email to Invited Person')
else:
return {}
if type == 'internal':
user_obj = self.pool.get('res.users')
if not datas.get('user_ids'):
raise osv.except_osv(_('Error!'), ("Please select any User"))
for user_id in datas.get('user_ids'):
@@ -139,7 +140,7 @@ send an Email to Invited Person')
self._columns['type'].selection))
raise osv.except_osv(_('Error!'), ("%s must have an email Address to send mail") %(name[0]))
att_obj._send_mail(cr, uid, attendees, mail_to, \
email_from= tools.config.get('email_from', False))
email_from = current_user.user_email or tools.config.get('email_from', False))
return {}
+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
+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)"/>
+3 -1
View File
@@ -528,6 +528,7 @@ class Calendar(CalDAV, osv.osv):
})
self.__attribute__ = get_attribute_mapping(cr, uid, child.name.lower(), context=context)
val = self.parse_ics(cr, uid, child, cal_children=cal_children, context=context)
val.update({'user_id': uid})
vals.append(val)
obj = self.pool.get(cal_children[child.name.lower()])
if hasattr(obj, 'check_import'):
@@ -1052,7 +1053,8 @@ class Attendee(CalDAV, osv.osv_memory):
if cn_val:
attendee_add.params['CN'] = cn_val
if not attendee['email']:
raise osv.except_osv(_('Error !'), _('Attendee must have an Email Id'))
attendee_add.value = 'MAILTO:'
#raise osv.except_osv(_('Error !'), _('Attendee must have an Email Id'))
elif attendee['email']:
attendee_add.value = 'MAILTO:' + attendee['email']
return vevent
+1 -1
View File
@@ -121,7 +121,7 @@ Create dashboard for CRM that includes:
],
'test': [
'test/test_crm_lead.yml',
'test/test_crm_meeting.yml',
#'test/test_crm_meeting.yml',
'test/test_crm_opportunity.yml',
'test/test_crm_phonecall.yml',
],
+50 -34
View File
@@ -4,53 +4,69 @@
<!--
Board for statistical view of the sections
-->
<record model="ir.ui.view" id="view_crm_lead_stage_graph1">
<field name="name">Leads By Stage - Graph</field>
<field name="model">crm.lead.report</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Leads By Stage" type="pie">
<field name="stage_id"/>
<field name="nbr" operator="+"/>
</graph>
</field>
</record>
<record model="ir.ui.view" id="view_crm_opportunity_categ_graph">
<field name="name">report.crm.opportunity.categ.graph</field>
<record model="ir.ui.view" id="view_crm_opportunity_categ_graph">
<field name="name">Opportunities By Categories - Graph</field>
<field name="model">crm.lead.report</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Opportunity by Sales Team and Categories" type="bar" orientation="horizontal">
<graph string="Opportunity by Categories" type="bar" orientation="horizontal">
<field name="categ_id"/>
<field name="nbr" operator="+"/>
</graph>
</field>
</record>
<act_window name="Opportunities By Categories"
domain="[('state','!=','done'),('state','!=','cancel')]"
res_model="crm.lead.report"
view_type="form"
view_mode="graph,tree,form"
view_id="view_crm_opportunity_categ_graph"
id="act_oppor_categ"/>
<record model="ir.ui.view" id="view_crm_opportunity_stage_graph">
<field name="name">Opportunities By Stage - Graph</field>
<field name="model">crm.lead.report</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Opportunities By Stage" type="pie">
<field name="stage_id"/>
<field name="nbr" operator="+"/>
</graph>
</field>
</record>
<record model="ir.ui.view" id="view_crm_opportunity_user_stage_graph">
<field name="name">Opportunities By Stage Per User - Graph</field>
<field name="model">crm.lead.report</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Opportunities By Stage" type="bar">
<field name="stage_id"/>
<field name="nbr" operator="+"/>
<field name="user_id" group="True"/>
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="act_leads_state">
<record model="ir.actions.act_window" id="act_oppor_categ">
<field name="res_model">Opportunities By Categories</field>
<field name="res_model">crm.lead.report</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree,form</field>
<field name="view_id" ref="view_crm_lead_stage_graph1"/>
<field name="view_id" ref="view_crm_opportunity_categ_graph"/>
<field name="domain">[('state','!=','done'),('state','!=','cancel')]</field>
</record>
<act_window name="Leads Of The Month By User"
domain="[('month','=',time.strftime('%%m')),('state','!=','cancel')]"
res_model="crm.lead.report"
view_type="form"
view_mode="graph,tree,form"
view_id="view_crm_lead_stage_graph1"
id="act_leads_month_user"/>
<record model="ir.actions.act_window" id="act_opportunity_stage">
<field name="res_model">crm.lead.report</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree,form</field>
<field name="view_id" ref="view_crm_opportunity_stage_graph"/>
<field name="domain">[('state','!=','done'),('state','!=','cancel')]</field>
</record>
<record model="ir.actions.act_window" id="act_oppor_stage_user">
<field name="res_model">Number of Opportunities by stage</field>
<field name="res_model">crm.lead.report</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree,form</field>
<field name="view_id" ref="view_crm_opportunity_user_stage_graph"/>
<field name="domain">[('state','!=','cancel')]</field>
</record>
<record model="ir.ui.view" id="board_crm_statistical_form">
<field name="name">CRM - Statistical Dashboard Form</field>
@@ -68,8 +84,8 @@
width="250"/>
<action
string="Leads By Stage"
name="%(act_leads_state)d"
string="Opportunities By Stage"
name="%(act_opportunity_stage)d"
height="200"
colspan="4"/>
@@ -77,8 +93,8 @@
<child2>
<action
string="Leads Of The Month By User"
name="%(act_leads_month_user)d"
string="Number of Opportunities by Stage and User"
name="%(act_oppor_stage_user)d"
colspan="4"/>
</child2>
+5 -3
View File
@@ -268,12 +268,13 @@ class crm_case(object):
"""
cases = self.browse(cr, uid, ids)
for case in cases:
data = {'active': True, 'user_id': False}
data = {'active': True}
if case.section_id.parent_id:
data['section_id'] = case.section_id.parent_id.id
if case.section_id.parent_id.user_id:
data['user_id'] = case.section_id.parent_id.user_id.id
if case.section_id.parent_id.change_responsible:
if case.section_id.parent_id.user_id:
data['user_id'] = case.section_id.parent_id.user_id.id
else:
raise osv.except_osv(_('Error !'), _('You can not escalate, You are already at the top level regarding your sales-team category.'))
self.write(cr, uid, [case.id], data)
@@ -439,6 +440,7 @@ class crm_case_section(osv.osv):
'active': fields.boolean('Active', help="If the active field is set to \
true, it will allow you to hide the sales team without removing it."),
'allow_unlink': fields.boolean('Allow Delete', help="Allows to delete non draft cases"),
'change_responsible': fields.boolean('Change Responsible', help="Set responsible of this Sales team on escalation to this team"),
'user_id': fields.many2one('res.users', 'Responsible User'),
'member_ids':fields.many2many('res.users', 'sale_member_rel', 'section_id', 'member_id', 'Team Members'),
'reply_to': fields.char('Reply-To', size=64, help="The email address put \
+20 -1
View File
@@ -24,7 +24,6 @@ import re
import os
import base64
import tools
import mx.DateTime
from tools.translate import _
from osv import fields
@@ -80,6 +79,26 @@ this if you want the rule to send an email to the partner."),
if hasattr(obj, 'categ_id'):
ok = ok and (not action.trg_categ_id or action.trg_categ_id.id==obj.categ_id.id)
#Cheking for history
regex = action.regex_history
result_history = True
if regex:
res = False
ptrn = re.compile(str(regex))
for history in obj.message_ids:
_result = ptrn.search(str(history.name))
if _result:
res = True
break
result_history = res
ok = ok and (not regex or result_history)
res_count = True
if action.trg_max_history:
res_count = False
if len(obj.message_ids) >= action.trg_max_history:
res_count = True
ok = ok and res_count
return ok
def do_action(self, cr, uid, action, model_obj, obj, context={}):
+13 -2
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),
@@ -334,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
+98 -74
View File
@@ -1,81 +1,105 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
<data>
<!-- CASE STATUS(stage_id) -->
<record model="crm.case.stage" id="stage_lead1">
<field name="name">New</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_lead2">
<field name="name">Assigned</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_lead3">
<field name="name">In Process</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_lead4">
<field name="name">Converted</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_lead5">
<field name="name">Recycled</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_lead6">
<field name="name">Dead</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<!-- CASE STATUS(stage_id) -->
<record model="crm.case.stage" id="stage_lead1">
<field name="name">New</field>
<field eval="'10'" name="probability"/>
<field eval="'1'" name="sequence"/>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<!-- CASE CATEGORY2(category2_id) -->
<record model="crm.case.resource.type" id="type_lead1">
<field name="name">Telesales</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead2">
<field name="name">Mail</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead3">
<field name="name">Email</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead4">
<field name="name">Print</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead5">
<field name="name">Web</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead6">
<field name="name">Radio</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead7">
<field name="name">Television</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead8">
<field name="name">Newsletter</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_lead2">
<field name="name">Qualification</field>
<field eval="'20'" name="probability"/>
<field eval="'2'" name="sequence"/>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
</data>
<record model="crm.case.stage" id="stage_lead3">
<field name="name">Proposition</field>
<field eval="'40'" name="probability"/>
<field eval="'3'" name="sequence"/>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_lead4">
<field name="name">Negotiation</field>
<field eval="'60'" name="probability"/>
<field eval="'4'" name="sequence"/>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_lead5">
<field name="name">Win</field>
<field eval="'100'" name="probability"/>
<field eval="'5'" name="sequence"/>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_lead6">
<field name="name">Lost</field>
<field eval="'0'" name="probability"/>
<field eval="'6'" name="sequence"/>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<!-- CASE CATEGORY2(category2_id) -->
<record model="crm.case.resource.type" id="type_lead1">
<field name="name">Telesales</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead2">
<field name="name">Mail</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead3">
<field name="name">Email</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead4">
<field name="name">Print</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead5">
<field name="name">Web</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead6">
<field name="name">Radio</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead7">
<field name="name">Television</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.resource.type" id="type_lead8">
<field name="name">Newsletter</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
</data>
</openerp>
+2 -1
View File
@@ -80,7 +80,8 @@ class crm_meeting(osv.osv, crm_case):
_defaults = {
'state': lambda *a: 'draft',
'active': lambda *a: 1,
'active': lambda *a: 1,
'user_id': lambda self, cr, uid, ctx: uid,
}
def open_meeting(self, cr, uid, ids, context=None):
+1 -1
View File
@@ -105,7 +105,7 @@
<field name="view_mode">tree,form</field>
<field name="view_id" ref="base_calendar.base_calendar_attendee_tree_view" />
<field name="domain">[('ref','like','crm.meeting,')]</field>
<field name="context">{'default_sent_by_uid': uid}</field>
<field name="context">{"search_default_user_id":uid}</field>
</record>
<menuitem id="menu_attendee_invitations"
+1 -14
View File
@@ -342,20 +342,7 @@
</field>
</field>
</record>
<!-- Calendar Attendee Tree View -->
<record id="attendee_tree_view_inherit" model="ir.ui.view">
<field name="name">calendar.attendee.tree.inherit</field>
<field name="model">calendar.attendee</field>
<field name="type">tree</field>
<field name="inherit_id" ref="base_calendar.base_calendar_attendee_tree_view"/>
<field name="arch" type="xml">
<field name="role" position="after">
<field name="categ_id" string="Event Type"/>
</field>
</field>
</record>
</data>
</openerp>
+1 -38
View File
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
<data>
<record model="crm.case.categ" id="categ_oppor1">
<field name="name">Existing Customer</field>
<field name="section_id" ref="section_sales_department"/>
@@ -42,43 +42,6 @@
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<!-- CASE STATUS(stage_id) -->
<record model="crm.case.stage" id="stage_oppor1">
<field name="name">Prospecting</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_oppor2">
<field name="name">Needs Analysis</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_oppor3">
<field name="name">Value Proposition</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_oppor4">
<field name="name">Proposal/Price Quote</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_oppor5">
<field name="name">Negotiation/Review</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_oppor6">
<field name="name">Closed Won</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_oppor7">
<field name="name">Closed Lost</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<!-- Case Resource(type_id) -->
<record model="crm.case.resource.type" id="type_oppor1">
<field name="name">Existing Business</field>
+5 -5
View File
@@ -20,7 +20,7 @@
<field eval="85000.0" name="planned_revenue"/>
<field name="section_id" ref="crm.section_sales_department"/>
<field name="categ_id" ref="crm.categ_oppor1"/>
<field name="stage_id" ref="crm.stage_oppor3"/>
<field name="stage_id" ref="crm.stage_lead3"/>
<field eval="&quot;CONS TRUST (AZ) 529701 - 1000 units&quot;" name="name"/>
</record>
<record id="crm_case_rdroundfundingunits0" model="crm.lead">
@@ -36,7 +36,7 @@
<field eval="50" name="probability"/>
<field name="section_id" ref="crm.section_sales_department"/>
<field name="categ_id" ref="crm.categ_oppor5"/>
<field name="stage_id" ref="crm.stage_oppor1"/>
<field name="stage_id" ref="crm.stage_lead1"/>
<field eval="&quot;3rd Round Funding - 1000 units &quot;" name="name"/>
</record>
<record id="crm_case_mediapoleunits0" model="crm.lead">
@@ -53,7 +53,7 @@
<field eval="70" name="probability"/>
<field name="section_id" ref="crm.section_sales_department"/>
<field name="categ_id" ref="crm.categ_oppor7"/>
<field name="stage_id" ref="crm.stage_oppor5"/>
<field name="stage_id" ref="crm.stage_lead5"/>
<field eval="&quot;Mediapole - 5000 units&quot;" name="name"/>
<field eval="&quot;info@mycompany.net&quot;" name="email_from"/>
</record>
@@ -70,7 +70,7 @@
<field eval="45000.0" name="planned_revenue"/>
<field name="section_id" ref="crm.section_sales_department"/>
<field name="categ_id" ref="crm.categ_oppor5"/>
<field name="stage_id" ref="crm.stage_oppor4"/>
<field name="stage_id" ref="crm.stage_lead4"/>
<field eval="&quot;ABC FUEL CO 829264 - 1000 units &quot;" name="name"/>
<field eval="&quot;info@opensides.be&quot;" name="email_from"/>
</record>
@@ -86,7 +86,7 @@
<field eval="42000.0" name="planned_revenue"/>
<field name="section_id" ref="crm.section_sales_department"/>
<field name="categ_id" ref="crm.categ_oppor2"/>
<field name="stage_id" ref="crm.stage_oppor6"/>
<field name="stage_id" ref="crm.stage_lead6"/>
<field eval="&quot;Dirt Mining Ltd 271742 - 1000 units&quot;" name="name"/>
</record>
</data>
+12 -14
View File
@@ -69,17 +69,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Phone Call">
<group colspan="4" col="7">
<field name="name" string="Summary"/>
<field name="date" string="Planned Date"/>
<field name="user_id"/>
<button string="Schedule a Meeting"
name="action_make_meeting"
icon="gtk-redo"
type="object" />
<group colspan="6" col="7">
<field name="name" string="Summary" required="1"/>
<field name="partner_phone" required="1"/>
<field name="duration" widget="float_time" required="1"/>
<button string="Schedule a Meeting" name="action_make_meeting" icon="gtk-redo" type="object"/>
<field name="partner_phone"/>
<field name="duration"/>
<field name="date" string="Date" required="1"/>
<field name="user_id"/>
<field name="section_id" colspan="1" widget="selection" />
<button string="Convert to Opportunity"
name="%(phonecall2opportunity_act)d"
@@ -92,6 +89,7 @@
type="action" />
</group>
<group col="3" colspan="2">
<separator colspan="3" string="Contacts" />
<field name="partner_id"
@@ -146,15 +144,15 @@
<form string="Phone Call">
<group colspan="4" col="7">
<field name="name" string="Summary" required="1"/>
<field name="date" string="Planned Date" required="1"/>
<field name="user_id"/>
<field name="partner_phone"/>
<field name="duration" widget="float_time"/>
<button string="Schedule a Meeting"
name="action_make_meeting"
icon="gtk-redo"
type="object" />
<field name="partner_phone"/>
<field name="duration"/>
<field name="date" string="Date" required="1"/>
<field name="user_id"/>
<field name="section_id" colspan="1" widget="selection" />
<button string="Convert to Opportunity"
name="%(phonecall2opportunity_act)d"
+1
View File
@@ -43,6 +43,7 @@
<group col="2" colspan="1">
<separator string="Configuration" colspan="2"/>
<field name="allow_unlink" select="2"/>
<field name="change_responsible"/>
</group>
<separator string="Team Members" colspan="4"/>
<field name="member_ids" nolabel="1" colspan="4"/>
+195 -193
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -8,7 +8,7 @@
partner_address_id: base.res_partner_address_1
partner_id: base.res_partner_9
probability: 1.0
stage_id: crm.stage_oppor1
stage_id: crm.stage_lead1
categ_id: crm.categ_oppor2
section_id: crm.section_sales_department
+4 -20
View File
@@ -1,25 +1,6 @@
<openerp>
<data>
<!-- Lead to partner confirmation form -->
<record id="view_crm_lead2partner_create" model="ir.ui.view">
<field name="name">crm.lead2partner.view.create</field>
<field name="model">crm.lead2partner</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Create a Partner?">
<label string="Are you sure you want to create a partner based on this lead ?" colspan="4"/>
<label string="You may have to verify that this partner does not exist already." colspan="4"/>
<separator string="" colspan="4" />
<group col="4" colspan="4">
<button special="cancel" string="_Cancel" icon="gtk-cancel"/>
<button name="open_create_partner" string="Create _Partner" type="object" icon="gtk-ok"/>
</group>
</form>
</field>
</record>
<!-- Lead to Partner form view -->
<record id="view_crm_lead2partner" model="ir.ui.view">
@@ -28,6 +9,9 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Create a Partner">
<separator string="Create a Partner" colspan="4" />
<label string="Are you sure you want to create a partner based on this lead ?" colspan="4"/>
<label string="You may have to verify that this partner does not exist already." colspan="4"/>
<field name="action"/>
<group attrs="{'invisible':[('action','!=','exist')]}">
<field name="partner_id" attrs="{'required': [('action', '=', 'exist')]}"/>
@@ -48,7 +32,7 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">crm.lead2partner</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_crm_lead2partner_create"/>
<field name="view_id" ref="view_crm_lead2partner"/>
<field name="target">new</field>
</record>
@@ -73,8 +73,8 @@ class crm_phonecall2phonecall(osv.osv_memory):
values = {
'name': this.name,
'user_id': this.user_id and this.user_id.id,
'categ_id': phonecall.categ_id and phonecall.categ_id.id or False,
'section_id': phonecall.section_id and phonecall.section_id.id,
'categ_id': this.categ_id.id,
'section_id': this.section_id.id or (phonecall.section_id and phonecall.section_id.id),
'description': phonecall.description or '',
'partner_id': phonecall.partner_id.id,
'partner_address_id': phonecall.partner_address_id.id,
@@ -94,7 +94,7 @@ class crm_phonecall2phonecall(osv.osv_memory):
'views': [(id2, 'form'), (id3, 'tree'), (False, 'calendar'), (False, 'graph')],
'type': 'ir.actions.act_window',
'res_id': phonecall_id,
'domain': [('id', 'in', [int(phonecall_id)])],
'domain': [('id', '=', phonecall_id)],
'search_view_id': res['res_id']
}
return res
@@ -102,7 +102,10 @@ class crm_phonecall2phonecall(osv.osv_memory):
_columns = {
'name' : fields.char('Call summary', size=64, required=True, select=1),
'user_id' : fields.many2one('res.users',"Assign To"),
'date': fields.datetime('Date'),
'categ_id': fields.many2one('crm.case.categ', 'Category', required=True, \
domain="[('section_id','=',section_id),\
('object_id.model', '=', 'crm.phonecall')]"),
'date': fields.datetime('Date', required=True),
'section_id':fields.many2one('crm.case.section','Sales Team'),
}
@@ -119,10 +122,16 @@ class crm_phonecall2phonecall(osv.osv_memory):
"""
res = super(crm_phonecall2phonecall, self).default_get(cr, uid, fields, context=context)
record_id = context and context.get('active_id', False) or False
if record_id:
phonecall = self.pool.get('crm.phonecall').browse(cr, uid, record_id, context=context)
categ_id = False
data_obj = self.pool.get('ir.model.data')
res_id = data_obj._get_id(cr, uid, 'crm', 'categ_phone2')
if res_id:
categ_id = data_obj.browse(cr, uid, res_id, context=context).res_id
if 'name' in fields:
res.update({'name': phonecall.name})
if 'user_id' in fields:
@@ -131,7 +140,8 @@ class crm_phonecall2phonecall(osv.osv_memory):
res.update({'date': phonecall.date})
if 'section_id' in fields:
res.update({'section_id': phonecall.section_id and phonecall.section_id.id or False})
if 'categ_id' in fields:
res.update({'categ_id': categ_id})
return res
crm_phonecall2phonecall()
@@ -10,16 +10,18 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Schedule Other Call">
<field name="name"/>
<field name="user_id" />
<field name="date" string="Planned Date"/>
<field name="section_id"/>
<separator string=" " colspan="4"/>
<group colspan="4" col="3" >
<label string=" " />
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
<button name="action_apply" type="object" string="_Schedule" icon="gtk-go-forward" />
</group>
<separator string="Schedule Other Call" colspan="4"/>
<field name="name"/>
<field name="date" string="Planned Date"/>
<field name="user_id" />
<field name="section_id"/>
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/>
<separator string=" " colspan="4"/>
<group colspan="4" col="3" >
<label string=" " />
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
<button name="action_apply" type="object" string="_Schedule" icon="gtk-go-forward" />
</group>
</form>
</field>
</record>
@@ -36,4 +38,4 @@
</record>
</data>
</openerp>
</openerp>
@@ -9,6 +9,7 @@
"access_document_directory_content_type_group_system","document.directory.content.type group system","model_document_directory_content_type","base.group_user",1,0,0,0
"access_document_storage_group_document_manager","document.storage document manager","model_document_storage","group_document_manager",1,1,1,1
"access_document_storage_group_system","document.storage group system","model_document_storage","base.group_user",1,0,0,0
"access_document_directory_dctx_all","document.directory.dctx all","model_document_directory_dctx",,1,0,0,0
"access_document_directory_dctx_group_document_manager","document.directory.dctx document manager","model_document_directory_dctx","group_document_manager",1,1,1,1
"access_document_directory_dctx_group_system","document.directory.dctx group system","model_document_directory_dctx","base.group_system",1,1,1,1
"access_report_document_user_group_document_manager","report.document.user document manager","model_report_document_user","document.group_document_manager",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
9 access_document_directory_content_type_group_system document.directory.content.type group system model_document_directory_content_type base.group_user 1 0 0 0
10 access_document_storage_group_document_manager document.storage document manager model_document_storage group_document_manager 1 1 1 1
11 access_document_storage_group_system document.storage group system model_document_storage base.group_user 1 0 0 0
12 access_document_directory_dctx_all document.directory.dctx all model_document_directory_dctx 1 0 0 0
13 access_document_directory_dctx_group_document_manager document.directory.dctx document manager model_document_directory_dctx group_document_manager 1 1 1 1
14 access_document_directory_dctx_group_system document.directory.dctx group system model_document_directory_dctx base.group_system 1 1 1 1
15 access_report_document_user_group_document_manager report.document.user document manager model_report_document_user document.group_document_manager 1 0 0 0
+3 -2
View File
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@@ -15,12 +15,13 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import event
import wizard
import report
import res_partner
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+1
View File
@@ -53,6 +53,7 @@
'wizard/event_make_invoice_view.xml',
'wizard/partner_event_registration_view.xml',
'board_association_view.xml',
'res_partner_view.xml',
],
'demo_xml': ['event_demo.xml', 'board_association_demo.xml'],
'test': ['test/test_event.yml'],
+4 -2
View File
@@ -176,11 +176,13 @@ class event_event(osv.osv):
'note': fields.text('Notes', help="Description or Summary of Event"),
'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}),
"unit_price": fields.float('Cost'),
'partner_id': fields.many2one('res.partner','Teacher'),
'main_speaker_id': fields.many2one('res.partner','Main Speaker'),
'speaker_ids':fields.many2many('res.partner', 'event_speaker_rel', 'speaker_id', 'partner_id', 'Other Speakers'),
'address_id': fields.many2one('res.partner.address','Location Room'),
'teacher_confirmed': fields.boolean('Teacher Confirmed'),
'speaker_confirmed': fields.boolean('Speaker Confirmed'),
'country_id': fields.related('address_id', 'country_id',
type='many2one', relation='res.country', string='Country'),
'language': fields.char('Language',size=64),
}
+9 -5
View File
@@ -57,18 +57,20 @@
<page string="General">
<field name="unit_price"/>
<field name="currency_id"/>
<separator string="Teacher Information" colspan="4"/>
<field name="partner_id"/>
<separator string="Speaker Information" colspan="4"/>
<field name="main_speaker_id" domain="[('speaker','=',True)]"/>
<field name="address_id"/>
<field name="teacher_confirmed"/>
<field name="speaker_ids" domain="[('speaker','=',True)]" colspan="4"/>
<field name="country_id" />
<field name="speaker_confirmed"/>
<field name="language"/>
<separator string="Event description" colspan="4"/>
<field name="parent_id" domain="[('parent_id','child_of','Event')]"/>
<field name="active"/>
<field name="register_min"/>
<field name="register_max"/>
<separator string="Notes" colspan="4"/>
<field name="note" colspan="4" nolabel="1"/>
<!--field name="note" colspan="4" nolabel="1"/-->
<field name="state" select="1"/>
<group col="4" colspan="2">
<button string="Confirm Event" name="button_confirm" states="draft" type="object" icon="gtk-apply"/>
@@ -120,9 +122,11 @@
<field name="arch" type="xml">
<tree string="Events" colors="red:register_min>register_current;black:register_min&lt;=register_current">
<field name="name" string="Name"/>
<field name="user_id"/>
<field name="main_speaker_id"/>
<field name="language"/>
<field name="type"/>
<field name="date_begin"/>
<field name="date_end"/>
<field name="register_min"/>
<field name="register_current"/>
<field name="state"/>
@@ -43,6 +43,7 @@ class report_event_registration(osv.osv):
'type': fields.many2one('event.type', 'Event Type'),
'state': fields.selection([('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')], 'State', readonly=True, required=True),
'user_id':fields.many2one('res.users', 'Responsible', readonly=True),
'speaker_id':fields.many2one('res.partner', 'Speaker', readonly=True),
}
_order = 'date desc'
def init(self, cr):
@@ -57,6 +58,7 @@ class report_event_registration(osv.osv):
c.event_id as event_id,
e.date_begin as date,
e.user_id as user_id,
e.main_speaker_id as speaker_id,
to_char(e.date_begin, 'YYYY') as year,
to_char(e.date_begin, 'MM') as month,
to_char(e.date_begin, 'YYYY-MM-DD') as day,
@@ -75,7 +77,7 @@ class report_event_registration(osv.osv):
group by
to_char(e.date_begin, 'YYYY'),
to_char(e.date_begin, 'MM'),
t.id, e.id, e.date_begin,
t.id, e.id, e.date_begin,e.main_speaker_id,
e.register_max, e.type, e.state, c.event_id, e.user_id,
to_char(e.date_begin, 'YYYY-MM-DD')
)""")
@@ -10,6 +10,7 @@
<tree string="Event on Registration">
<field name="date" invisible="1"/>
<field name="user_id" invisible="1"/>
<field name="speaker_id" invisible="1"/>
<field name="year" invisible="1"/>
<field name="day" invisible="1"/>
<field name="month" invisible="1"/>
@@ -85,7 +86,8 @@
<separator orientation="vertical"/>
<filter string="state" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
<separator orientation="vertical"/>
<filter string="Responsible" name="user" icon="terp-personal" context="{'group_by': 'user_id'}"/>
<filter string="Speaker" name="user" icon="terp-personal+" context="{'group_by': 'speaker_id'}"/>
<!--filter string="Responsible" name="user" icon="terp-personal" context="{'group_by': 'user_id'}"/-->
<separator orientation="vertical" />
<filter string="Day" icon="terp-go-month"
domain="[]" context="{'group_by':'day'}"/>
+36
View File
@@ -0,0 +1,36 @@
# -*- 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 res_partner(osv.osv):
_inherit = 'res.partner'
_columns = {
'speaker': fields.boolean('Speaker'),
'event_ids': fields.one2many('event.event','main_speaker_id',readonly=True),
'event_registration_ids': fields.one2many('event.registration','partner_id',readonly=True),
}
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+44
View File
@@ -0,0 +1,44 @@
<?xml version="1.0"?>
<openerp>
<data>
<!-- Partners inherited form -->
<record id="view_speaker_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.speaker.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="supplier" position="after">
<field name="speaker"/>
</field>
</field>
</record>
<record id="view_event_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.event.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<page string="History" position="inside">
<field name="event_ids" colspan="4" nolabel="1">
<tree string="Events">
<field name="name" string="Event"/>
<field name="main_speaker_id"/>
</tree>
</field>
<field name="event_registration_ids" colspan="4" nolabel="1">
<tree string="Events Registration">
<field name="event_id" />
<field name="partner_id"/>
<field name="unit_price"/>
</tree>
</field>
</page>
</field>
</record>
</data>
</openerp>
+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
+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>
+3 -3
View File
@@ -158,9 +158,9 @@ class mailgate_message(osv.osv):
'user_id': fields.many2one('res.users', 'User Responsible', readonly=True),
'message': fields.text('Description'),
'email_from': fields.char('From', size=128, help="Email From"),
'email_to': fields.text('To', help="Email Recipients"),
'email_cc': fields.text('Cc', help="Carbon Copy Email Recipients"),
'email_bcc': fields.text('Bcc', help='Blind Carbon Copy Email Recipients'),
'email_to': fields.char('To', help="Email Recipients", size=256),
'email_cc': fields.char('Cc', help="Carbon Copy Email Recipients", size=256),
'email_bcc': fields.char('Bcc', help='Blind Carbon Copy Email Recipients', size=256),
'message_id': fields.char('Message Id', size=1024, readonly=True, help="Message Id on Email.", select=True),
'references': fields.text('References', readonly=True, help="References emails."),
'description': fields.text('Description'),
+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
+1 -1
View File
@@ -372,7 +372,7 @@ class mrp_repair(osv.osv):
name = operation.name
if operation.product_id.property_account_income:
account_id = operation.product_id.property_account_income
account_id = operation.product_id.property_account_income.id
elif operation.product_id.categ_id.property_account_income_categ:
account_id = operation.product_id.categ_id.property_account_income_categ.id
else:
+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
@@ -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
@@ -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"
+1 -1
View File
@@ -160,7 +160,7 @@ class project_issue(osv.osv, crm.crm_case):
\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\'.'),
'email_from': fields.char('Email', size=128, help="These people will receive email."),
'email_cc': fields.text('Watchers Emails', size=252, help="These people\
'email_cc': fields.char('Watchers Emails', size=256, help="These people\
will receive a copy of the future" \
" communication between partner and users by email"),
'date_open': fields.datetime('Opened', readonly=True),
+1 -1
View File
@@ -154,9 +154,9 @@
<tree string="Issue Tracker Tree" colors="red:state=='open';blue:state=='pending';grey:state in ('cancel', 'done')">
<field name="id"/>
<field name="create_date"/>
<field name="project_id" invisible="1"/>
<field name="name"/>
<field name="partner_id"/>
<field name="project_id" />
<field name="priority" string="Severity"/>
<field name="stage_id" string="Resolution"/>
<button icon="gtk-go-back" string="" name="stage_previous" type="object"
@@ -52,7 +52,7 @@ class project_issue_report(osv.osv):
_columns = {
'name': fields.char('Year', size=64, required=False, readonly=True),
'user_id':fields.many2one('res.users', 'Responsible', readonly=True),
'user_id2':fields.many2one('res.users', 'Assigned To', readonly=True),
'user_id2':fields.many2one('res.users', 'Assignee', readonly=True),
'section_id':fields.many2one('crm.case.section', 'Section', readonly=True),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"),
@@ -66,17 +66,17 @@ class project_issue_report(osv.osv):
('11', 'November'), ('12', 'December')], 'Month', readonly=True),
'company_id': fields.many2one('res.company', 'Company', readonly=True),
'day': fields.char('Day', size=128, readonly=True),
'opening_date': fields.date('Opening Date', readonly=True),
'opening_date': fields.date('Date of Opening', readonly=True),
'creation_date': fields.date('Creation Date', readonly=True),
'date_closed': fields.date('Closed Date', readonly=True),
'date_closed': fields.date('Date of Closing', readonly=True),
'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'project.issue')]"),
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('object_id.model', '=', 'project.issue')]"),
'nbr': fields.integer('# of Issues', readonly=True),
'working_hours_open': fields.float('# Working Open Hours', readonly=True),
'working_hours_close': fields.float('# Working Closing Hours', readonly=True),
'delay_open': fields.float('Avg opening Delay', digits=(16,2), readonly=True, group_operator="avg",
'working_hours_open': fields.float('Avg. Working Hours to Open', readonly=True),
'working_hours_close': fields.float('Avg. Working Hours to Close', readonly=True),
'delay_open': fields.float('Avg. Delay to Open', digits=(16,2), readonly=True, group_operator="avg",
help="Number of Days to close the project issue"),
'delay_close': fields.float('Avg Closing Delay', digits=(16,2), readonly=True, group_operator="avg",
'delay_close': fields.float('Avg. Delay to Close', digits=(16,2), readonly=True, group_operator="avg",
help="Number of Days to close the project issue"),
'company_id' : fields.many2one('res.company', 'Company'),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
+10 -6
View File
@@ -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"),
@@ -137,7 +142,6 @@ class project_phase(osv.osv):
"""
uom_obj = self.pool.get('product.uom')
resource_obj = self.pool.get('resource.resource')
model_data_obj = self.pool.get('ir.model.data')
cal_obj = self.pool.get('resource.calendar')
calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
resource_id = resource_obj.search(cr, uid, [('user_id', '=', phase.responsible_id.id)])
@@ -147,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 = model_data_obj._get_id(cr, uid, 'product', 'uom_hour')
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')
@@ -160,7 +164,6 @@ class project_phase(osv.osv):
Check And Compute date_end of phase if change in date_end > older time.
"""
uom_obj = self.pool.get('product.uom')
model_data_obj = self.pool.get('ir.model.data')
resource_obj = self.pool.get('resource.resource')
cal_obj = self.pool.get('resource.calendar')
calendar_id = phase.project_id.resource_calendar_id and phase.project_id.resource_calendar_id.id or False
@@ -171,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 = model_data_obj._get_id(cr, uid, 'product', 'uom_hour')
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')
@@ -181,7 +184,6 @@ class project_phase(osv.osv):
resource_calendar_obj = self.pool.get('resource.calendar')
resource_obj = self.pool.get('resource.resource')
uom_obj = self.pool.get('product.uom')
model_data_obj = self.pool.get('ir.model.data')
if context is None:
context = {}
if context.get('scheduler',False):
@@ -195,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 = model_data_obj._get_id(cr, uid, 'product', 'uom_hour')
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
@@ -246,6 +248,8 @@ class project_resource_allocation(osv.osv):
'resource_id': fields.many2one('resource.resource', 'Resource', required=True),
'phase_id': fields.many2one('project.phase', 'Project Phase', required=True),
'useability': fields.float('Usability', help="Usability of this resource for this project phase in percentage (=50%)"),
'date_start': fields.related('phase_id', 'date_start', type='datetime', string='Start Date'),
'date_end': fields.related('phase_id', 'date_end', type='datetime', string='End Date'),
}
_defaults = {
'useability': 100,
@@ -31,9 +31,36 @@
<field name="resource_id"/>
<field name="phase_id"/>
<field name="useability"/>
<field name="date_start"/>
<field name="date_end"/>
</tree>
</field>
</record>
<record id="view_project_resource_allocation_calendar" model="ir.ui.view">
<field name="name">project.resource.allocation.calendar</field>
<field name="model">project.resource.allocation</field>
<field name="type">calendar</field>
<field name="arch" type="xml">
<calendar color="resource_id" date_stop="date_end" date_start="date_start" string="Resource Allocations">
<field name="resource_id"/>
<field name="useability"/>
</calendar>
</field>
</record>
<record id="view_project_resource_allocation_gantt" model="ir.ui.view">
<field name="name">project.resource.allocation.gantt</field>
<field name="model">project.resource.allocation</field>
<field name="type">gantt</field>
<field name="arch" type="xml">
<gantt color="resource_id" date_stop="date_end" date_start="date_start" string="Resource Allocations">
<level object="resource.resource" link="resource_id" domain="[]">
<field name="useability"/>
</level>
</gantt>
</field>
</record>
<record id="view_project_resource_allocation_search" model="ir.ui.view">
<field name="name">project.resource.allocation.search</field>
@@ -58,7 +85,7 @@
<field name="name">Resource Allocations</field>
<field name="res_model">project.resource.allocation</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_mode">tree,form,calendar,gantt</field>
<field name="context">{'search_default_resource': 1} </field>
<!--<field name="search_view_id" ref="view_project_phase_search"/>-->
</record>
@@ -60,7 +60,6 @@ class project_compute_phases(osv.osv_memory):
phase_obj = self.pool.get('project.phase')
resource_obj = self.pool.get('resource.resource')
uom_obj = self.pool.get('product.uom')
model_data_obj = self.pool.get('ir.model.data')
phase_resource_obj = False
if context is None:
@@ -82,7 +81,7 @@ class project_compute_phases(osv.osv_memory):
'vacation': tuple(leaves),
'efficiency': time_efficiency
})
default_uom_id = model_data_obj._get_id(cr, uid, 'product', 'uom_hour')
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>
+3 -4
View File
@@ -36,9 +36,7 @@
'author': 'Tiny',
'website': 'http://www.openerp.com',
'depends': ['base', 'account', 'stock', 'process', 'procurement'],
'init_xml': [],
'update_xml': [
'data': [
'security/purchase_security.xml',
'security/ir.model.access.csv',
'purchase_workflow.xml',
@@ -60,8 +58,9 @@
'test/purchase_from_order.yml',
'test/purchase_from_manual.yml',
# 'test/purchase_from_picking.yml',
'purchase_unit_test.xml'
],
'demo_xml': ['purchase_demo.xml','purchase_unit_test.xml'],
'demo': ['purchase_demo.xml'],
'installable': True,
'active': False,
'certificate': '0057234283549',
+1 -1
View File
@@ -720,7 +720,7 @@ purchase_order_line()
class procurement_order(osv.osv):
_inherit = 'procurement.order'
_columns = {
'purchase_id': fields.many2one('purchase.order', 'Latest Requisition'),
'purchase_id': fields.many2one('purchase.order', 'Purchase Order'),
}
def action_po_assign(self, cr, uid, ids, context={}):
-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"/>
+4 -4
View File
@@ -54,14 +54,14 @@ class purchase_report(osv.osv):
'validator' : fields.many2one('res.users', 'Validated By', readonly=True),
'company_id':fields.many2one('res.company', 'Company', readonly=True),
'user_id':fields.many2one('res.users', 'Responsible', readonly=True),
'delay':fields.float('Days to Validate', digits=(16,2), readonly=True, group_operator="avg"),
'delay_pass':fields.float('Days to Deliver', digits=(16,2), readonly=True, group_operator="avg"),
'delay':fields.float('Days to Validate', digits=(16,2), readonly=True),
'delay_pass':fields.float('Days to Deliver', digits=(16,2), readonly=True),
'quantity': fields.float('# of Products', readonly=True),
'price_total': fields.float('Total Price', readonly=True),
'price_average': fields.float('Unit Price', readonly=True, group_operator="avg"),
'price_average': fields.float('Average Price', readonly=True, group_operator="avg"),
'negociation': fields.float('Purchase-Standard Price', readonly=True, group_operator="avg"),
'price_standard': fields.float('Products Value', readonly=True, group_operator="sum"),
'nbr': fields.integer('# of PO Lines', readonly=True),
'nbr': fields.integer('# of Lines', readonly=True),
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
@@ -33,14 +33,14 @@
<field name="company_id" invisible="1"/>
<field name="state" invisible="1"/>
<field name="location_id" invisible="1"/>
<field name="nbr"/>
<field name="nbr" sum="# of Lines"/>
<field name="quantity" sum="# of Products"/>
<field name="price_average" avg="Average Price"/>
<field name="price_average" sum="Average Price"/>
<field name="price_total" sum="Total Price"/>
<field name="price_standard" sum="Products Costs"/>
<field name="price_standard" sum="Products Value"/>
<field name="negociation" widget="progressbar"/>
<field name="delay"/>
<field name="delay_pass"/>
<field name="delay" sum="Days to Validate"/>
<field name="delay_pass" sum="Days to Deliver"/>
</tree>
</field>
</record>
@@ -142,10 +142,11 @@
<record id="action_purchase_order_report_all" model="ir.actions.act_window">
<field name="name">Purchase Orders</field>
<field name="name">Purchase Analysis</field>
<field name="res_model">purchase.report</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="view_id" ref="view_purchase_order_tree"></field>
<field name="context">{'search_default_month':1,'search_default_group_partner_id':1,'search_default_group_product_id': 1, 'search_default_orders': 1, 'group_by_no_leaf':1,'group_by':[]}</field>
</record>
@@ -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)
}
@@ -129,10 +129,14 @@ class purchase_order(osv.osv):
}
def wkf_confirm_order(self, cr, uid, ids, context={}):
res = super(purchase_order, self).wkf_confirm_order(cr, uid, ids, context)
proc_obj=self.pool.get('procurement.order')
for po in self.browse(cr, uid, ids, context):
if po.requisition_id and (po.requisition_id.exclusive=='exclusive'):
for order in po.requisition_id.purchase_ids:
if order.id<>po.id:
proc_ids = proc_obj.search(cr, uid, [('purchase_id', '=', order.id)])
if proc_ids and po.state=='confirmed':
proc_obj.wirte(cr,uid,proc_ids,{'purchase_id':po.id})
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'purchase.order', order.id, 'purchase_cancel', cr)
self.pool.get('purchase.requisition').write(cr, uid, [po.requisition_id.id], {'state':'done','date_end':time.strftime('%Y-%m-%d %H:%M:%S')})
@@ -155,14 +159,17 @@ product_product()
class procurement_order(osv.osv):
_inherit = 'procurement.order'
_columns = {
'requisition_id' : fields.many2one('purchase.requisition','Latest Requisition')
}
def make_po(self, cr, uid, ids, context=None):
sequence_obj = self.pool.get('ir.sequence')
res = super(procurement_order, self).make_po(cr, uid, ids, context=context)
for proc_id, po_id in res.items():
procurement = self.browse(cr, uid, proc_id)
requisition_id=False
if procurement.product_id.purchase_requisition:
self.pool.get('purchase.requisition').create(cr, uid, {
requisition_id=self.pool.get('purchase.requisition').create(cr, uid, {
'name': sequence_obj.get(cr, uid, 'purchase.order.requisition'),
'origin': procurement.name,
'date_end': procurement.date_planned,
@@ -174,6 +181,7 @@ class procurement_order(osv.osv):
})],
'purchase_ids': [(6,0,[po_id])]
})
self.write(cr,uid,proc_id,{'requisition_id':requisition_id})
return res
procurement_order()
@@ -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">
@@ -168,6 +168,17 @@
</field>
</field>
</record>
<record model="ir.ui.view" id="procurement_normal_form_view_inherit">
<field name="name">procurement.form.inherit</field>
<field name="type">form</field>
<field name="model">procurement.order</field>
<field name="inherit_id" ref="procurement.procurement_form_view"/>
<field name="arch" type="xml">
<xpath expr="/form/notebook/page/field[@name='close_move']" position="after">
<field name="requisition_id"/>
</xpath>
</field>
</record>
</data>
</openerp>
@@ -63,7 +63,7 @@
proc_obj = self.pool.get('procurement.order')
proc_obj._procure_confirm(cr,uid)
-
On the purchase tender, I create a new purchase order for the supplier 'DistriPC' by clicking on
On the purchase requisition, I create a new purchase order for the supplier 'DistriPC' by clicking on
the button 'New RfQ'. This opens a window to ask me the supplier and I set DistriPC .
-
!record {model: purchase.requisition.partner, id: purchase_requisition_partner_0}:
@@ -74,23 +74,25 @@
-
!python {model: purchase.requisition.partner}: |
req_obj = self.pool.get('purchase.requisition')
ids =req_obj.search(cr, uid, [('origin','=','TEST/TENDER/0001')])
ids =req_obj.search(cr, uid, [('origin','=','Laptop ACER')])
self.create_order(cr, uid, [ref("purchase_requisition_partner_0")], {"lang":
'en_US', "active_model": "purchase.requisition", "tz": False, "record_id":
1, "active_ids": ids, "active_id": ids[0], })
-
I check that I have two purchase orders on the purchase tender.
I check that I have two purchase orders on the purchase requisition.
-
!python {model: purchase.order}: |
from tools.translate import _
order_ids =self.search(cr, uid, [('origin','=','TEST/TENDER/0001')])
ids=len(order_ids)
assert (ids==2), "Purchase order hasn't Created"
assert(ids == 2), _('Purchase Order not Created')
-
I set the purchase requisition as 'Not Exclusive'.
-
!python {model: purchase.requisition}: |
ids =self.search(cr, uid, [('origin','=','TEST/TENDER/0001')])
ids =self.search(cr, uid, [('origin','=','Laptop ACER')])
self.write(cr,uid,ids[0],{'exclusive': 'multiple' })
-
I change the quantities so that the purchase order for DistriPC includes 3 pieces and the
@@ -100,7 +102,7 @@
line_obj=self.pool.get('purchase.order.line')
partner_obj=self.pool.get('res.partner')
requistion_obj=self.pool.get('purchase.requisition')
requistion_ids =requistion_obj.search(cr, uid, [('origin','=','TEST/TENDER/0001')])
requistion_ids =requistion_obj.search(cr, uid, [('origin','=','Laptop ACER')])
partner_id1=partner_obj.search(cr,uid,[('name','=','ASUStek')])[0]
partner_id2=partner_obj.search(cr,uid,[('name','=','Distrib PC')])[0]
purchase_id1= self.search(cr, uid, [('partner_id','=',partner_id1),('requisition_id','in',requistion_ids)])
@@ -123,11 +125,13 @@
I check that the delivery order of the customer is in state 'Waiting Goods'.
-
!python {model: stock.picking }: |
from tools.translate import _
picking_id = self.search(cr, uid, [('origin','=','TEST/TENDER/0001'),('type','=','delivery')])
if picking_id:
pick=self.browse(cr,uid,picking_id[0])
assert (pick.state) =='confirmed'," Order is not confirm"
assert(pick.move_lines[0].state=='wating'),'Order is not wating"'
assert (pick.state =='confirmed'),_('Picking is not in confirm state.')
assert (pick.move_lines[0].state == 'waiting'), _('Stock Move is not Waiting state.')
-
I receive the order of the supplier Asustek from the Incoming Products menu.
-
@@ -176,8 +180,10 @@
I check that the delivery order of the customer is in the state Available.
-
!python {model: stock.picking }: |
from tools.translate import _
picking_id = self.search(cr, uid, [('origin','=','TEST/TENDER/0001'),('type','=','out')])
if picking_id:
pick=self.browse(cr,uid,picking_id[0])
assert (pick.state) =='available'," Order is not available"
print pick.state
assert(pick.state == 'assigned'), _('Picking is not in available state')
@@ -60,11 +60,11 @@
5 Laptop ACER, and a purchase order on the default supplier for this product.
-
!python {model: purchase.requisition}: |
requisition_ids =self.search(cr, uid, [('origin','=','TEST/TENDER/0002')])
requisition_ids =self.search(cr, uid, [('origin','=','Laptop ACER1')])
ids=len(requisition_ids)
assert len(requisition_ids), "Purchase requisition hasn't Created"
-
On the purchase tender, I create a new purchase order for the supplier 'DistriPC' by clicking on
On the purchase requisition, I create a new purchase order for the supplier 'DistriPC' by clicking on
the button 'New Request for Quotation'. This opens a window to ask me the supplier and I set DistriPC .
-
I Create purchase.requisition.partner .
@@ -77,15 +77,15 @@
-
!python {model: purchase.requisition.partner}: |
req_obj = self.pool.get('purchase.requisition')
ids =req_obj.search(cr, uid, [('origin','=','TEST/TENDER/0002')])
ids =req_obj.search(cr, uid, [('origin','=','Laptop ACER1')])
self.create_order(cr, uid, [ref("purchase_requisition_partner_0")], {"lang":
'en_US', "active_model": "purchase.requisition", "tz": False, "record_id":
1, "active_ids": ids, "active_id": ids[0], })
-
I set the purchase tender as 'Exclusive'
I set the purchase requisition as 'Exclusive'
-
!python {model: purchase.requisition}: |
ids =self.search(cr, uid, [('origin','=','TEST/TENDER/0002')])
ids =self.search(cr, uid, [('origin','=','Laptop ACER1')])
self.write(cr,uid,ids[0],{'exclusive': 'exclusive' })
-
I confirm and validate the Request for Quotation of ASUStek.
@@ -93,7 +93,7 @@
!python {model: purchase.order}: |
partner_id=self.pool.get('res.partner').search(cr,uid,[('name','=','ASUStek')])[0]
req_obj = self.pool.get('purchase.requisition')
ids =req_obj.search(cr, uid, [('origin','=','TEST/TENDER/0002')])
ids =req_obj.search(cr, uid, [('origin','=','Laptop ACER1')])
purchase_id= self.search(cr, uid, [('partner_id','=',partner_id),('requisition_id','in',ids)])[0]
import netsvc
wf_service = netsvc.LocalService("workflow")
@@ -106,7 +106,7 @@
!python {model: purchase.order}: |
partner_id=self.pool.get('res.partner').search(cr,uid,[('name','=','Distrib PC')])[0]
req_obj = self.pool.get('purchase.requisition')
ids =req_obj.search(cr, uid, [('origin','=','TEST/TENDER/0002')])
ids =req_obj.search(cr, uid, [('origin','=','Laptop ACER1')])
purchase_id= self.search(cr, uid, [('partner_id','=',partner_id),('requisition_id','in',ids)])[0]
state=self.browse(cr,uid,purchase_id).state
assert (state=='cancel')
+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
+36 -18
View File
@@ -74,7 +74,7 @@ class sale_report(osv.osv):
tools.drop_view_if_exists(cr, 'sale_report')
cr.execute("""
create or replace view sale_report as (
select el.*,
select el.*,
-- (select count(1) from sale_order_line where order_id = s.id) as nbr,
(select 1) as nbr,
s.date_order as date,
@@ -86,28 +86,46 @@ class sale_report(osv.osv):
s.user_id as user_id,
s.shop_id as shop_id,
s.company_id as company_id,
extract(epoch from (s.date_confirm-s.create_date))/(24*60*60)::decimal(16,2) as delay,
extract(epoch from avg(date_trunc('day',s.date_confirm)-date_trunc('day',s.create_date)))/(24*60*60)::decimal(16,2) as delay,
s.state,
s.shipped,
s.shipped::integer as shipped_qty_1,
s.pricelist_id as pricelist_id,
s.project_id as analytic_account_id
from
sale_order s,
(
select l.id as id,
l.product_id as product_id,
u.name as uom_name,
sum(l.product_uom_qty * u.factor) as product_uom_qty,
sum(l.product_uom_qty*l.price_unit) as price_total,
(sum(l.product_uom_qty*l.price_unit)/sum(l.product_uom_qty * u.factor)*count(l.product_id))::decimal(16,2) as price_average,
pt.categ_id, l.order_id
from
sale_order_line l
left join product_uom u on (u.id=l.product_uom)
left join product_template pt on (pt.id=l.product_id)
group by l.id, l.order_id, l.product_id, u.name, pt.categ_id) el
where s.id = el.order_id
from
sale_order s,
(
select l.id as id,
l.product_id as product_id,
u.name as uom_name,
sum(l.product_uom_qty * u.factor) as product_uom_qty,
sum(l.product_uom_qty*l.price_unit) as price_total,
(sum(l.product_uom_qty*l.price_unit)/sum(l.product_uom_qty * u.factor)*count(l.product_id))::decimal(16,2) as price_average,
pt.categ_id, l.order_id
from
sale_order_line l
left join product_uom u on (u.id=l.product_uom)
left join product_template pt on (pt.id=l.product_id)
group by l.id, l.order_id, l.product_id, u.name, pt.categ_id) el
where s.id = el.order_id
group by el.id,
el.product_id,
el.uom_name,
el.product_uom_qty,
el.price_total,
el.price_average,
el.categ_id,
el.order_id,
s.date_order,
s.date_confirm,
s.partner_id,
s.user_id,
s.shop_id,
s.company_id,
s.state,
s.shipped,
s.pricelist_id,
s.project_id
)
""")
sale_report()
+5 -4
View File
@@ -20,11 +20,11 @@
<field name="categ_id" invisible="1"/>
<field name="nbr" sum="# of Lines"/>
<field name="product_uom_qty" sum="# of Qty"/>
<field name="shipped_qty_1"/>
<field name="uom_name" invisible="context.get('set_visible',False)"/>
<field name="price_average" avg="Average Price"/>
<field name="shipped_qty_1" sum="Shipped Qty"/>
<field name="uom_name" invisible="not context.get('set_visible',False)"/>
<field name="price_average" sum="Average Price"/>
<field name="price_total" sum="Total Price"/>
<field name="delay" avg="Commitment Delay"/>
<field name="delay" sum="Commitment Delay"/>
<field name="state" invisible="1"/>
<field name="analytic_account_id" invisible="1"/>
</tree>
@@ -122,6 +122,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="search_view_id" ref="view_order_product_search"/>
<field name="view_id" ref="view_order_product_tree"/>
<field name="context">{'search_default_month':1,'search_default_User':1,'group_by_no_leaf':1,'group_by':[]}</field>
</record>
+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: wiki