fix bug number : 327990 for fiscal position added at the time of creating invoice from sale,purchase,and other modules

bzr revid: mra@tinyerp.com-20090211133254-xnp20b9tsbo28v35
This commit is contained in:
mra (Open ERP) 2009-02-11 19:02:54 +05:30
parent 4aa00ae64b
commit 759cead482
12 changed files with 26 additions and 15 deletions

View File

@ -113,6 +113,7 @@ def _makeInvoices(self, cr, uid, data, context):
'currency_id' :reg.partner_invoice_id.property_product_pricelist.currency_id.id, 'currency_id' :reg.partner_invoice_id.property_product_pricelist.currency_id.id,
'comment': "", 'comment': "",
'payment_term':reg.partner_invoice_id.property_payment_term.id, 'payment_term':reg.partner_invoice_id.property_payment_term.id,
'fiscal_position': reg.partner_invoice_id.property_account_position.id
} }
inv_obj = pool_obj.get('account.invoice') inv_obj = pool_obj.get('account.invoice')

View File

@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*- # -*- encoding: utf-8 -*-
############################################################################## ##############################################################################
# #
# OpenERP, Open Source Management Solution # OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved # Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$ # $Id$
# #
@ -152,6 +152,7 @@ class hr_expense_expense(osv.osv):
'price_type': 'tax_included', 'price_type': 'tax_included',
'currency_id': exp.currency_id.id, 'currency_id': exp.currency_id.id,
'payment_term': payment_term_id, 'payment_term': payment_term_id,
'fiscal_position': exp.employee_id.address_id.partner_id.property_account_position.id
} }
if payment_term_id: if payment_term_id:
to_update = invoice_obj.onchange_payment_term_date_invoice(cr, uid, [], to_update = invoice_obj.onchange_payment_term_date_invoice(cr, uid, [],

View File

@ -71,6 +71,7 @@ class final_invoice_create(wizard.interface):
'account_id': partner.property_account_receivable.id, 'account_id': partner.property_account_receivable.id,
'currency_id': account.pricelist_id.currency_id.id, 'currency_id': account.pricelist_id.currency_id.id,
'date_due': date_due, 'date_due': date_due,
'fiscal_position': account.partner_id.property_account_position.id
} }
last_invoice = pool.get('account.invoice').create(cr, uid, curr_invoice) last_invoice = pool.get('account.invoice').create(cr, uid, curr_invoice)
invoices.append(last_invoice) invoices.append(last_invoice)

View File

@ -79,6 +79,7 @@ class invoice_create(wizard.interface):
'account_id': partner.property_account_receivable.id, 'account_id': partner.property_account_receivable.id,
'currency_id': account.pricelist_id.currency_id.id, 'currency_id': account.pricelist_id.currency_id.id,
'date_due': date_due, 'date_due': date_due,
'fiscal_position': account.partner_id.property_account_position.id
} }
last_invoice = pool.get('account.invoice').create(cr, uid, curr_invoice) last_invoice = pool.get('account.invoice').create(cr, uid, curr_invoice)
invoices.append(last_invoice) invoices.append(last_invoice)
@ -129,11 +130,11 @@ class invoice_create(wizard.interface):
# Compute for lines # Compute for lines
# #
cr.execute("SELECT * " # TODO optimize this cr.execute("SELECT * " # TODO optimize this
" FROM account_analytic_line" " FROM account_analytic_line"
" WHERE account_id=%%s" " WHERE account_id=%%s"
" AND id IN (%s)" " AND id IN (%s)"
" AND product_id=%%s" " AND product_id=%%s"
" AND to_invoice=%%s" % ','.join(['%s']*len(data['ids'])), " AND to_invoice=%%s" % ','.join(['%s']*len(data['ids'])),
(account.id, data['ids'], product_id, factor_id)) (account.id, data['ids'], product_id, factor_id))
line_ids = cr.dictfetchall() line_ids = cr.dictfetchall()
note = [] note = []

View File

@ -364,10 +364,10 @@ class Partner(osv.osv):
'member_lines': fields.one2many('membership.membership_line', 'partner', 'Membership'), 'member_lines': fields.one2many('membership.membership_line', 'partner', 'Membership'),
'free_member': fields.boolean('Free member'), 'free_member': fields.boolean('Free member'),
'membership_amount': fields.float( 'membership_amount': fields.float(
'Membership amount', digites=(16, 2), 'Membership amount', digites=(16, 2),
help='The price negociated by the partner'), help='The price negociated by the partner'),
'membership_state': fields.function( 'membership_state': fields.function(
_membership_state, method = True, _membership_state, method = True,
string = 'Current membership state', type = 'selection', string = 'Current membership state', type = 'selection',
selection = STATE ,store = { selection = STATE ,store = {
'account.invoice':(_get_invoice_partner,['state'], 10), 'account.invoice':(_get_invoice_partner,['state'], 10),
@ -385,8 +385,8 @@ class Partner(osv.osv):
} }
), ),
'membership_stop': fields.function( 'membership_stop': fields.function(
_membership_stop, method = True, _membership_stop, method = True,
string = 'Stop membership date', type = 'date', string = 'Stop membership date', type = 'date',
store = { store = {
'account.invoice':(_get_invoice_partner,['state'], 10), 'account.invoice':(_get_invoice_partner,['state'], 10),
'membership.membership_line':(_get_partner_id,['state'], 10), 'membership.membership_line':(_get_partner_id,['state'], 10),
@ -760,7 +760,7 @@ class account_invoice_line(osv.osv):
if line.invoice_id.date_invoice > date_from and line.invoice_id.date_invoice < date_to: if line.invoice_id.date_invoice > date_from and line.invoice_id.date_invoice < date_to:
date_from = line.invoice_id.date_invoice date_from = line.invoice_id.date_invoice
line_id = member_line_obj.create(cr, uid, { line_id = member_line_obj.create(cr, uid, {
'partner': line.invoice_id.partner_id.id, 'partner': line.invoice_id.partner_id and line.invoice_id.partner_id.id or False,
'date_from': date_from, 'date_from': date_from,
'date_to': date_to, 'date_to': date_to,
'account_invoice_line': line.id, 'account_invoice_line': line.id,

View File

@ -78,7 +78,8 @@ def _invoice_membership(self, cr, uid, data, context):
'partner_id' : partner_id, 'partner_id' : partner_id,
'address_invoice_id': partner_address_ids[partner_id]['id'], 'address_invoice_id': partner_address_ids[partner_id]['id'],
'account_id': account_id, 'account_id': account_id,
'invoice_line':[(6,0,[invoice_line_id])] 'invoice_line':[(6,0,[invoice_line_id])],
'fiscal_position': fpos_id or False
} }
) )
invoice_list.append(invoice_id) invoice_list.append(invoice_id)

View File

@ -281,6 +281,7 @@ class mrp_repair(osv.osv):
'address_invoice_id': repair.address_id.id, 'address_invoice_id': repair.address_id.id,
'currency_id': repair.pricelist_id.currency_id.id, 'currency_id': repair.pricelist_id.currency_id.id,
'comment': repair.quotation_notes, 'comment': repair.quotation_notes,
'fiscal_position': repair.partner_id.property_account_position.id
} }
inv_obj = self.pool.get('account.invoice') inv_obj = self.pool.get('account.invoice')
inv_id = inv_obj.create(cr, uid, inv) inv_id = inv_obj.create(cr, uid, inv)

View File

@ -306,7 +306,7 @@ class purchase_order(osv.osv):
a = self.pool.get('account.fiscal.position').map_account(cr, uid, fpos, a) a = self.pool.get('account.fiscal.position').map_account(cr, uid, fpos, a)
il.append(self.inv_line_create(a,ol)) il.append(self.inv_line_create(a,ol))
a = o.partner_id.property_account_payable.id a = o.partner_id.property_account_payable.id
journal_ids = journal_obj.search(cr, uid, [('type', '=','purchase')], limit=1) journal_ids = journal_obj.search(cr, uid, [('type', '=','purchase')], limit=1)
inv = { inv = {
'name': o.partner_ref or o.name, 'name': o.partner_ref or o.name,
@ -320,6 +320,7 @@ class purchase_order(osv.osv):
'journal_id': len(journal_ids) and journal_ids[0] or False, 'journal_id': len(journal_ids) and journal_ids[0] or False,
'origin': o.name, 'origin': o.name,
'invoice_line': il, 'invoice_line': il,
'fiscal_position': o.partner_id.property_account_position.id
} }
inv_id = self.pool.get('account.invoice').create(cr, uid, inv, {'type':'in_invoice'}) inv_id = self.pool.get('account.invoice').create(cr, uid, inv, {'type':'in_invoice'})
self.pool.get('account.invoice').button_compute(cr, uid, [inv_id], {'type':'in_invoice'}, set_total=True) self.pool.get('account.invoice').button_compute(cr, uid, [inv_id], {'type':'in_invoice'}, set_total=True)

View File

@ -372,6 +372,7 @@ class sale_order(osv.osv):
'currency_id' : order.pricelist_id.currency_id.id, 'currency_id' : order.pricelist_id.currency_id.id,
'comment': order.note, 'comment': order.note,
'payment_term': pay_term, 'payment_term': pay_term,
'fiscal_position': order.partner_id.property_account_position.id
} }
inv_obj = self.pool.get('account.invoice') inv_obj = self.pool.get('account.invoice')
inv.update(self._inv_get(cr, uid, order)) inv.update(self._inv_get(cr, uid, order))

View File

@ -87,6 +87,7 @@ def _createInvoices(self, cr, uid, data, context={}):
'currency_id' :sale.pricelist_id.currency_id.id, 'currency_id' :sale.pricelist_id.currency_id.id,
'comment': '', 'comment': '',
'payment_term':sale.payment_term.id, 'payment_term':sale.payment_term.id,
'fiscal_position': sale.partner_id.property_account_position.id
} }
inv_obj = pool_obj.get('account.invoice') inv_obj = pool_obj.get('account.invoice')
inv_id = inv_obj.create(cr, uid, inv) inv_id = inv_obj.create(cr, uid, inv)

View File

@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*- # -*- encoding: utf-8 -*-
############################################################################## ##############################################################################
# #
# OpenERP, Open Source Management Solution # OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved # Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$ # $Id$
# #
@ -61,6 +61,7 @@ def _makeInvoices(self, cr, uid, data, context):
'currency_id' : order.pricelist_id.currency_id.id, 'currency_id' : order.pricelist_id.currency_id.id,
'comment': order.note, 'comment': order.note,
'payment_term': pay_term, 'payment_term': pay_term,
'fiscal_position': order.partner_id.property_account_position.id
} }
inv_id = pool.get('account.invoice').create(cr, uid, inv) inv_id = pool.get('account.invoice').create(cr, uid, inv)
return inv_id return inv_id

View File

@ -84,8 +84,8 @@ class stock_location(osv.osv):
if 'stock_virtual' in field_names: if 'stock_virtual' in field_names:
res[loc]['stock_virtual'] = prod.virtual_available res[loc]['stock_virtual'] = prod.virtual_available
return res return res
def product_detail(self, cr, uid, id, field): def product_detail(self, cr, uid, id, field):
res = {} res = {}
res[id] = {} res[id] = {}
@ -100,7 +100,7 @@ class stock_location(osv.osv):
product = self.pool.get('product.product').read(cr, uid, r['product_id'], [field_to_read,'standard_price','name']) product = self.pool.get('product.product').read(cr, uid, r['product_id'], [field_to_read,'standard_price','name'])
final_value += (product[field_to_read] * product['standard_price']) final_value += (product[field_to_read] * product['standard_price'])
return final_value return final_value
def _product_value(self, cr, uid, ids, field_names, arg, context={}): def _product_value(self, cr, uid, ids, field_names, arg, context={}):
result = {} result = {}
for id in ids: for id in ids:
@ -110,7 +110,7 @@ class stock_location(osv.osv):
ret_dict = self.product_detail(cr,uid,loc,field=field_name) ret_dict = self.product_detail(cr,uid,loc,field=field_name)
result[loc][field_name] = ret_dict result[loc][field_name] = ret_dict
return result return result
_columns = { _columns = {
'name': fields.char('Location Name', size=64, required=True, translate=True), 'name': fields.char('Location Name', size=64, required=True, translate=True),
'active': fields.boolean('Active'), 'active': fields.boolean('Active'),
@ -681,6 +681,7 @@ class stock_picking(osv.osv):
'address_contact_id': address_contact_id, 'address_contact_id': address_contact_id,
'comment': comment, 'comment': comment,
'payment_term': payment_term_id, 'payment_term': payment_term_id,
'fiscal_position': partner.property_account_position.id
} }
cur_id = self.get_currency_id(cursor, user, picking) cur_id = self.get_currency_id(cursor, user, picking)
if cur_id: if cur_id: