[IMP]: improvement in to the account
* invoice * journal * account move * accout move lines bzr revid: mga@tinyerp.com-20100727143307-sz4f7tb86mkzfs8g
This commit is contained in:
@@ -79,7 +79,7 @@ module named account_vouchers
|
||||
'wizard/account_invoice_state_view.xml',
|
||||
'wizard/account_partner_balance_report_view.xml',
|
||||
'wizard/account_balance_report_view.xml',
|
||||
'wizard/account_move_line_select_view.xml',
|
||||
# 'wizard/account_move_line_select_view.xml',
|
||||
'wizard/account_aged_trial_balance_view.xml',
|
||||
'wizard/account_compare_account_balance_report_view.xml',
|
||||
'wizard/account_third_party_ledger.xml',
|
||||
|
||||
@@ -629,8 +629,8 @@ class account_journal(osv.osv):
|
||||
'currency': fields.many2one('res.currency', 'Currency', help='The currency used to enter statement'),
|
||||
'entry_posted': fields.boolean('Skip \'Draft\' State for Created Entries', help='Check this box if you don\'t want new account moves to pass through the \'draft\' state and instead goes directly to the \'posted state\' without any manual validation.'),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True, select=1, help="Company related to this journal"),
|
||||
'invoice_sequence_id': fields.many2one('ir.sequence', 'Invoice Sequence', \
|
||||
help="The sequence used for invoice numbers in this journal."),
|
||||
# 'invoice_sequence_id': fields.many2one('ir.sequence', 'Invoice Sequence', \
|
||||
# help="The sequence used for invoice numbers in this journal."),
|
||||
'allow_date':fields.boolean('Check Date not in the Period', help= 'If set to True then do not accept the entry if the entry date is not into the period dates'),
|
||||
}
|
||||
|
||||
@@ -695,13 +695,13 @@ class account_journal(osv.osv):
|
||||
'sequence_id':seq_id
|
||||
})
|
||||
|
||||
if journal.type in journal_type and not journal.invoice_sequence_id:
|
||||
res_ids = date_pool.search(cr, uid, [('model','=','ir.sequence'), ('name','=',journal_seq.get(journal.type, 'sale'))])
|
||||
inv_seq_id = date_pool.browse(cr, uid, res_ids[0]).res_id
|
||||
inv_seq_id
|
||||
res.update({
|
||||
'invoice_sequence_id':inv_seq_id
|
||||
})
|
||||
# if journal.type in journal_type and not journal.invoice_sequence_id:
|
||||
# res_ids = date_pool.search(cr, uid, [('model','=','ir.sequence'), ('name','=',journal_seq.get(journal.type, 'sale'))])
|
||||
# inv_seq_id = date_pool.browse(cr, uid, res_ids[0]).res_id
|
||||
# inv_seq_id
|
||||
# res.update({
|
||||
# 'invoice_sequence_id':inv_seq_id
|
||||
# })
|
||||
|
||||
result = self.write(cr, uid, [journal.id], res)
|
||||
|
||||
|
||||
@@ -400,7 +400,7 @@ class account_move_line(osv.osv):
|
||||
'credit': fields.float('Credit', digits_compute=dp.get_precision('Account')),
|
||||
'account_id': fields.many2one('account.account', 'Account', required=True, ondelete="cascade", domain=[('type','<>','view'), ('type', '<>', 'closed')], select=2),
|
||||
'move_id': fields.many2one('account.move', 'Move', ondelete="cascade", states={'valid':[('readonly',True)]}, help="The move of this entry line.", select=2),
|
||||
|
||||
'narration': fields.related('move_id','narration', type='text', relation='account.move', string='Narration'),
|
||||
'ref': fields.char('Ref.', size=64),
|
||||
'statement_id': fields.many2one('account.bank.statement', 'Statement', help="The bank statement used for bank reconciliation", select=1),
|
||||
'reconcile_id': fields.many2one('account.move.reconcile', 'Reconcile', readonly=True, ondelete='set null', select=2),
|
||||
|
||||
+105
-34
@@ -395,15 +395,14 @@
|
||||
<field name="centralisation" groups="base.group_extended"/>
|
||||
<field name="entry_posted"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Invoicing Data" colspan="4"/>
|
||||
<field name="invoice_sequence_id" groups="base.group_extended"/>
|
||||
<field name="group_invoice_lines"/>
|
||||
</group>
|
||||
<group colspan="2" col="2" groups="base.group_extended">
|
||||
<separator string="Sequence" colspan="4"/>
|
||||
<field name="sequence_id"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Invoicing Data" colspan="4"/>
|
||||
<field name="group_invoice_lines"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Entry Controls" groups="base.group_extended">
|
||||
<separator colspan="4" string="Accounts Type Allowed (empty for no control)"/>
|
||||
@@ -977,7 +976,8 @@
|
||||
<separator colspan="2" string="Analytic"/>
|
||||
<field name="analytic_account_id"/>
|
||||
</group>
|
||||
|
||||
<separator string="Narration" colspan="4"/>
|
||||
<field name="narration" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Analytic Lines">
|
||||
<field colspan="4" name="analytic_lines" nolabel="1" context="{'default_general_account_id':account_id, 'default_name': name, 'default_date':date, 'amount': (debit or 0.0)-(credit or 0.0)}"/>
|
||||
@@ -1055,22 +1055,27 @@
|
||||
<search string="Search Entry Lines">
|
||||
<group col='10' colspan='4'>
|
||||
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Entry Lines"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-camera_test" string="Posted" domain="[('state','=','valid')]" help="Posted Entry Lines"/>
|
||||
<filter icon="terp-stock_symbol-selection" string="Unposted" domain="[('move_id.state','=','draft')]" help="Unposted Entry Lines"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-stock_symbol-selection" string="Unposted" domain="[('move_id.state','=','draft')]" help="Unposted Entry Lines"/>
|
||||
<filter icon="terp-stock_symbol-selection" string="Unreconciled" domain="[('reconcile_id','=',False), ('account_id.type','in',['receivable', 'payable'])]" help="Unreconciled Entry Lines"/>
|
||||
<field name="date" select='1'/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="ref" select="1" string="Reference"/>
|
||||
<field name="move_id" select="1" string="Number (Move)"/>
|
||||
<field name="name" 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)]"/>
|
||||
</field>
|
||||
<field name="balance" string="Debit/Credit" select='1'/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group col="10" colspan="4">
|
||||
<field name="journal_id" required="1" widget="selection" context="{'journal_id':self, 'visible_id':self or 0, 'normal_view':False}"/>
|
||||
<field name="period_id" required="1" widget="selection" context="{'period_id':self}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="narration" select="1"/>
|
||||
<field name="date" select='1'/>
|
||||
<field name="balance" string="Debit/Credit" select='1'/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -1096,6 +1101,23 @@
|
||||
<field name="search_view_id" ref="view_account_move_line_filter"/>
|
||||
</record>
|
||||
|
||||
<record id="action_move_line_select" model="ir.actions.act_window">
|
||||
<field name="name">Journal Items</field>
|
||||
<field name="res_model">account.move.line</field>
|
||||
<field name="view_type">form</field>
|
||||
<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">[('account_id', 'child_of', active_id)]</field>
|
||||
</record>
|
||||
|
||||
<record id="ir_account_move_line_select" model="ir.values">
|
||||
<field name="key2">tree_but_open</field>
|
||||
<field name="model">account.account</field>
|
||||
<field name="name">Open Journal Items</field>
|
||||
<field eval="'ir.actions.act_window,%d'%action_move_line_select" name="value"/>
|
||||
<field eval="True" name="object"/>
|
||||
</record>
|
||||
<!--
|
||||
Account.Entry Edition
|
||||
-->
|
||||
@@ -1152,28 +1174,75 @@
|
||||
<page string="Journal Entries Lines">
|
||||
<field colspan="4" name="line_id" nolabel="1" height="250" widget="one2many_list" default_get="{'lines':line_id ,'journal':journal_id }">
|
||||
<form string="Account Entry Line">
|
||||
<separator colspan="4" string="General Information"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="account_id" domain="[('journal_id','=',parent.journal_id)]"/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit,parent.date,parent.journal_id)"/>
|
||||
<group col="6" colspan="4">
|
||||
<field name="name" select="1"/>
|
||||
<field name="ref"/>
|
||||
<field name="partner_id" select="1" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit,date)"/>
|
||||
|
||||
<field name="journal_id"/>
|
||||
<field name="period_id"/>
|
||||
<field name="company_id" required="1" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Information">
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Amount"/>
|
||||
<field name="account_id" select="1" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<field name="debit"/>
|
||||
<field name="credit"/>
|
||||
<field name="quantity"/>
|
||||
</group>
|
||||
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Accounting Documents"/>
|
||||
<field name="invoice"/>
|
||||
<field name="move_id" required="False"/>
|
||||
<field name="statement_id"/>
|
||||
</group>
|
||||
|
||||
<field name="debit" select="1"/>
|
||||
<field name="credit" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Dates"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="date_maturity"/>
|
||||
<field name="date_created"/>
|
||||
</group>
|
||||
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Taxes"/>
|
||||
<field name="tax_code_id"/>
|
||||
<field name="tax_amount"/>
|
||||
<field name="account_tax_id" domain="[('parent_id','=',False)]"/>
|
||||
</group>
|
||||
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Currency"/>
|
||||
<field name="currency_id"/>
|
||||
<field name="amount_currency"/>
|
||||
</group>
|
||||
|
||||
<separator colspan="4" string="Optional Information"/>
|
||||
<field name="currency_id"/>
|
||||
<field name="amount_currency"/>
|
||||
<field name="quantity" select="1"/>
|
||||
<newline/>
|
||||
<field name="date_maturity"/>
|
||||
<field name="date_created"/>
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Reconciliation"/>
|
||||
<field name="reconcile_id"/>
|
||||
<field name="reconcile_partial_id"/>
|
||||
</group>
|
||||
|
||||
<separator colspan="4" string="State"/>
|
||||
<field name="reconcile_id"/>
|
||||
<field name="reconcile_partial_id"/>
|
||||
<field name="statement_id"/>
|
||||
<field name="state"/>
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="States"/>
|
||||
<field name="state"/>
|
||||
<field name="blocked"/>
|
||||
</group>
|
||||
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Analytic"/>
|
||||
<field name="analytic_account_id"/>
|
||||
</group>
|
||||
<separator string="Narration" colspan="4"/>
|
||||
<field name="narration" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Analytic Lines">
|
||||
<field colspan="4" name="analytic_lines" nolabel="1" context="{'default_general_account_id':account_id, 'default_name': name, 'default_date':date, 'amount': (debit or 0.0)-(credit or 0.0)}"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
<tree colors="blue:state in ('draft');black:state in ('posted')" editable="top" string="Account Entry Line">
|
||||
<field name="ref"/>
|
||||
@@ -1217,11 +1286,13 @@
|
||||
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Entries"/>
|
||||
<filter icon="terp-camera_test" string="Posted" domain="[('state','=','posted')]" help="Posted Entries"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-camera_test" string="To Review" domain="[('to_check','=',True)]" groups="base.group_extended" help="To Review"/>
|
||||
<filter icon="terp-stock_effects-object-colorize" string="To Review" domain="[('to_check','=',True)]" groups="base.group_extended" help="To Review"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="date" select='1'/>
|
||||
<field name="name" select='1'/>
|
||||
<field name="partner_id" select='1'/>
|
||||
<field name="ref" select="1"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="partner_id" select='1'/>
|
||||
<field name="date" select='1'/>
|
||||
<field name="narration" select="1"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group col='8' colspan='4'>
|
||||
@@ -1828,7 +1899,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_move_line_tax_tree"/>
|
||||
<field name="domain">[('tax_code_id','=',active_id),('state','<>','draft')]</field>
|
||||
<field name="domain">[('tax_code_id','child_of',active_id),('state','<>','draft')]</field>
|
||||
</record>
|
||||
<record id="ir_open_tax_move_line" model="ir.values">
|
||||
<field name="key2">tree_but_open</field>
|
||||
|
||||
+32
-36
@@ -219,7 +219,7 @@ class account_invoice(osv.osv):
|
||||
|
||||
_name = "account.invoice"
|
||||
_description = 'Invoice'
|
||||
_order = "number"
|
||||
_order = "id"
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Description', size=64, select=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
@@ -231,7 +231,8 @@ class account_invoice(osv.osv):
|
||||
('in_refund','Supplier Refund'),
|
||||
],'Type', readonly=True, select=True, change_default=True),
|
||||
|
||||
'number': fields.char('Invoice Number', size=32, readonly=True, help="Unique number of the invoice, computed automatically when the invoice is created."),
|
||||
'number': fields.related('move_id','name', type='char', readonly=True, size=64, relation='account.move', store=True, string='Number'),
|
||||
#'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, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
@@ -768,8 +769,8 @@ class account_invoice(osv.osv):
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
context = {}
|
||||
for inv in self.browse(cr, uid, ids):
|
||||
if not inv.journal_id.invoice_sequence_id:
|
||||
raise osv.except_osv(_('Error !'), _('Please define invoice sequence on invoice journal'))
|
||||
if not inv.journal_id.sequence_id:
|
||||
raise osv.except_osv(_('Error !'), _('Please define sequence on invoice journal'))
|
||||
if not inv.invoice_line:
|
||||
raise osv.except_osv(_('No Invoice Lines !'), _('Please create some invoice lines.'))
|
||||
if inv.move_id:
|
||||
@@ -875,7 +876,14 @@ class account_invoice(osv.osv):
|
||||
|
||||
line = self.finalize_invoice_move_lines(cr, uid, inv, line)
|
||||
|
||||
move = {'ref': inv.number, 'line_id': line, 'journal_id': journal_id, 'date': date, 'type': entry_type}
|
||||
move = {
|
||||
'ref': inv.number,
|
||||
'line_id': line,
|
||||
'journal_id': journal_id,
|
||||
'date': date,
|
||||
'type': entry_type,
|
||||
'narration':inv.comment
|
||||
}
|
||||
period_id=inv.period_id and inv.period_id.id or False
|
||||
if not period_id:
|
||||
period_ids= self.pool.get('account.period').search(cr, uid, [('date_start','<=',inv.date_invoice or time.strftime('%Y-%m-%d')),('date_stop','>=',inv.date_invoice or time.strftime('%Y-%m-%d'))])
|
||||
@@ -919,44 +927,32 @@ class account_invoice(osv.osv):
|
||||
}
|
||||
|
||||
def action_number(self, cr, uid, ids, *args):
|
||||
#TODO: not correct fix but required a frech values before reading it.
|
||||
self.write(cr, uid, ids, {})
|
||||
|
||||
for obj_inv in self.browse(cr, uid, ids):
|
||||
id = obj_inv.id
|
||||
invtype = obj_inv.type
|
||||
number = obj_inv.number
|
||||
move_id = obj_inv.move_id and obj_inv.move_id.id or False
|
||||
reference = obj_inv.reference or ''
|
||||
if not number:
|
||||
tmp_context = {
|
||||
'fiscalyear_id': obj_inv.period_id.fiscalyear_id.id
|
||||
}
|
||||
if obj_inv.journal_id.invoice_sequence_id:
|
||||
sequence_id = obj_inv.journal_id.invoice_sequence_id.id
|
||||
number = self.pool.get('ir.sequence').get_id(cr, uid,
|
||||
sequence_id,
|
||||
'id',
|
||||
context=tmp_context)
|
||||
else:
|
||||
number = self.pool.get('ir.sequence').get_id(cr, uid,
|
||||
'account.invoice.%s' % invtype,
|
||||
'code',
|
||||
context=tmp_context)
|
||||
if invtype in ('in_invoice', 'in_refund'):
|
||||
ref = reference
|
||||
else:
|
||||
ref = self._convert_ref(cr, uid, number)
|
||||
cr.execute('UPDATE account_invoice SET number=%s ' \
|
||||
'WHERE id=%s', (number, id))
|
||||
cr.execute('UPDATE account_move SET ref=%s ' \
|
||||
'WHERE id=%s AND (ref is null OR ref = \'\')',
|
||||
|
||||
if invtype in ('in_invoice', 'in_refund'):
|
||||
ref = reference
|
||||
else:
|
||||
ref = self._convert_ref(cr, uid, number)
|
||||
|
||||
cr.execute('UPDATE account_move SET ref=%s ' \
|
||||
'WHERE id=%s AND (ref is null OR ref = \'\')',
|
||||
(ref, move_id))
|
||||
cr.execute('UPDATE account_move_line SET ref=%s ' \
|
||||
'WHERE move_id=%s AND (ref is null OR ref = \'\')',
|
||||
(ref, move_id))
|
||||
cr.execute('UPDATE account_analytic_line SET ref=%s ' \
|
||||
'FROM account_move_line ' \
|
||||
'WHERE account_move_line.move_id = %s ' \
|
||||
'AND account_analytic_line.move_id = account_move_line.id',
|
||||
(ref, move_id))
|
||||
cr.execute('UPDATE account_move_line SET ref=%s ' \
|
||||
'WHERE move_id=%s AND (ref is null OR ref = \'\')',
|
||||
(ref, move_id))
|
||||
cr.execute('UPDATE account_analytic_line SET ref=%s ' \
|
||||
'FROM account_move_line ' \
|
||||
'WHERE account_move_line.move_id = %s ' \
|
||||
'AND account_analytic_line.move_id = account_move_line.id',
|
||||
(ref, move_id))
|
||||
for inv_id, name in self.name_get(cr, uid, [id]):
|
||||
message = _('Invoice ') + " '" + name + "' "+ _("is validated.")
|
||||
self.log(cr, uid, inv_id, message)
|
||||
|
||||
@@ -45,7 +45,9 @@ import account_open_closed_fiscalyear
|
||||
import account_compare_account_balance_report
|
||||
import account_invoice_state
|
||||
import account_chart
|
||||
import account_move_line_select
|
||||
#TODO: remove this file no moe used
|
||||
# also remove related view fiel
|
||||
#import account_move_line_select
|
||||
|
||||
import account_validate_account_move
|
||||
import account_use_model
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
<field name="model">account.move.line.select</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Account Select">
|
||||
<label string="Are you sure you want to open Account move line entries!" colspan="4"/>
|
||||
<separator string="" colspan="4" />
|
||||
<form string="Account Select">
|
||||
<label string="Are you sure you want to open Account move line entries!" colspan="4"/>
|
||||
<separator string="" colspan="4" />
|
||||
<group colspan="4" col="6">
|
||||
<button icon="terp-gtk-stop" special="cancel" string="Cancel"/>
|
||||
<button icon="terp-gtk-go-back-rtl" string="Open Entries" name="open_window" type="object" default_focus="1"/>
|
||||
<button icon="terp-gtk-stop" special="cancel" string="Cancel"/>
|
||||
<button icon="terp-gtk-go-back-rtl" string="Open Entries" name="open_window" type="object" default_focus="1"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
@@ -27,13 +27,13 @@
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<record id="ir_account_move_line_select" model="ir.values">
|
||||
<field name="key2">tree_but_open</field>
|
||||
<field name="model">account.account</field>
|
||||
<field name="name">Open Account</field>
|
||||
<field eval="'ir.actions.act_window,%d'%action_account_move_line_select_button" name="value"/>
|
||||
<field eval="True" name="object"/>
|
||||
</record>
|
||||
<!-- <record id="ir_account_move_line_select" model="ir.values">-->
|
||||
<!-- <field name="key2">tree_but_open</field>-->
|
||||
<!-- <field name="model">account.account</field>-->
|
||||
<!-- <field name="name">Open Account</field>-->
|
||||
<!-- <field eval="'ir.actions.act_window,%d'%action_account_move_line_select_button" name="value"/>-->
|
||||
<!-- <field eval="True" name="object"/>-->
|
||||
<!-- </record>-->
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
Reference in New Issue
Block a user