diff --git a/addons/auction/__terp__.py b/addons/auction/__terp__.py index 61e91802f44..8918a6394aa 100644 --- a/addons/auction/__terp__.py +++ b/addons/auction/__terp__.py @@ -38,6 +38,8 @@ 'init_xml': ['auction_sequence.xml'], 'update_xml': [ 'security/ir.model.access.csv', +# 'wizard/auction_lots_cancel_view.xml', +# 'wizard/auction_transfer_unsold_object_view.xml', 'wizard/auction_lots_able_view.xml', 'wizard/auction_lots_enable_view.xml', 'wizard/auction_lots_make_invoice_buyer_view.xml', diff --git a/addons/auction/auction.py b/addons/auction/auction.py index 1687980c029..cf5f27775df 100644 --- a/addons/auction/auction.py +++ b/addons/auction/auction.py @@ -95,15 +95,17 @@ class auction_dates(osv.osv): RETURN: True """ # objects vendus mais non factures + #TODO: convert this query to tiny API + lots_obj = self.pool.get('auction.lots') cr.execute('select count(*) as c from auction_lots where auction_id =ANY(%s) and state=%s and obj_price>0', (ids,'draft',)) nbr = cr.fetchone()[0] ach_uids = {} cr.execute('select id from auction_lots where auction_id =ANY(%s) and state=%s and obj_price>0', (ids,'draft',)) - r=self.pool.get('auction.lots').lots_invoice(cr, uid, [x[0] for x in cr.fetchall()],{},None) + r = lots_obj.lots_invoice(cr, uid, [x[0] for x in cr.fetchall()],{},None) cr.execute('select id from auction_lots where auction_id =ANY(%s) and obj_price>0',(ids,)) ids2 = [x[0] for x in cr.fetchall()] # for auction in auction_ids: - c=self.pool.get('auction.lots').seller_trans_create(cr, uid, ids2,{}) + c = lots_obj.seller_trans_create(cr, uid, ids2,{}) self.write(cr, uid, ids, {'state':'closed'}) #close the auction return True auction_dates() @@ -508,14 +510,14 @@ class auction_lots(osv.osv): ##CHECKME: est-ce que ca vaudrait la peine de faire des groupes de lots qui ont les memes couts pour passer des listes de lots a compute? taxes = [] amount=0.0 - # pt_tax=pool.get('account.tax') + pt_tax = self.pool.get('account.tax') for lot in lots: taxes = lot.product_id.taxes_id if lot.author_right: taxes.append(lot.author_right) elif lot.auction_id: taxes += lot.auction_id.buyer_costs - tax=self.pool.get('account.tax').compute(cr,uid,taxes,lot.obj_price,1) + tax=pt_tax.compute(cr,uid,taxes,lot.obj_price,1) for t in tax: amount+=t['amount'] #amount+=lot.obj_price*0.2 @@ -630,18 +632,20 @@ class auction_lots(osv.osv): def buyer_proforma(self,cr,uid,ids,context): invoices = {} - inv_ref=self.pool.get('account.invoice') + inv_ref = self.pool.get('account.invoice') + partner_r = self.pool.get('res.partner') + inv_line_obj = self.pool.get('account.invoice.line') + wf_service = netsvc.LocalService('workflow') # acc_receiv=self.pool.get('account.account').search([cr,uid,[('code','=','4010')]]) for lot in self.browse(cr,uid,ids,context): if not lot.obj_price>0: continue - partner_r=self.pool.get('res.partner') if not lot.ach_uid.id: raise orm.except_orm(_('Missed buyer !'), _('The object "%s" has no buyer assigned.') % (lot.name,)) else: partner_ref =lot.ach_uid.id lot_name = lot.obj_num - res = self.pool.get('res.partner').address_get(cr, uid, [partner_ref], ['contact', 'invoice']) + res = partner_r.address_get(cr, uid, [partner_ref], ['contact', 'invoice']) contact_addr_id = res['contact'] invoice_addr_id = res['invoice'] if not invoice_addr_id: @@ -675,12 +679,11 @@ class auction_lots(osv.osv): 'account_id': lot.auction_id.acc_income.id, 'price_unit': lot.obj_price, } - self.pool.get('account.invoice.line').create(cr, uid, inv_line,context) + inv_line_obj.create(cr, uid, inv_line,context) # inv_ref.button_compute(cr, uid, [inv_id]) # wf_service = netsvc.LocalService('workflow') # wf_service.trg_validate(uid, 'account.invoice', inv_id, 'invoice_open', cr) inv_ref.button_compute(cr, uid, invoice.values()) - wf_service = netsvc.LocalService('workflow') wf_service.trg_validate(uid, 'account.invoice', inv_id, 'invoice_proforma', cr) return invoices.values() @@ -694,6 +697,9 @@ class auction_lots(osv.osv): # use each list of object in turn invoices = {} inv_ref=self.pool.get('account.invoice') + partner_obj = self.pool.get('res.partner') + inv_line_obj = self.pool.get('account.invoice.line') + wf_service = netsvc.LocalService('workflow') for lot in self.browse(cr,uid,ids,context): partner_id = lot.bord_vnd_id.partner_id.id if not lot.auction_id.id: @@ -702,7 +708,7 @@ class auction_lots(osv.osv): if lot.bord_vnd_id.id in invoices: inv_id = invoices[lot.bord_vnd_id.id] else: - res = self.pool.get('res.partner').address_get(cr, uid, [lot.bord_vnd_id.partner_id.id], ['contact', 'invoice']) + res = partner_obj.address_get(cr, uid, [lot.bord_vnd_id.partner_id.id], ['contact', 'invoice']) contact_addr_id = res['contact'] invoice_addr_id = res['invoice'] inv = { @@ -734,13 +740,12 @@ class auction_lots(osv.osv): 'account_id': lot.auction_id.acc_expense.id, 'price_unit': lot.obj_price, } - self.pool.get('account.invoice.line').create(cr, uid, inv_line,context) + inv_line_obj.create(cr, uid, inv_line,context) inv_ref.button_compute(cr, uid, invoices.values()) for inv in inv_ref.browse(cr, uid, invoices.values(), context): inv_ref.write(cr, uid, [inv.id], { 'check_total': inv.amount_total }) - wf_service = netsvc.LocalService('workflow') wf_service.trg_validate(uid, 'account.invoice', inv.id, 'invoice_open', cr) return invoices.values() @@ -756,13 +761,15 @@ class auction_lots(osv.osv): RETURN: id of generated invoice """ dt = time.strftime('%Y-%m-%d') - inv_ref=self.pool.get('account.invoice') + inv_ref = self.pool.get('account.invoice') + partner_r = self.pool.get('res.partner') + inv_line_obj = self.pool.get('account.invoice.line') + wf_service = netsvc.LocalService('workflow') invoices={} for lot in self.browse(cr, uid, ids,context): # partner_ref = lot.ach_uid.id if not lot.auction_id.id: continue - partner_r=self.pool.get('res.partner') if not lot.ach_uid.id: raise orm.except_orm(_('Missed buyer !'), _('The object "%s" has no buyer assigned.') % (lot.name,)) if (lot.auction_id.id,lot.ach_uid.id) in invoices: @@ -773,13 +780,12 @@ class auction_lots(osv.osv): raise orm.except_orm(_('Missed Address !'), _('The Buyer has no Invoice Address.')) price = lot.obj_price or 0.0 lot_name =lot.obj_num - inv={ + inv = { 'name':lot.auction_id.name or '', 'reference': lot.ach_login, 'journal_id': lot.auction_id.journal_id.id, 'partner_id': lot.ach_uid.id, 'type': 'out_invoice', - } if invoice_number: inv['number'] = invoice_number @@ -804,12 +810,11 @@ class auction_lots(osv.osv): 'account_id': lot.auction_id.acc_income.id, 'price_unit': lot.obj_price, } - self.pool.get('account.invoice.line').create(cr, uid, inv_line,context) + inv_line_obj.create(cr, uid, inv_line,context) # inv_ref.button_compute(cr, uid, [inpq tu dis cav_id]) # inv_ref.button_compute(cr, uid, [inv_id]) inv_ref.button_compute(cr, uid, [inv_id]) for l in inv_ref.browse(cr, uid, invoices.values(), context): - wf_service = netsvc.LocalService('workflow') # wf_service.trg_validate(uid, 'account.invoice',l.id, 'invoice_proforma', cr) wf_service.trg_validate(uid, 'account.invoice',l.id, 'invoice_open', cr) return invoices.values() diff --git a/addons/auction/wizard/__init__.py b/addons/auction/wizard/__init__.py index bcd2de8b301..957ab02b053 100644 --- a/addons/auction/wizard/__init__.py +++ b/addons/auction/wizard/__init__.py @@ -29,7 +29,8 @@ import auction_pay_buy import auction_payer_sel import auction_lots_sms_send import auction_catalog_flagey_report - +#import auction_lots_cancel +#import auction_transfer_unsold_object #import auction_aie_send_result import auction_lots_buyer_map diff --git a/addons/auction/wizard/auction_catalog_flagey_report.py b/addons/auction/wizard/auction_catalog_flagey_report.py index 119c3273ee0..d8fec4b6d95 100644 --- a/addons/auction/wizard/auction_catalog_flagey_report.py +++ b/addons/auction/wizard/auction_catalog_flagey_report.py @@ -40,9 +40,21 @@ class auction_catalog_flagey(osv.osv_memory): return res def view_init(self, cr, uid, fields, context): - current_auction = self.pool.get('auction.dates').browse(cr,uid,context.get('active_ids', [])) - v_lots = self.pool.get('auction.lots').search(cr,uid,[('auction_id','=',current_auction.id)]) - v_ids = self.pool.get('auction.lots').browse(cr,uid,v_lots) + """ + Creates view dynamically, adding fields at runtime, raises exception + at the time of initialization of view. + @param self: The object pointer. + @param cr: A database cursor + @param uid: ID of the user currently logged in + @param fields: List of fields for which we want default values + @param context: A standard dictionary + @return: New arch of view with new columns. + """ + lots_obj = self.pool.get('auction.lots') + auc_dates_obj = self.pool.get('auction.dates') + current_auction = auc_dates_obj.browse(cr,uid,context.get('active_ids', [])) + v_lots = lots_obj.search(cr,uid,[('auction_id','=',current_auction.id)]) + v_ids = lots_obj.browse(cr,uid,v_lots) for ab in v_ids: if not ab.auction_id : raise osv.except_osv('Error!','No Lots belong to this Auction Date') diff --git a/addons/auction/wizard/auction_lots_auction_move.py b/addons/auction/wizard/auction_lots_auction_move.py index 24b2604d1d7..d1303be0887 100644 --- a/addons/auction/wizard/auction_lots_auction_move.py +++ b/addons/auction/wizard/auction_lots_auction_move.py @@ -32,16 +32,16 @@ class auction_lots_auction_move(osv.osv_memory): _name = "auction.lots.auction.move" _description = "Auction move " _columns= { - 'auction_id':fields.many2one('auction.dates', 'Auction Date', required=True), - } + 'auction_id':fields.many2one('auction.dates', 'Auction Date', required=True), + } - def _top(self, cr, uid, ids, context={}): - refs = self.pool.get('auction.lots') - rec_ids = refs.browse(cr, uid, context['active_ids']) - for rec in rec_ids: - if not rec.auction_id: - raise osv.except_osv('Error !', 'You can not move a lot that has no auction date') - return {} +# def _top(self, cr, uid, ids, context={}): +# refs = self.pool.get('auction.lots') +# rec_ids = refs.browse(cr, uid, context['active_ids']) +# for rec in rec_ids: +# if not rec.auction_id: +# raise osv.except_osv('Error !', 'You can not move a lot that has no auction date') +# return {} def auction_move_set(self, cr, uid, ids, context={}): """ @@ -56,13 +56,13 @@ class auction_lots_auction_move(osv.osv_memory): auction_bid_line_obj = self.pool.get('auction.bid_line') auction_lot_history_obj = self.pool.get('auction.lot.history') auction_lots_obj = self.pool.get('auction.lots') + rec_ids = refs.browse(cr, uid, context['active_ids']) for datas in self.read(cr, uid, ids): if not (datas['auction_id'] and len(context['active_ids'])) : return {} - rec_ids = refs.browse(cr, uid, context['active_ids']) - line_ids = auction_bid_line_obj.search(cr, uid, [('lot_id', 'in', context['active_ids'])]) - # pooler.get_pool(cr.dbname).get('auction.bid_line').unlink(cr, uid, line_ids) +# line_ids = auction_bid_line_obj.search(cr, uid, [('lot_id', 'in', context['active_ids'])]) +# pooler.get_pool(cr.dbname).get('auction.bid_line').unlink(cr, uid, line_ids) for rec in rec_ids: new_id = auction_lot_history_obj.create(cr, uid, { 'auction_id': rec.auction_id.id, diff --git a/addons/auction/wizard/auction_lots_buyer_map.py b/addons/auction/wizard/auction_lots_buyer_map.py index db80a2ab3f3..b20250edc38 100644 --- a/addons/auction/wizard/auction_lots_buyer_map.py +++ b/addons/auction/wizard/auction_lots_buyer_map.py @@ -107,18 +107,21 @@ class wiz_auc_lots_buyer_map(osv.osv_memory): res = super(wiz_auc_lots_buyer_map, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False) lots_obj = self.pool.get('auction.lots') if record_ids: - for lots in lots_obj.browse(cr, uid, record_ids): - if lots.ach_uid: - res['arch'] = """ -
- -