[IMP]:improvement to the account voucher module

bzr revid: mga@tinyerp.com-20100831144233-u8exwykeglp9v6x6
This commit is contained in:
Mantavya Gajjar
2010-08-31 20:12:33 +05:30
parent b43052e82f
commit 2dbc48de70
5 changed files with 50 additions and 47 deletions
@@ -249,7 +249,7 @@
</tr>
<tr>
<td>
<para style="terp_default_8_Italic">[[ move_ids.name ]] - [[ get_ref(voucher.id,move_ids) ]]</para>
<para style="terp_default_8_Italic">[[ move_ids.name ]] - [[ voucher.reference ]]</para>
</td>
<td>
<para style="terp_default_9_50">
+9 -4
View File
@@ -89,7 +89,7 @@ class account_voucher(osv.osv):
('purchase','Purchase'),
('payment','Payment'),
('receipt','Receipt'),
],'Type'),
],'Default Type', readonly=True, states={'draft':[('readonly',False)]}),
'name':fields.char('Memo', size=256, readonly=True, states={'draft':[('readonly',False)]}),
'date':fields.date('Date', readonly=True, states={'draft':[('readonly',False)]}, help="Effective date for accounting entries"),
'journal_id':fields.many2one('account.journal', 'Journal', required=True, readonly=True, states={'draft':[('readonly',False)]}),
@@ -116,7 +116,7 @@ class account_voucher(osv.osv):
\n* The \'Cancelled\' state is used when user cancel voucher.'),
'amount': fields.float('Total', digits=(16, 2), required=True, readonly=True, states={'draft':[('readonly',False)]}),
'tax_amount':fields.float('Tax Amount', digits=(14,2), readonly=True, states={'draft':[('readonly',False)]}),
'reference': fields.char('Ref #', size=64, readonly=True, states={'draft':[('readonly',False)]}, help="Payment or Receipt transaction number, i.e. Bank cheque number or payorder number or Wire transfer number or Acknowledge number."),
'reference': fields.char('Ref #', size=64, readonly=True, states={'draft':[('readonly',False)]}, help="Transaction referance number."),
'number': fields.related('move_id', 'name', type="char", readonly=True, string='Number'),
'move_id':fields.many2one('account.move', 'Account Entry'),
'move_ids': fields.related('move_id','line_id', type='many2many', relation='account.move.line', string='Journal Items', readonly=True),
@@ -155,8 +155,8 @@ class account_voucher(osv.osv):
voucher_amount = 0.0
for line in voucher.line_ids:
voucher_amount += line.untax_amount or line.amount
line.amount = line.untax_amount
voucher_line_pool.write(cr, uid, [line.id], {'amount':line.untax_amount, 'untax_amount':line.untax_amount})
line.amount = line.untax_amount or line.amount
voucher_line_pool.write(cr, uid, [line.id], {'amount':line.amount, 'untax_amount':line.untax_amount})
if not voucher.tax_id:
continue
@@ -611,6 +611,7 @@ class account_voucher(osv.osv):
}
if view_type == 'form':
tview = voucher_type.get(context.get('type'))
tview = tview or 'view_voucher_form'
result = data_pool._get_id(cr, uid, 'account_voucher', tview)
view_id = data_pool.browse(cr, uid, result, context=context).res_id
@@ -707,13 +708,16 @@ class account_voucher_line(osv.osv):
return values
journal = journal_pool.browse(cr, user, journal_id)
account_id = False
ttype = 'cr'
if journal.type in ('sale', 'purchase_refund'):
account_id = journal.default_credit_account_id and journal.default_credit_account_id.id or False
elif journal.type in ('purchase', 'expense', 'sale_refund'):
account_id = journal.default_debit_account_id and journal.default_debit_account_id.id or False
ttype = 'dr'
elif partner_id:
partner = partner_pool.browse(cr, user, partner_id, context=context)
if context.get('type') == 'payment':
ttype = 'dr'
account_id = partner.property_account_payable.id
elif context.get('type') == 'receipt':
account_id = partner.property_account_receivable.id
@@ -722,6 +726,7 @@ class account_voucher_line(osv.osv):
raise osv.except_osv(_('Invalid Error !'), _('Please change partner and try again !'))
values.update({
'account_id':account_id,
'type':ttype
})
return values
account_voucher_line()
@@ -8,7 +8,7 @@
<field name="arch" type="xml">
<form string="Bill Payment">
<group col="6" colspan="4">
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, type)" string="Customer"/>
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, type)" string="Vendor"/>
<field name="journal_id"
domain="[('type','in',['bank', 'cash'])]"
widget="selection" select="1"
@@ -40,6 +40,9 @@
<field name="amount_unreconciled" sum="Open Balance" readonly="1"/>
<field name="amount" sum="Payment"/>
</tree>
<form string="Payment Information">
<label string="Form view not available for Payment Lines"/>
</form>
</field>
<field name="line_cr_ids" colspan="4" nolabel="1" attrs="{'invisible': [('pre_line','=',False)]}" default_get="{'journal_id':journal_id, 'partner_id':partner_id}">
<tree string="Credits" editable="bottom">
@@ -74,7 +77,7 @@
<group col="10" colspan="4">
<field name="state"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" icon="gtk-cancel"/>
<button name="proforma_voucher" string="Create" states="draft" icon="terp-camera_test"/>
<button name="proforma_voucher" string="Post" states="draft" icon="terp-camera_test"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" icon="terp-stock_effects-object-colorize"/>
<button name="%(action_view_account_voucher_unreconcile)d" string="Unreconcile" type="action" states="posted" icon="terp-stock_effects-object-colorize"/>
</group>
@@ -2,18 +2,19 @@
<openerp>
<data>
<!-- <act_window-->
<!-- id="act_pay_voucher"-->
<!-- name="Sales Payment"-->
<!-- context="{'partner_id': partner_id, 'type':'receipt', 'journal_type':'bank'}"-->
<!-- res_model="account.voucher"-->
<!-- src_model="account.voucher"/>-->
<act_window
id="act_pay_voucher"
name="Sales Payment"
context="{'default_journal_type':'bank', 'default_type':'receipt', 'default_partner_id': partner_id}"
view_id="account_open_vouchers_view"
res_model="account.voucher"
src_model="account.voucher"/>
<!-- <record id="act_pay_voucher" model="ir.actions.act_window">-->
<!-- <field name="name">Sales Payment</field>-->
<!-- <field name="res_model">account.voucher.open</field>-->
<!-- <field name="view_type">form</field>-->
<!-- <field name="domain">[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt'), ('partner_id','=',partner_id)]</field>-->
<!-- <field name="context">{'journal_type':'bank', 'type':'receipt', 'partner_id': partner_id}</field>-->
<!-- <field name="context">{'default_journal_type':'bank', 'default_type':'receipt', 'default_partner_id': partner_id}</field>-->
<!-- <field name="view_id" ref="account_open_vouchers_view"/>-->
<!-- <field name="target">new</field>-->
<!-- </record>-->
@@ -26,7 +27,7 @@
<form string="Sales Receipt">
<group col="6" colspan="4">
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id)" string="Customer"/>
<field name="journal_id" domain="[('type','=','sale')]" widget="selection" on_change="onchange_journal(journal_id)"/>
<field name="journal_id" domain="[('type','=','sale')]" widget="selection" on_change="onchange_journal(journal_id)"/>
<field name="number"/>
<field name="name" colspan="4"/>
<field name="date" on_change="onchange_date(date)"/>
@@ -34,7 +35,7 @@
</group>
<notebook colspan="4">
<page string="Sales Information">
<field name="line_cr_ids" on_change="onchange_price(line_cr_ids, tax_id, partner_id)" default_get="{'journal_id':journal_id, 'type':type, partner_id':partner_id}" colspan="4" nolabel="1" height="180">
<field name="line_cr_ids" on_change="onchange_price(line_cr_ids, tax_id, partner_id)" default_get="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" colspan="4" nolabel="1" height="180">
<tree string="Sales Lines" editable="bottom">
<field name="account_id" domain="[('user_type.report_type','=','income'),('type','!=','view')]" widget="selection"/>
<field name="name"/>
@@ -79,7 +80,7 @@
<field name="state"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" icon="gtk-cancel"/>
<button name="proforma_voucher" string="Post" states="draft" icon="terp-camera_test"/>
<!-- <button name="%(action_vendor_receipt)d" type="action" string="Pay"/>-->
<!-- <button name="%(act_pay_voucher)d" type="action" string="Pay"/>-->
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" icon="terp-stock_effects-object-colorize"/>
<button name="%(action_view_account_voucher_unreconcile)d" string="Cancel" type="action" states="posted" icon="terp-stock_effects-object-colorize"/>
</group>
@@ -130,17 +131,19 @@
<separator string="Internal Notes" colspan="2"/>
<field name="narration" colspan="2" nolabel="1"/>
</group>
<group col="4" colspan="1">
<group col="2" colspan="1">
<separator string="Other Information" colspan="2"/>
<field name="date" string="Bill Date" select="1" on_change="onchange_date(date)"/>
</group>
<group col="2" colspan="1">
<group col="2" colspan="1">
<separator string="Payment Terms" colspan="2"/>
<field name="term_id" widget="selection" on_change="onchange_term_id(term_id, amount)"/>
<field name="date" string="Bill Date" select="1" on_change="onchange_date(date)"/>
<field name="date_due"/>
<field name="amount" required="0" string="Amount Due"/>
</group>
<group col="4" colspan="1">
<separator string="Total" colspan="4"/>
<field name="tax_id" on_change="onchange_price(line_dr_ids, tax_id, partner_id)" widget="selection" domain="[('type_tax_use','in',('purchase','all'))]"/><field name="tax_amount" on_change="onchange_price(line_ids, tax_id, partner_id)" nolabel="1"/><button type="object" icon="terp-stock_format-scientific" name="compute_tax" string="Compute Tax" attrs="{'invisible': [('state','!=','draft')]}"/>
<label colspan="1" string=""/><field name="amount" string="Total"/>
</group>
</group>
</page>
<page string="Journal Items" groups="base.group_extended" attrs="{'invisible': [('state','!=','posted')]}">
+17 -25
View File
@@ -27,46 +27,37 @@
<field name="arch" type="xml">
<form string="Accounting Voucher">
<group col="6" colspan="4">
<field name="partner_id" on_change="onchange_partner_id(partner_id, type)"/>
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id)"/>
<field name="name" colspan="4"/>
<field name="journal_id" widget="selection" select="1" on_change="onchange_journal(journal_id,type)"/>
<field name="account_id" widget="selection" on_change="onchange_account(account_id)" readonly="1"/>
<field name="type" on_change="onchange_journal(journal_id,type)"/>
<field name="type" on_change="onchange_partner_id(partner_id, journal_id)"/>
<field name="reference" select="1"/>
<field name="journal_id" widget="selection" select="1" on_change="onchange_partner_id(partner_id, journal_id)"/>
<field name="account_id" widget="selection" invisible="True"/>
</group>
<notebook colspan="4">
<page string="Voucher Entry">
<field name="line_ids" colspan="4" nolabel="1" height="180">
<field name="line_ids" on_change="onchange_price(line_ids, False, partner_id)" default_get="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" colspan="4" nolabel="1" height="180">
<tree string="Voucher Lines" editable="top">
<field name="name" on_change="onchange_partner(parent.partner_id,type,parent.type, parent.currency_id)"/>
<field name="account_id"/>
<field name="type" on_change="onchange_type(parent.partner_id,type,parent.type, parent.currency_id)"/>
<field name="name"/>
<field name="amount"/>
<field name="ref"/>
<field name="type"/>
<field name="account_analytic_id" domain="[('parent_id','!=',False)]"/>
</tree>
</field>
<group col="2" colspan="3">
<separator string="Narration" colspan="2"/>
<separator string="Internal Notes" colspan="2"/>
<field name="narration" colspan="2" nolabel="1"/>
</group>
<group col="2" colspan="1">
<group col="2" colspan="1" attrs="{'invisible': [('type','!=','sale')]}">
<separator string="Payment Options" colspan="2"/>
<field name="pay_now"/>
<field name="pay_journal_id" on_change="onchange_pay_journal(pay_journal_id,type)" attrs="{'readonly': [('pay_now','=',False)], 'required': [('pay_now','=',True)]}"/>
<field name="pay_account_id" attrs="{'readonly': [('pay_now','=',False)], 'required': [('pay_now','=',True)]}"/>
<field name="pay_amount"/>
</group>
<group col="2" colspan="1">
<separator string="Other Information" colspan="2"/>
<field name="number"/>
<field name="reference" select="1"/>
<field name="date" select="1" on_change="onchange_date(date)"/>
<field name="currency_id" select="1" attrs="{'readonly':[('type','in',['sale', 'purchase'])]}"/>
</group>
<separator string="Other Information" colspan="2"/>
<field name="amount" string="Total"/>
<field name="number"/>
<field name="date" select="1" on_change="onchange_date(date)"/>
<field name="currency_id" select="1" attrs="{'readonly':[('type','in',['sale', 'purchase'])]}"/>
</group>
</page>
<page string="Journal Items">
<page string="Journal Items" groups="base.group_extended" attrs="{'invisible': [('state','!=','posted')]}">
<group col="6" colspan="4">
<field name="company_id" select="1" widget="selection" groups="base.group_multi_company"/>
<field name="period_id"/>
@@ -78,9 +69,10 @@
</notebook>
<group col="10" colspan="4">
<field name="state"/>
<button name="proforma_voucher" string="Create" states="draft" icon="terp-document-new"/>
<button name="cancel_voucher" string="Cancel" states="draft,proforma" icon="gtk-cancel"/>
<button name="proforma_voucher" string="Post" states="draft" icon="terp-camera_test"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" icon="terp-stock_effects-object-colorize"/>
<button name="%(action_view_account_voucher_unreconcile)d" string="Cancel" type="action" states="posted" icon="terp-stock_effects-object-colorize"/>
</group>
</form>
</field>