diff --git a/addons/account/report/account_analytic_entries_report_view.xml b/addons/account/report/account_analytic_entries_report_view.xml index b837186f23c..1df0cf011fd 100644 --- a/addons/account/report/account_analytic_entries_report_view.xml +++ b/addons/account/report/account_analytic_entries_report_view.xml @@ -54,6 +54,17 @@ + + + + + + + + + + + @@ -70,17 +81,6 @@ - - - - - - - - - - - diff --git a/addons/account/report/account_entries_report_view.xml b/addons/account/report/account_entries_report_view.xml index f6282046e00..f7dd6da49e3 100644 --- a/addons/account/report/account_entries_report_view.xml +++ b/addons/account/report/account_entries_report_view.xml @@ -56,7 +56,7 @@ + + + + + + + + + + + + + @@ -92,19 +105,6 @@ - - - - - - - - - - - - - diff --git a/addons/account/report/account_invoice_report_view.xml b/addons/account/report/account_invoice_report_view.xml index 98dd3f64fb7..80985fb3d6a 100644 --- a/addons/account/report/account_invoice_report_view.xml +++ b/addons/account/report/account_invoice_report_view.xml @@ -97,6 +97,17 @@ + + + + + + + + + + + @@ -118,17 +129,6 @@ - - - - - - - - - - - diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py index 6bd2f2138ec..5a393e1dd83 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis.py +++ b/addons/account_analytic_analysis/account_analytic_analysis.py @@ -126,8 +126,8 @@ class account_analytic_account(osv.osv): where account_analytic_line.account_id IN %s \ and account_analytic_line.invoice_id is not null \ GROUP BY account_analytic_line.account_id",(parent_ids,)) - for account_id, sum in cr.fetchall(): - res[account_id] = sum + for account_id, lid in cr.fetchall(): + res[account_id][f] = lid for account in accounts: for child in account.child_ids: if res[account.id][f] < res.get(child.id, {}).get(f, ''): @@ -141,8 +141,8 @@ class account_analytic_account(osv.osv): where account_id IN %s \ and invoice_id is null \ GROUP BY account_analytic_line.account_id" ,(parent_ids,)) - for account_id, sum in cr.fetchall(): - res[account_id][f] = sum + for account_id, lwd in cr.fetchall(): + res[account_id][f] = lwd for account in accounts: for child in account.child_ids: if res[account.id][f] < res.get(child.id, {}).get(f, ''): @@ -160,8 +160,8 @@ class account_analytic_account(osv.osv): and invoice_id is null \ AND to_invoice IS NOT NULL \ GROUP BY account_analytic_line.account_id;",(parent_ids,)) - for account_id, sum in cr.fetchall(): - res[account_id][f] = round(sum, dp) + for account_id, sua in cr.fetchall(): + res[account_id][f] = round(sua, dp) for account in accounts: for child in account.child_ids: if account.id != child.id: @@ -180,8 +180,8 @@ class account_analytic_account(osv.osv): and account_analytic_journal.type='general' \ GROUP BY account_analytic_line.account_id",(parent_ids,)) ff = cr.fetchall() - for account_id, sum in ff: - res[account_id][f] = round(sum, dp) + for account_id, hq in ff: + res[account_id][f] = round(hq, dp) for account in accounts: for child in account.child_ids: if account.id != child.id: diff --git a/addons/auction/auction.py b/addons/auction/auction.py index 5ea2441e6fd..1a61355f382 100644 --- a/addons/auction/auction.py +++ b/addons/auction/auction.py @@ -37,7 +37,7 @@ class auction_artists(osv.osv): _columns = { 'name': fields.char('Artist/Author Name', size=64, required=True), 'pseudo': fields.char('Pseudo', size=64), - 'birth_death_dates':fields.char('Birth / Death dates', size=64), + 'birth_death_dates':fields.char('Lifespan', size=64), 'biography': fields.text('Biography'), } auction_artists() @@ -69,23 +69,50 @@ class auction_dates(osv.osv): reads = self.read(cr, uid, ids, ['name', 'auction1'], context) name = [(r['id'], '['+r['auction1']+'] '+ r['name']) for r in reads] return name + + def _get_buyer_invoice(self, cr, uid, ids, name, arg, context={}): + lots_obj = self.pool.get('auction.lots') + result = {} + for data in self.browse(cr, uid, ids): + inv_ids = [] + lots_ids = lots_obj.search(cr, uid, [('auction_id','=',data.id),('ach_inv_id','!=',False)]) + for lot in lots_obj.browse(cr, uid, lots_ids): + if lot.ach_inv_id: + inv_ids.append(lot.ach_inv_id.id) + result[data.id] = inv_ids + return result + + def _get_seller_invoice(self, cr, uid, ids, name, arg, context={}): + lots_obj = self.pool.get('auction.lots') + lots_ids = lots_obj.search(cr, uid, [('auction_id','in',ids)]) + result = {} + for data in self.browse(cr, uid, ids): + inv_ids = [] + lots_ids = lots_obj.search(cr, uid, [('auction_id','=',data.id),('sel_inv_id','!=',False)]) + for lot in lots_obj.browse(cr, uid, lots_ids): + if lot.sel_inv_id: + inv_ids.append(lot.sel_inv_id.id) + result[data.id] = inv_ids + return result _columns = { 'name': fields.char('Auction Name', size=64, required=True), - 'expo1': fields.date('First Exposition Day', required=True, help="Beginning Exposition Date For Auction"), - 'expo2': fields.date('Last Exposition Day', required=True, help="Last Exposition Date For Auction"), - 'auction1': fields.date('First Auction Day', required=True, help="Start Date Of Auction"), - 'auction2': fields.date('Last Auction Day', required=True, help="End Date Of Auction"), - 'journal_id': fields.many2one('account.journal', 'Buyer Journal', required=True, help="Account Journal For Buyer"), - 'journal_seller_id': fields.many2one('account.journal', 'Seller Journal', required=True, help="Account Journal For Seller"), - 'buyer_costs': fields.many2many('account.tax', 'auction_buyer_taxes_rel', 'auction_id', 'tax_id', 'Buyer Costs', help="Account Tax For Buyer"), - 'seller_costs': fields.many2many('account.tax', 'auction_seller_taxes_rel', 'auction_id', 'tax_id', 'Seller Costs', help="Account Tax For Seller"), + 'expo1': fields.date('First Exposition Day', required=True, help="Beginning exposition date for auction"), + 'expo2': fields.date('Last Exposition Day', required=True, help="Last exposition date for auction"), + 'auction1': fields.date('First Auction Day', required=True, help="Start date of auction"), + 'auction2': fields.date('Last Auction Day', required=True, help="End date of auction"), + 'journal_id': fields.many2one('account.journal', 'Buyer Journal', required=True, help="Account journal for buyer"), + 'journal_seller_id': fields.many2one('account.journal', 'Seller Journal', required=True, help="Account journal for seller"), + 'buyer_costs': fields.many2many('account.tax', 'auction_buyer_taxes_rel', 'auction_id', 'tax_id', 'Buyer Costs', help="Account tax for buyer"), + 'seller_costs': fields.many2many('account.tax', 'auction_seller_taxes_rel', 'auction_id', 'tax_id', 'Seller Costs', help="Account tax for seller"), 'acc_income': fields.many2one('account.account', 'Income Account', required=True), 'acc_expense': fields.many2one('account.account', 'Expense Account', required=True), 'adj_total': fields.function(_adjudication_get, method=True, string='Total Adjudication', store=True), 'state': fields.selection((('draft', 'Draft'), ('closed', 'Closed')), 'State', select=1, readonly=True, help='When auction starts the state is \'Draft\'.\n At the end of auction, the state becomes \'Closed\'.'), 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True), + 'buyer_invoice_history': fields.function(_get_buyer_invoice, relation='account.invoice', method=True, string="Buyer Invoice", type='many2many'), + 'seller_invoice_history': fields.function(_get_seller_invoice, relation='account.invoice', method=True, string="Seller Invoice", type='many2many'), } _defaults = { @@ -355,15 +382,15 @@ class auction_lots(osv.osv): _columns = { 'bid_lines':fields.one2many('auction.bid_line', 'lot_id', 'Bids'), - 'auction_id': fields.many2one('auction.dates', 'Auction', select=1, help="Auction For Object"), - 'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True, help="Provide Deposit Information: seller, Withdrawned Method, Object, Deposit Costs"), - 'name': fields.char('Title', size=64, required=True, help='Auction Object Name'), + 'auction_id': fields.many2one('auction.dates', 'Auction', select=1, help="Auction for object"), + 'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True, help="Provide deposit information: seller, Withdrawned Method, Object, Deposit Costs"), + 'name': fields.char('Title', size=64, required=True, help='Auction object name'), 'name2': fields.char('Short Description (2)', size=64), 'lot_type': fields.selection(_type_get, 'Object category', size=64), - 'author_right': fields.many2one('account.tax', 'Author rights', help="Account Tax For Author Commission"), + 'author_right': fields.many2one('account.tax', 'Author rights', help="Account tax for author commission"), 'lot_est1': fields.float('Minimum Estimation', help="Minimum Estimate Price"), 'lot_est2': fields.float('Maximum Estimation', help="Maximum Estimate Price"), - 'lot_num': fields.integer('List Number', required=True, select=1, help="List Number In Depositer Inventory"), + 'lot_num': fields.integer('List Number', required=True, select=1, help="List number in depositer inventory"), 'create_uid': fields.many2one('res.users', 'Created by', readonly=True), 'history_ids':fields.one2many('auction.lot.history', 'lot_id', 'Auction history'), 'lot_local':fields.char('Location', size=64, help="Auction Location"), @@ -380,15 +407,15 @@ class auction_lots(osv.osv): 'ach_login': fields.char('Buyer Username', size=64), 'ach_uid': fields.many2one('res.partner', 'Buyer'), 'seller_id': fields.related('bord_vnd_id','partner_id', type='many2one', relation='res.partner', string='Seller', readonly=True), - 'ach_emp': fields.boolean('Taken Away', readonly=True, help="When state is Taken Away, This field is Marked as True"), - 'is_ok': fields.boolean('Buyer\'s payment', help="When Buyer Pay For Bank statement', This field is Marked"), + 'ach_emp': fields.boolean('Taken Away', readonly=True, help="When state is Taken Away, this field is marked as True"), + 'is_ok': fields.boolean('Buyer\'s payment', help="When buyer pay for bank statement', this field is marked"), 'ach_inv_id': fields.many2one('account.invoice', 'Buyer Invoice', readonly=True, states={'draft':[('readonly', False)]}), 'sel_inv_id': fields.many2one('account.invoice', 'Seller Invoice', readonly=True, states={'draft':[('readonly', False)]}), 'vnd_lim': fields.float('Seller limit'), 'vnd_lim_net': fields.boolean('Net limit ?', readonly=True), 'image': fields.binary('Image', help="Object Image"), - 'paid_vnd':fields.function(_getprice, string='Seller Paid', method=True, type='boolean', store=True, multi="paid_vnd", help="When state of Seller Invoice is 'Paid', This field is selected as True."), - 'paid_ach':fields.function(_getprice, string='Buyer Invoice Reconciled', method=True, type='boolean', store=True, multi="paid_ach", help="When state of Buyer Invoice is 'Paid', This field is selected as True."), + 'paid_vnd':fields.function(_getprice, string='Seller Paid', method=True, type='boolean', store=True, multi="paid_vnd", help="When state of Seller Invoice is 'Paid', this field is selected as True."), + 'paid_ach':fields.function(_getprice, string='Buyer Invoice Reconciled', method=True, type='boolean', store=True, multi="paid_ach", help="When state of Buyer Invoice is 'Paid', this field is selected as True."), 'state': fields.selection(( ('draft', 'Draft'), ('unsold', 'Unsold'), @@ -404,7 +431,7 @@ class auction_lots(osv.osv): 'gross_revenue':fields.function(_getprice, method=True, string='Gross revenue', store=True, multi="gross_revenue", help="Buyer Price - Seller Price"), 'gross_margin':fields.function(_getprice, method=True, string='Gross Margin (%)', store=True, multi="gross_margin", help="(Gross Revenue*100.0)/ Object Price"), 'costs':fields.function(_getprice, method=True, string='Indirect costs', store=True, multi="costs", help="Deposit cost"), - 'statement_id': fields.many2many('account.bank.statement.line', 'auction_statement_line_rel', 'auction_id', 'statement', 'Payment', help="Bank statement Line For Given Buyer"), + 'statement_id': fields.many2many('account.bank.statement.line', 'auction_statement_line_rel', 'auction_id', 'statement', 'Payment', help="Bank statement line for given buyer"), 'net_revenue':fields.function(_getprice, method=True, string='Net revenue', store=True, multi="net_revenue", help="Buyer Price - Seller Price - Indirect Cost"), 'net_margin':fields.function(_getprice, method=True, string='Net Margin (%)', store=True, multi="net_margin", help="(Net Revenue * 100)/ Object Price"), } @@ -761,7 +788,7 @@ class auction_bid(osv.osv): _order = 'id desc' _columns = { 'partner_id': fields.many2one('res.partner', 'Buyer Name', required=True), - 'contact_tel':fields.char('Contact', size=64), + 'contact_tel':fields.char('Contact Number', size=64), 'name': fields.char('Bid ID', size=64, required=True), 'auction_id': fields.many2one('auction.dates', 'Auction Date', required=True), 'bid_lines': fields.one2many('auction.bid_line', 'bid_id', 'Bid'), diff --git a/addons/auction/auction_view.xml b/addons/auction/auction_view.xml index f91f77429ca..d149fc89f1c 100644 --- a/addons/auction/auction_view.xml +++ b/addons/auction/auction_view.xml @@ -1,7 +1,7 @@ - + @@ -14,9 +14,8 @@ tree - - - + + @@ -26,12 +25,15 @@ form
- - - - - - + + + + + + + + + @@ -105,27 +107,39 @@ - - - - - - + + + + + + + + + + + +