diff --git a/addons/account/i18n/ca.po b/addons/account/i18n/ca.po index 448bb5f1aee..d2a9cba7042 100644 --- a/addons/account/i18n/ca.po +++ b/addons/account/i18n/ca.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account diff --git a/addons/account/i18n/de.po b/addons/account/i18n/de.po index edecdea43d1..5fdf89c5773 100644 --- a/addons/account/i18n/de.po +++ b/addons/account/i18n/de.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-10 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account diff --git a/addons/account/i18n/it.po b/addons/account/i18n/it.po index de27e9bfec9..4a6d2d3a2b8 100644 --- a/addons/account/i18n/it.po +++ b/addons/account/i18n/it.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po index 8340b713eb7..862b42608ca 100644 --- a/addons/account/i18n/zh_CN.po +++ b/addons/account/i18n/zh_CN.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-10 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account diff --git a/addons/account_analytic_analysis/i18n/el.po b/addons/account_analytic_analysis/i18n/el.po index c456eeacf69..80f23d4494d 100644 --- a/addons/account_analytic_analysis/i18n/el.po +++ b/addons/account_analytic_analysis/i18n/el.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-10 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_analytic_analysis diff --git a/addons/account_anglo_saxon/i18n/el.po b/addons/account_anglo_saxon/i18n/el.po index 774d8d4856c..a9aa4a7f36b 100644 --- a/addons/account_anglo_saxon/i18n/el.po +++ b/addons/account_anglo_saxon/i18n/el.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-10 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_anglo_saxon diff --git a/addons/account_balance/i18n/el.po b/addons/account_balance/i18n/el.po index c65e185fcc9..06b70a7e7d9 100644 --- a/addons/account_balance/i18n/el.po +++ b/addons/account_balance/i18n/el.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-10 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_balance diff --git a/addons/account_coda/i18n/el.po b/addons/account_coda/i18n/el.po index a3890e92939..a38c20e7a9e 100644 --- a/addons/account_coda/i18n/el.po +++ b/addons/account_coda/i18n/el.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-10 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_coda diff --git a/addons/account_coda/i18n/et.po b/addons/account_coda/i18n/et.po index ca0c9a210fb..9a173c51337 100644 --- a/addons/account_coda/i18n/et.po +++ b/addons/account_coda/i18n/et.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_coda diff --git a/addons/account_followup/i18n/hr.po b/addons/account_followup/i18n/hr.po index 32aaa2a926d..07a1d41c617 100644 --- a/addons/account_followup/i18n/hr.po +++ b/addons/account_followup/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_followup diff --git a/addons/account_invoice_layout/i18n/el.po b/addons/account_invoice_layout/i18n/el.po index 6ea0abbb2fe..daa8336dcf9 100644 --- a/addons/account_invoice_layout/i18n/el.po +++ b/addons/account_invoice_layout/i18n/el.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-10 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_invoice_layout diff --git a/addons/account_payment/i18n/el.po b/addons/account_payment/i18n/el.po index d08e0672262..876540bedc1 100644 --- a/addons/account_payment/i18n/el.po +++ b/addons/account_payment/i18n/el.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-10 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_payment diff --git a/addons/account_payment/i18n/zh_CN.po b/addons/account_payment/i18n/zh_CN.po index 28a412cb5c6..24600a62e0e 100644 --- a/addons/account_payment/i18n/zh_CN.po +++ b/addons/account_payment/i18n/zh_CN.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_payment diff --git a/addons/account_tax_include/i18n/ru.po b/addons/account_tax_include/i18n/ru.po index ea07038c8ce..e4c0cb46a55 100644 --- a/addons/account_tax_include/i18n/ru.po +++ b/addons/account_tax_include/i18n/ru.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_tax_include diff --git a/addons/account_voucher_payment/i18n/ca.po b/addons/account_voucher_payment/i18n/ca.po index b06ebff8a16..20f86c1846e 100644 --- a/addons/account_voucher_payment/i18n/ca.po +++ b/addons/account_voucher_payment/i18n/ca.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_voucher_payment diff --git a/addons/account_voucher_payment/i18n/es.po b/addons/account_voucher_payment/i18n/es.po index 80c07e08abb..d169c1cd6ed 100644 --- a/addons/account_voucher_payment/i18n/es.po +++ b/addons/account_voucher_payment/i18n/es.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_voucher_payment diff --git a/addons/account_voucher_payment/i18n/et.po b/addons/account_voucher_payment/i18n/et.po index 591a7595d36..1541fa67aaf 100644 --- a/addons/account_voucher_payment/i18n/et.po +++ b/addons/account_voucher_payment/i18n/et.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: account_voucher_payment diff --git a/addons/auction/__openerp__.py b/addons/auction/__openerp__.py index cd27c60fdb7..0959d6a4dd9 100644 --- a/addons/auction/__openerp__.py +++ b/addons/auction/__openerp__.py @@ -60,6 +60,7 @@ 'auction_wizard.xml' ], 'demo_xml': ['auction_demo.xml'], +# 'test' : ['test/auction.yml','test/auction_wizard.yml'], 'installable': True, 'active': False, 'certificate': '0039333102717', diff --git a/addons/auction/i18n/pl.po b/addons/auction/i18n/pl.po index ca940cf469a..257ff775684 100644 --- a/addons/auction/i18n/pl.po +++ b/addons/auction/i18n/pl.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: auction diff --git a/addons/auction/i18n/zh_CN.po b/addons/auction/i18n/zh_CN.po index eb36642e385..15f3fbc92fe 100644 --- a/addons/auction/i18n/zh_CN.po +++ b/addons/auction/i18n/zh_CN.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: auction diff --git a/addons/auction/test/auction.yml b/addons/auction/test/auction.yml new file mode 100644 index 00000000000..968bb5f6bbf --- /dev/null +++ b/addons/auction/test/auction.yml @@ -0,0 +1,204 @@ +- + In order to test the auction module in the Open-ERP I start the process by creating a product. +- + I create a new product furniture. +- + !record {model: product.product, id: product_product_furniture0}: + categ_id: product.cat1 + cost_method: standard + mes_type: fixed + name: Furniture + procure_method: make_to_stock + standard_price: 1.0 + supply_method: buy + type: product + uom_id: product.product_uom_unit + uom_po_id: product.product_uom_unit + volume: 0.0 + warranty: 0.0 + weight: 0.0 + weight_net: 0.0 +- + I create a new artist for an object. +- + !record {model: auction.artists, id: auction_artists_vincentvangogh0}: + birth_death_dates: 1853-1900 + name: Vincent van Gogh +- + Now I want to associate an object with the auction so for that I create an auction "Antique furniture exhibition" +- + !record {model: auction.dates, id: auction_dates_antiquefurnitureexhibition0}: + acc_expense: account.a_pay + acc_income: account.a_recv + account_analytic_id: account.analytic_root + auction1: '2010-05-20' + auction2: '2010-05-21' + expo1: '2010-05-18' + expo2: '2010-05-19' + journal_id: account.expenses_journal + journal_seller_id: account.sales_journal + name: Antique furniture exhibition +- + An object is being deposited for an auction,I create a seller's deposit record. +- + !record {model: auction.deposit, id: auction_deposit_ad0}: + date_dep: '2010-05-18' + method: keep + name: AD/006 + partner_id: base.res_partner_4 +- + I create a new object wooden-chair which is to be auctioned. +- + !record {model: auction.lots, id: auction_lots_woodenchair0}: + ach_uid: base.res_partner_2 + artist_id: auction_artists_vincentvangogh0 + auction_id: auction_dates_antiquefurnitureexhibition0 + bord_vnd_id: auction_deposit_ad0 + lot_est1: 3000.0 + lot_est2: 5000.0 + lot_num: 1 + name: wooden-chair + name2: antique wooden chair + obj_num: 1 + obj_price: 4000.0 + obj_ret: 5000.0 + product_id: 'product_product_furniture0' + state: draft + vnd_lim: 5000.0 +- + I create a bid for an object "wooden-chair" which is to be auctioned in Antique furniture exhibition. +- + !record {model: auction.bid, id: auction_bid_bid0}: + auction_id: auction_dates_antiquefurnitureexhibition0 + contact_tel: (+32)2 211 34 83 + name: bid/001 + partner_id: auction.partner_record1 +- + I create a bid line. +- + !record {model: auction.bid_line, id: auction_bid_line_0}: + auction: Antique furniture exhibition + bid_id: auction_bid_bid0 + lot_id: auction.auction_lots_woodenchair0 + price: 3500.0 +- + I create another bid for an object "wooden-chair" bided by a different partner +- + !record {model: auction.bid, id: auction_bid_bid1}: + auction_id: auction_dates_antiquefurnitureexhibition0 + name: bid/002 + partner_id: base.res_partner_2 +- + I create a bid line. +- + !record {model: auction.bid_line, id: auction_bid_line_1}: + auction: Antique furniture exhibition + bid_id: 'auction_bid_bid1' + call: 1 + lot_id: auction.auction_lots_woodenchair0 + price: 4000.0 +- + I check that buyer price and seller price gets bind with the value +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_woodenchair0")) + assert(auc_id.buyer_price,auc_id.seller_price), _('Buyer price and seller price are not available!') +- + I check that a record gets created in the Seller's Summary. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_woodenchair0")) + auc_deposit_obj=self.pool.get('auction.deposit') + rep_sell_obj = self.pool.get('report.seller.auction') + ids =rep_sell_obj.search(cr, uid, [('auction', '=', auc_id.auction_id.id),('seller', '=',auc_id.bord_vnd_id.partner_id.id)]) + assert ids, _('No record found!') +- + I check that a record gets created in the Seller's Revenues. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_woodenchair0")) + auc_deposit_obj=self.pool.get('auction.deposit') + rep_sell_obj = self.pool.get('report.seller.auction2') + ids =rep_sell_obj.search(cr, uid, [('auction', '=', auc_id.auction_id.id),('seller', '=',auc_id.bord_vnd_id.partner_id.id)]) + assert ids, _('No record found!') +- + I check that a record gets created in the Buyer's Summary. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id1=self.browse(cr, uid, ref("auction_lots_woodenchair0")) + rep_buy_obj1 = self.pool.get('report.buyer.auction') + ids1=rep_buy_obj1.search(cr, uid, [('auction', '=', auc_id1.auction_id.id),('buyer', '=',auc_id1.ach_uid.id)]) + assert ids1, _('No record found!') +- + I check that a record gets created in the Buyer's Revenue. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id1=self.browse(cr, uid, ref("auction_lots_woodenchair0")) + rep_buy_obj1 = self.pool.get('report.buyer.auction2') + ids1=rep_buy_obj1.search(cr, uid, [('auction', '=', auc_id1.auction_id.id),('buyer', '=',auc_id1.ach_uid.id)]) + assert ids1, _('No record found!') +- + I check that a record gets created in the Auction's Summary. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id2=self.browse(cr, uid, ref("auction_lots_woodenchair0")) + rep_auc_obj1 = self.pool.get('report.auction.view') + ids2=rep_auc_obj1.search(cr, uid, [('auction_id', '=', auc_id2.auction_id.id)]) + assert ids2, _('No record found!') +- + I check that a record gets created in the Auction's Revenues. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id3=self.browse(cr, uid, ref("auction_lots_woodenchair0")) + rep_auc_obj1 = self.pool.get('report.auction.view2') + ids3=rep_auc_obj1.search(cr, uid, [('auction', '=', auc_id3.auction_id.id)]) + assert ids3, _('No record found!') +- + An object has been sold,so I click on the "Sold" button. +- + !python {model: auction.lots}: | + self.button_bought(cr, uid, [ref("auction_lots_woodenchair0")], {"lang": "en_US", "tz": + False, "active_model": "ir.ui.menu", "active_ids": [ref("auction.auction_lots_woodenchair0")], + "active_id": ref("auction.auction_lots_woodenchair0")}) +- + I check that the order which was initially in the draft state has transit to sold state. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_woodenchair0")) + assert(auc_id.state == 'sold'), _('State not changed!') +- + Then I click on the Taken Away button. +- + !python {model: auction.lots}: | + self.button_taken_away(cr, uid, [ref("auction_lots_woodenchair0")], {"lang": + "en_US", "tz": False, "active_model": "ir.ui.menu", "active_ids": [ref("auction.auction_all_objects_menu")], + "active_id": ref("auction.auction_all_objects_menu")}) +- + I check that the order which was initially in the sold state has transit to taken away state. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_woodenchair0")) + assert(auc_id.state == 'taken_away'), _('State not changed!') +- + I click on the "Close + Create all invoices" button +- + !python {model: auction.dates}: | + self.close(cr, uid, [ref("auction.auction_dates_antiquefurnitureexhibition0")], + {"lang": "en_US", "tz": False, "active_model": "ir.ui.menu", "active_ids": + [ref("auction.menu_auction_dates_next1")], "active_id": ref("auction.menu_auction_dates_next1")}) +- + I check that a record gets created in the "Supplier Invoices". +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_woodenchair0")) + assert(auc_id.sel_inv_id), _('Seller Invoice has not been created!') diff --git a/addons/auction/test/auction_wizard.yml b/addons/auction/test/auction_wizard.yml new file mode 100644 index 00000000000..0998e7a03a5 --- /dev/null +++ b/addons/auction/test/auction_wizard.yml @@ -0,0 +1,248 @@ +- + In order to test the wizards of auction module I create a new record. +- + I start the process by creating a new product Paintings. +- + !record {model: product.product, id: product_product_paintings0}: + categ_id: product.cat1 + cost_method: standard + mes_type: fixed + name: Paintings + procure_method: make_to_stock + standard_price: 1.0 + supply_method: buy + type: product + uom_id: product.product_uom_unit + uom_po_id: product.product_uom_unit + volume: 0.0 + warranty: 0.0 + weight: 0.0 + weight_net: 0.0 +- + I create a new artist-Picasso's record. +- + !record {model: auction.artists, id: auction_artists_picasso0}: + birth_death_dates: 1881-1973 + name: Picasso +- + Now I want to associate an object with the auction so for that I create an auction "Picasso's painting exhibition" +- + !record {model: auction.dates, id: auction_dates_picassospaintingexhibition0}: + acc_expense: account.a_pay + acc_income: account.a_recv + account_analytic_id: account.analytic_root + auction1: '2010-05-24' + auction2: '2010-05-25' + expo1: '2010-05-21' + expo2: '2010-05-22' + journal_id: account.expenses_journal + journal_seller_id: account.sales_journal + name: Picasso's painting exhibition +- + An object is being deposited for an auction,I create a seller's deposit record. +- + !record {model: auction.deposit, id: auction_deposit_ad1}: + date_dep: '2010-05-18' + method: keep + name: AD/007 + partner_id: base.res_partner_9 +- + I create a new object painting which is to be auctioned. +- + !record {model: auction.lots, id: auction_lots_painting0}: + ach_login: 'Mr.Chang' + artist_id: auction.auction_artists_picasso0 + auction_id: auction_dates_picassospaintingexhibition0 + bord_vnd_id: auction_deposit_ad1 + lot_est1: 2000.0 + lot_est2: 4000.0 + lot_num: 2 + name: painting + name2: picasso_painting + obj_num: 2 + obj_price: 3500.0 + obj_ret: 4000.0 + product_id: auction.product_product_paintings0 + state: draft + vnd_lim: 4000.0 +- + I assign the buyer through "Map buyer user name to Partners" wizard. +- + !record {model: auction.lots.buyer_map, id: auction_lots_buyer_map_0}: + ach_login: 'Mr.Chang' + ach_uid: base.res_partner_3 +- + I click on the "Update" button. +- + !python {model: auction.lots.buyer_map}: | + auc_obj=self.pool.get('auction.lots') + ids=self.browse(cr, uid, ref("auction_lots_painting0")) + self.buyer_map_set(cr, uid, [ref("auction_lots_buyer_map_0")], {"lang": "en_US", + "tz": False, "active_model": "auction.lots", "active_ids": [ref("auction_lots_painting0")], + "active_id": ref("auction_lots_painting0")}) +- + I check that the buyer field gets bind with the value. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_painting0")) + assert(auc_id.ach_uid), _('Buyer not assigned!') +- + I mark that a seller has been paid by using the "Mark as paid for seller" wizard. +- + !record {model: auction.payer.sel, id: auction_payer_sel_0}: + {} +- + I click on the "Pay" button. +- + !python {model: auction.payer.sel}: | + self.payer_sel(cr, uid, [ref("auction_payer_sel_0")], {"lang": "en_US", "tz": + False, "active_model": "auction.lots", "active_ids": [ref("auction_lots_painting0")], "active_id": ref("auction_lots_painting0")}) +- + I check that the Seller paid field is set to True. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_painting0")) + assert(auc_id.paid_vnd == True), _('Seller paid is not marked!') +- + I use the "Mark as taken away" wizard to indicate that an object is taken away. +- + !record {model: auction.lots.able, id: auction_lots_able_0}: + {} +- + Then I click on the "Able Taken away" wizard. +- + !python {model: auction.lots.able}: | + self.confirm_able(cr, uid, [ref("auction_lots_able_0")], {"lang":"en_US", "tz": + False, "active_model": "auction.lots", "active_ids": [ref("auction_lots_painting0")], + "active_id": ref("auction_lots_painting0")}) +- + I check that Taken away field is set to True. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_painting0")) + assert(auc_id.ach_emp == True), _('Taken away is not marked!') +- + I use the "Unmark as taken away" wizard to unmark the Taken Away field. +- + !record {model: auction.lots.enable, id: auction_lots_enable_0}: + confirm_en: 0.0 +- + Then I click on the "Enable Taken away" button. +- + !python {model: auction.lots.enable}: | + self.confirm_enable(cr, uid, [ref("auction_lots_enable_0")], {"lang": "en_US", + "tz": False, "active_model": "auction.lots", "active_ids": [ref("auction_lots_painting0")], + "active_id": ref("auction_lots_painting0"),}) +- + I check that Taken away field is set to False. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_painting0")) + assert(auc_id.ach_emp == False), _('Taken away is marked!') +- + I create statement lines for an object's payment by using the "Pay objects of the buyer" wizard +- + I create a bank statement. +- + !record {model: account.bank.statement, id: account_bank_statement_st0}: + balance_end_real: 0.0 + date: '2010-05-19' + journal_id: account.bank_journal + name: St. 05/19 + period_id: account.period_5 + state: draft +- + I create auction payment record. +- + !record {model: auction.pay.buy, id: auction_pay_buy_0}: + amount: 2000.0 + amount2: 1000.0 + amount3: 1000.0 + buyer_id: base.res_partner_2 + statement_id1: account_bank_statement_st0 + statement_id2: account_bank_statement_st0 + statement_id3: account_bank_statement_st0 + total: 4000.0 +- + Then I click "Pay" button. +- + !python {model: auction.pay.buy}: | + self.pay_and_reconcile(cr, uid, [ref("auction_pay_buy_0")], {"lang": "en_US", "tz": + False, "active_model": "auction.lots", "active_ids": [ref("auction_lots_painting0")], + "active_id": ref("auction_lots_painting0"),}) +- + I check that a record gets created in the 'auction_statement_line_rel' table +- + !python {model: auction.lots}: | + from tools.translate import _ + cr.execute("select statement from auction_statement_line_rel,auction_lots where auction_lots.id=auction_statement_line_rel.auction_id AND auction_lots.name='painting'") + ans=cr.fetchall() + assert ans, _('statement_id not found!') +- + I create the seller's invoice by using the "Invoice Seller objects" wizard. +- + !record {model: auction.lots.make.invoice, id: auction_lots_make_invoice_0}: + amount: 3500.0 + number: 2010/002 + objects: 1 +- + Then I click on the "Create Invoices" button. +- + !python {model: auction.lots.make.invoice}: | + self.makeInvoices(cr, uid, [ref("auction_lots_make_invoice_0")], {"lang": "en_US", + "active_model": "auction.lots", "active_ids": [ref("auction_lots_painting0")], + "tz": False, "active_id": ref("auction_lots_painting0"),}) +- + I check that a "Seller Invoice" field gets bind with the value. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_painting0")) + assert(auc_id.sel_inv_id), _('Seller Invoice has not been created!') +- + I create a buyer's invoice by using the "Invoice Buyer objects" wizard. +- + !record {model: auction.lots.make.invoice.buyer, id: auction_lots_make_invoice_buyer_0}: + amount: 3500.0 + buyer_id: base.res_partner_3 + number: 2010/003 + objects: 1 +- + Then I click on the "Create Invoices" button. +- + !python {model: auction.lots.make.invoice.buyer}: | + self.makeInvoices(cr, uid, [ref("auction_lots_make_invoice_buyer_0")], {"lang": + "en_US", "active_model": "auction.lots", "active_ids": [ref("auction_lots_painting0")], + "tz": False, "active_id": ref("auction_lots_painting0"), }) +- + I check that a "Buyer Invoice" field gets bind with the value. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_painting0")) + assert(auc_id.ach_inv_id), _('Seller Invoice has not been created!') +- + In order to change the auction for an object I use the "Change auction date" wizard. +- + !record {model: auction.lots.auction.move, id: auction_lots_auction_move_0}: + auction_id: auction.auction_date_2 +- + Then I click on the "Move to Auction date" button. +- + !python {model: auction.lots.auction.move}: | + self.auction_move_set(cr, uid, [ref("auction_lots_auction_move_0")], {"lang": + "en_US", "tz": False, "active_model": "auction.lots", "active_ids": [ref("auction_lots_painting0")], + "active_id": ref("auction_lots_painting0"), }) +- + I check that a record gets created in the lot history. +- + !python {model: auction.lots}: | + from tools.translate import _ + auc_id=self.browse(cr, uid, ref("auction_lots_painting0")) + auc_lot_his=self.pool.get('auction.lot.history') + ids=auc_lot_his.search(cr, uid, [('lot_id', '=', auc_id.id)]) + assert ids, _('Auction history does not exists!') diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml index d0c1a57ba84..79c8a0207a3 100644 --- a/addons/base_calendar/base_calendar_view.xml +++ b/addons/base_calendar/base_calendar_view.xml @@ -138,7 +138,7 @@ + parent="base.menu_address_book" sequence="15" /> diff --git a/addons/base_module_quality/i18n/zh_CN.po b/addons/base_module_quality/i18n/zh_CN.po index 63aa756e8d6..f9b78c86564 100644 --- a/addons/base_module_quality/i18n/zh_CN.po +++ b/addons/base_module_quality/i18n/zh_CN.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-10 03:36+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" #. module: base_module_quality diff --git a/addons/base_report_designer/i18n/hr.po b/addons/base_report_designer/i18n/hr.po index 8b4c87f5583..56742afa154 100644 --- a/addons/base_report_designer/i18n/hr.po +++ b/addons/base_report_designer/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:43+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/base_setup/i18n/hr.po b/addons/base_setup/i18n/hr.po index 2cf88ec82e1..236c8a46a53 100644 --- a/addons/base_setup/i18n/hr.po +++ b/addons/base_setup/i18n/hr.po @@ -13,7 +13,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2010-06-09 03:35+0000\n" +"X-Launchpad-Export-Date: 2010-06-11 03:42+0000\n" "X-Generator: Launchpad (build Unknown)\n" "Language: hr\n" diff --git a/addons/board_manufacturing/board_manufacturing_view.xml b/addons/board_manufacturing/board_manufacturing_view.xml index 191f1818612..37624d6e025 100644 --- a/addons/board_manufacturing/board_manufacturing_view.xml +++ b/addons/board_manufacturing/board_manufacturing_view.xml @@ -14,8 +14,8 @@ - - + + diff --git a/addons/board_warehouse/board_warehouse_view.xml b/addons/board_warehouse/board_warehouse_view.xml index af797401935..08ece3f821d 100644 --- a/addons/board_warehouse/board_warehouse_view.xml +++ b/addons/board_warehouse/board_warehouse_view.xml @@ -23,7 +23,7 @@
- + diff --git a/addons/claim_from_delivery/__init__.py b/addons/claim_from_delivery/__init__.py new file mode 100644 index 00000000000..6f95fbf0fbc --- /dev/null +++ b/addons/claim_from_delivery/__init__.py @@ -0,0 +1,22 @@ +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/claim_from_delivery/__openerp__.py b/addons/claim_from_delivery/__openerp__.py new file mode 100644 index 00000000000..86d357834ff --- /dev/null +++ b/addons/claim_from_delivery/__openerp__.py @@ -0,0 +1,35 @@ +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2009 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + "name" : "Claim from delivery", + "version" : "1.0", + "author" : "Tiny", + "category" : "Enterprise Specific Modules/Food Industries", + "depends" : ["base", "crm_claim", "stock"], + "init_xml" : [], + "demo_xml" : [], + "description": '''Create Claim from delivery order: +''', + "update_xml" : ["claim_delivery_view.xml"], + "active": False, + "installable": True +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/claim_from_delivery/claim_delivery_view.xml b/addons/claim_from_delivery/claim_delivery_view.xml new file mode 100644 index 00000000000..a1c8be870e2 --- /dev/null +++ b/addons/claim_from_delivery/claim_delivery_view.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/addons/crm/crm.py b/addons/crm/crm.py index 7f7ab94616f..618dd55cc21 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -30,19 +30,19 @@ from tools.translate import _ MAX_LEVEL = 15 AVAILABLE_STATES = [ - ('draft', 'Draft'), - ('open', 'Open'), - ('cancel', 'Cancelled'), - ('done', 'Closed'), + ('draft', 'Draft'), + ('open', 'Open'), + ('cancel', 'Cancelled'), + ('done', 'Closed'), ('pending', 'Pending'), ] AVAILABLE_PRIORITIES = [ ('1', 'Highest'), - ('2', 'High'), - ('3', 'Normal'), - ('4', 'Low'), - ('5', 'Lowest'), + ('2', 'High'), + ('3', 'Normal'), + ('4', 'Low'), + ('5', 'Lowest'), ] class crm_case(object): @@ -107,10 +107,10 @@ class crm_case(object): """ user = self.pool.get('res.users').browse(cr, uid, uid, context=context) return user.context_section_id.id or False - + def stage_next(self, cr, uid, ids, context=None): """This function computes next stage for case from its current stage - using available stage for that case type + using available stage for that case type @param self: The object pointer @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, @@ -151,7 +151,7 @@ class crm_case(object): def stage_previous(self, cr, uid, ids, context=None): """This function computes previous stage for case from its current stage - using available stage for that case type + using available stage for that case type @param self: The object pointer @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, @@ -177,11 +177,11 @@ class crm_case(object): @param uid: the current user’s ID for security checks, @param ids: List of case IDs @param part: Partner's id - @email: Partner's email ID + @email: Partner's email ID """ if not part: - return {'value': {'partner_address_id': False, - 'email_from': False, + return {'value': {'partner_address_id': False, + 'email_from': False, }} addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact']) data = {'partner_address_id': addr['contact']} @@ -195,13 +195,13 @@ class crm_case(object): @param uid: the current user’s ID for security checks, @param ids: List of case IDs @param add: Id of Partner's address - @email: Partner's email ID + @email: Partner's email ID """ if not add: return {'value': {'email_from': False}} address = self.pool.get('res.partner.address').browse(cr, uid, add) return {'value': {'email_from': address.email}} - + def _history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, email_from=False, message_id=False, attach=[], context={}): mailgate_pool = self.pool.get('mailgate.thread') return mailgate_pool._history(cr, uid, cases, keyword, history=history,\ @@ -209,7 +209,7 @@ class crm_case(object): details=details, email_from=email_from,\ message_id=message_id, attach=attach, \ context=context) - + def case_open(self, cr, uid, ids, *args): """Opens Case @param self: The object pointer @@ -265,7 +265,7 @@ class crm_case(object): if case.section_id.parent_id.user_id: data['user_id'] = case.section_id.parent_id.user_id.id else: - raise osv.except_osv(_('Error !'), _('You can not escalate this case.\nYou are already at the top level.')) + raise osv.except_osv(_('Error !'), _('You can not escalate, You are already at the top level regarding your sales-team category.')) self.write(cr, uid, [case.id], data) cases = self.browse(cr, uid, ids) self._history(cr, uid, cases, _('Escalate')) @@ -317,7 +317,7 @@ class crm_case(object): self.write(cr, uid, ids, {'state': 'draft', 'active': True}) self._action(cr, uid, cases, 'draft') return True - + def remind_partner(self, cr, uid, ids, context={}, attach=False): """ @@ -350,7 +350,7 @@ class crm_case(object): src = case.email_from dest = case.section_id.reply_to body = "" - body = case.email_last or case.description + body = case.email_last or case.description if not destination: src, dest = dest, src if body and case.user_id.signature: @@ -381,7 +381,7 @@ class crm_case(object): # raise osv.except_osv(_('Email!'),("Email Successfully Sent")) #else: # raise osv.except_osv(_('Email Fail!'),("Email is not sent successfully")) - return True + return True def _check(self, cr, uid, ids=False, context={}): """ @@ -428,12 +428,12 @@ class crm_case_section(osv.osv): _order = "name" _columns = { - 'name': fields.char('Sales Team', size=64, required=True, translate=True), - 'code': fields.char('Code', size=8), + 'name': fields.char('Sales Team', size=64, required=True, translate=True), + 'code': fields.char('Code', size=8), 'active': fields.boolean('Active', help="If the active field is set to \ - true, it will allow you to hide the sales team without removing it."), - 'allow_unlink': fields.boolean('Allow Delete', help="Allows to delete non draft cases"), - 'user_id': fields.many2one('res.users', 'Responsible User'), + true, it will allow you to hide the sales team without removing it."), + 'allow_unlink': fields.boolean('Allow Delete', help="Allows to delete non draft cases"), + 'user_id': fields.many2one('res.users', 'Responsible User'), 'member_ids':fields.many2many('res.users', 'sale_member_rel', 'section_id', 'member_id', 'Team Members'), 'reply_to': fields.char('Reply-To', size=64, help="The email address put \ in the 'Reply-To' of all emails sent by Open ERP about cases in this sales team"), @@ -445,8 +445,8 @@ class crm_case_section(osv.osv): } _defaults = { - 'active': lambda *a: 1, - 'allow_unlink': lambda *a: 1, + 'active': lambda *a: 1, + 'allow_unlink': lambda *a: 1, } _sql_constraints = [ @@ -463,7 +463,7 @@ class crm_case_section(osv.osv): @param ids: List of Sales team ids """ level = 100 - + while len(ids): cr.execute('select distinct parent_id from crm_case_section where id =ANY(%s)', (ids,)) ids = filter(None, map(lambda x: x[0], cr.fetchall())) @@ -509,9 +509,9 @@ class crm_case_categ(osv.osv): _description = "Category of case" _columns = { - 'name': fields.char('Case Category Name', size=64, required=True, translate=True), - 'section_id': fields.many2one('crm.case.section', 'Sales Team'), - 'object_id': fields.many2one('ir.model', 'Object Name'), + 'name': fields.char('Case Category Name', size=64, required=True, translate=True), + 'section_id': fields.many2one('crm.case.section', 'Sales Team'), + 'object_id': fields.many2one('ir.model', 'Object Name'), } def _find_object_id(self, cr, uid, context=None): @@ -541,9 +541,9 @@ class crm_case_resource_type(osv.osv): _rec_name = "name" _columns = { - 'name': fields.char('Case Resource Type', size=64, required=True, translate=True), - 'section_id': fields.many2one('crm.case.section', 'Sales Team'), - 'object_id': fields.many2one('ir.model', 'Object Name'), + 'name': fields.char('Case Resource Type', size=64, required=True, translate=True), + 'section_id': fields.many2one('crm.case.section', 'Sales Team'), + 'object_id': fields.many2one('ir.model', 'Object Name'), } def _find_object_id(self, cr, uid, context=None): """Finds id for case object @@ -572,14 +572,14 @@ class crm_case_stage(osv.osv): _order = "sequence" _columns = { - 'name': fields.char('Stage Name', size=64, required=True, translate=True), - 'section_id': fields.many2one('crm.case.section', 'Sales Team'), + 'name': fields.char('Stage Name', size=64, required=True, translate=True), + 'section_id': fields.many2one('crm.case.section', 'Sales Team'), 'sequence': fields.integer('Sequence', help="Gives the sequence order \ - when displaying a list of case stages."), - 'object_id': fields.many2one('ir.model', 'Object Name'), - 'probability': fields.float('Probability (%)', required=True), + when displaying a list of case stages."), + 'object_id': fields.many2one('ir.model', 'Object Name'), + 'probability': fields.float('Probability (%)', required=True), 'on_change': fields.boolean('Change Probability Automatically', \ - help="Change Probability on next and previous stages."), + help="Change Probability on next and previous stages."), 'requirements': fields.text('Requirements') } def _find_object_id(self, cr, uid, context=None): @@ -594,8 +594,8 @@ class crm_case_stage(osv.osv): return ids and ids[0] _defaults = { - 'sequence': lambda *args: 1, - 'probability': lambda *args: 0.0, + 'sequence': lambda *args: 1, + 'probability': lambda *args: 0.0, 'object_id' : _find_object_id } @@ -619,7 +619,7 @@ class users(osv.osv): _inherit = 'res.users' _description = "Users" _columns = { - 'context_section_id': fields.many2one('crm.case.section', 'Sales Team'), + 'context_section_id': fields.many2one('crm.case.section', 'Sales Team'), } users() @@ -627,7 +627,7 @@ users() class res_partner(osv.osv): _inherit = 'res.partner' _columns = { - 'section_id': fields.many2one('crm.case.section', 'Sales Team'), + 'section_id': fields.many2one('crm.case.section', 'Sales Team'), } res_partner() diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 8a32fe00e32..dae93c38282 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -48,7 +48,7 @@