diff --git a/addons/point_of_sale/pos.py b/addons/point_of_sale/pos.py index 23b2339d9e9..623163b6460 100644 --- a/addons/point_of_sale/pos.py +++ b/addons/point_of_sale/pos.py @@ -1271,46 +1271,6 @@ class pos_payment(osv.osv): pos_payment() -class account_move_line(osv.osv): - - _inherit = 'account.move.line' - def create(self, cr, user, vals, context=None): - pos_obj = self.pool.get('pos.order') - val_name = vals.get('name', '') - val_ref = vals.get('ref', '') - if (val_name and 'POS' in val_name) and (val_ref and 'PACK' in val_ref): - aaa = re.search(r'Stock move.\((.*)\)', vals.get('name')) - name_pos = aaa.groups()[0] - pos_id = name_pos.replace('POS ','') - if pos_id and pos_id.isdigit(): - pos_curr = pos_obj.browse(cr,user,int(pos_id)) - pos_curr = pos_curr and pos_curr.contract_number or '' - vals['ref'] = pos_curr or vals.get('ref') - return super(account_move_line, self).create(cr, user, vals, context) - -account_move_line() - - -class account_move(osv.osv): - - _inherit = 'account.move' - def create(self, cr, user, vals, context=None): - pos_obj = self.pool.get('pos.order') - val_name = vals.get('name', '') - val_ref = vals.get('ref', '') - if (val_name and 'POS' in val_name) and (val_ref and 'PACK' in val_ref): - aaa = re.search(r'Stock move.\((.*)\)', vals.get('name')) - name_pos = aaa.groups()[0] - pos_id = name_pos.replace('POS ','') - if pos_id and pos_id.isdigit(): - pos_curr = pos_obj.browse(cr,user,int(pos_id)) - pos_curr = pos_curr and pos_curr.contract_number or '' - vals['ref'] = pos_curr or vals.get('ref') - return super(account_move, self).create(cr, user, vals, context) - -account_move() - - class product_product(osv.osv): _inherit = 'product.product' _columns = { diff --git a/addons/project/test/test_project.yml b/addons/project/test/test_project.yml index bbdaa57d617..d57cc274366 100644 --- a/addons/project/test/test_project.yml +++ b/addons/project/test/test_project.yml @@ -51,7 +51,6 @@ new_prj = self.read(cr, uid, [new_id], ['name', 'state'])[0] state = new_prj['state'] name = new_prj['name'] - print "Project '%s' created"%name assert state == 'open', "Project in %s state. Project created from template project must be in open state"%state - Reset project template to normal project diff --git a/addons/project_mrp/project_mrp.py b/addons/project_mrp/project_mrp.py index d5a76812a2d..4e99ee0b281 100644 --- a/addons/project_mrp/project_mrp.py +++ b/addons/project_mrp/project_mrp.py @@ -48,12 +48,13 @@ class project_task(osv.osv): return True project_task() + class product_product(osv.osv): _inherit = "product.product" _columns = { 'project_id': fields.many2one('project.project', 'Project', ondelete='set null',) } -product_product() +product_product() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_mrp/project_procurement.py b/addons/project_mrp/project_procurement.py index 251a4600081..c434b84583f 100644 --- a/addons/project_mrp/project_procurement.py +++ b/addons/project_mrp/project_procurement.py @@ -34,78 +34,25 @@ class procurement_order(osv.osv): if context is None: context = {} for procurement in self.browse(cr, uid, ids): - sline = self.pool.get('sale.order.line') - product_obj=self.pool.get('product.product') - content = '' - sale_order = self.pool.get('sale.order') - so_ref = procurement.name.split(':')[0] - order_ids = sale_order.search(cr, uid, [('name', '=', so_ref)], context) - - if order_ids: - sale_ids = sale_order.read(cr, uid, order_ids[0], ['order_line'], context=context)['order_line'] - else: - so_ref = procurement.origin.split(':')[0] - sale_ids = sline.search(cr, uid, [('procurement_id', '=',procurement.id)], context) - l = None - project_id = None - analytic_account_id = False - partner_id = False - - for line in sline.browse(cr, uid, sale_ids, context=context): - content += (line.notes or '') - l = line - partner_id = line.order_id.partner_id.id - if line.order_id.project_id: - analytic_account_id = line.order_id.project_id.id - partner_id = line.order_id.partner_id.id - content+="\n\n"+line.order_id.project_id.complete_name - break - - # Creating a project for task.Project is created from Procurement. - project_obj = self.pool.get('project.project') - proj_name = tools.ustr(so_ref) - product_project = procurement.product_id.project_id or False - proj_exist_id = project_obj.search(cr, uid, [('name', '=', proj_name)], context=context) - if not proj_exist_id: - parent_project = False - if product_project: - parent_project = product_project.analytic_account_id.id - project_id = project_obj.create(cr, uid, {'name': proj_name, 'partner_id': partner_id, 'parent_id': parent_project}) - else: - project_id = proj_exist_id[0] - self.write(cr, uid, [procurement.id], {'state': 'running'}) - - name_task = ('','') - planned_hours=0.0 - if procurement.product_id.type == 'service': - proc_name = procurement.name - if procurement.origin == proc_name: - proc_name = procurement.product_id.name - - name_task = (procurement.origin, proc_name or '') - else: - name_task = (procurement.product_id.name or procurement.origin, procurement.name or '') - planned_hours= procurement.product_id.sale_delay + procurement.product_id. produce_delay + planned_hours = procurement.product_qty task_id = self.pool.get('project.task').create(cr, uid, { - 'name': '%s:%s' % name_task, + 'name': '%s:%s' % (procurement.origin or '', procurement.name), 'date_deadline': procurement.date_planned, 'planned_hours':planned_hours, 'remaining_hours': planned_hours, 'user_id': procurement.product_id.product_manager.id, - 'notes': "b"+(l and l.order_id.note or ''), + 'notes': procurement.note, 'procurement_id': procurement.id, - 'description': content, + 'description': procurement.note, 'date_deadline': procurement.date_planned, + 'project_id': procurement.project_id and procurement.project_id.id or False, 'state': 'draft', - 'partner_id': l and l.order_id.partner_id.id or False, 'company_id': procurement.company_id.id, - 'project_id': project_id, },context=context) self.write(cr, uid, [procurement.id],{'task_id':task_id}) - product_obj.write(cr,uid,[procurement.product_id.id],{'project_id':project_id}) return task_id procurement_order() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale/test/invoice_on_ordered_qty.yml b/addons/sale/test/invoice_on_ordered_qty.yml index d157dcac547..3170aec11b9 100644 --- a/addons/sale/test/invoice_on_ordered_qty.yml +++ b/addons/sale/test/invoice_on_ordered_qty.yml @@ -37,11 +37,11 @@ so = self.browse(cr, uid, ref("sale_order_so9")) assert so.picking_ids,"Picking has not been generated for sale_order_so9" - - Then I click on the "Products Received" button of Incoming Shipments + Then I confirm the picking - !record {model: stock.partial.picking, id: stock_partial_picking_0}: date: '2010-07-17 17:52:09' -- +- Then I done the picking - !python {model: stock.picking }: | @@ -86,7 +86,7 @@ inv_brw = self.browse(cr,uid,ids)[0] for inv_lines in inv_brw.invoice_line: qty1 = inv_lines.quantity - assert ('qty1','=','qty'), "Quantities are not same" + assert qty1==qty, "Quantities are not same" - I open the Invoice for the SO. - @@ -123,10 +123,10 @@ so = sale_order_obj.browse(cr, uid, ref("sale_order_so9")) invoice_ids = so.invoice_ids for invoice in invoice_ids: - assert (invoice.state) =='paid', "Invoice for SO is not in done state." + assert invoice.state =='paid', "Invoice for SO is not in done state." - I check that Paid has been set to true. - !python {model: sale.order}: | sale_id=self.browse(cr, uid, ref("sale_order_so9")) - assert(sale_id.invoiced == True), "Paid has not been set to true" + assert sale_id.invoiced == True, "Paid has not been set to true" diff --git a/addons/sale/test/invoice_on_shipped_qty.yml b/addons/sale/test/invoice_on_shipped_qty.yml index 24428995162..38a64620e13 100644 --- a/addons/sale/test/invoice_on_shipped_qty.yml +++ b/addons/sale/test/invoice_on_shipped_qty.yml @@ -1,12 +1,11 @@ - In order to test the Sale module in OpenERP, - I create a Sale Order for Slider Mobile for 500 quantity having Shipping Policy 'Invoice from Picking' and Invoice on 'Shipped quantities' - in order to create an invoice based on the shipping quantity + I create a Sale Order for Slider Mobile for 200 quantity having Shipping Policy 'Invoice from Picking' and Invoice on 'Shipped quantities' - !record {model: sale.order, id: sale_order_so6}: date_order: '2010-07-17' invoice_quantity: order - name: Test_SO006 + name: Test_SO006BIS order_line: - name: Slider Mobile price_unit: 200 @@ -37,12 +36,12 @@ so = self.browse(cr, uid, ref("sale_order_so6")) assert so.picking_ids,"Picking has not been generated for sale_order_so6" - - Then I click on the "Products Received" button of Incoming Shipments + Then I click on the "Product Sent" button of Outgoing Shipments - !record {model: stock.partial.picking, id: stock_partial_picking_0}: date: '2010-07-17 17:52:09' - - Then I done the picking + I change the quantity on the picking to 199, and confirm partially 100 PCE. - !python {model: stock.picking }: | import time @@ -50,22 +49,24 @@ so = sale_order_obj.browse(cr, uid, ref("sale_order_so6")) picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')]) if picking_id: + pick=self.browse(cr,uid,picking_id[0]) + self.pool.get('stock.move').write(cr, uid, [pick.move_lines[0].id], {'product_qty': 199, 'product_uos_qty': 199}) pick=self.browse(cr,uid,picking_id[0]) pick.force_assign(cr, uid) partial_datas = { - 'partner_id':pick.address_id.partner_id.id, - 'address_id': pick.address_id.id, - 'delivery_date' : time.strftime('%Y-%m-%d'), - } + 'partner_id':pick.address_id.partner_id.id, + 'address_id': pick.address_id.id, + 'delivery_date' : time.strftime('%Y-%m-%d'), + } move = pick.move_lines[0] partial_datas['move%s'%(move.id)]= { 'product_id': move.product_id.id, 'product_qty': '100', 'product_uom': move.product_uom.id, - } + } self.do_partial(cr, uid, [pick.id],partial_datas) - - Then I create invoice from picking + Then I create the invoice from the two partial picking - !record {model: stock.invoice.onshipping, id: stock_invoice_onshipping_6}: invoice_date: '2010-07-17' @@ -89,21 +90,22 @@ so = self.browse(cr, uid, ref("sale_order_so6")) assert so.invoice_ids, "Invoices has not been generated for sale_order_so6" - - I verify that an invoice is created on the basis of shipped quantity + I verify that an invoice is created on the basis of shipped quantities 199 not ordered quantities 200 - !python {model: account.invoice}: | sale_order_obj = self.pool.get('sale.order') so = sale_order_obj.browse(cr, uid, ref("sale_order_so6")) picking_obj = self.pool.get('stock.picking') - ids = picking_obj.search(cr, uid, [('origin', '=', so.name)]) - pick_brw = picking_obj.browse(cr,uid, ids)[0] - for lines in pick_brw.move_lines: - qty=lines.product_qty - inv_id = self.search(cr, uid, [('origin', '=', so.name)]) + ids = picking_obj.search(cr, uid, [('origin', '=', so.name),('type','=','out')]) + qty = qty1 = 0.0 + for pick_brw in picking_obj.browse(cr,uid, ids): + for lines in pick_brw.move_lines: + qty=lines.product_qty + inv_id = self.search(cr, uid, [('origin', 'like', so.name)]) inv_brw = self.browse(cr,uid,inv_id)[0] for inv_lines in inv_brw.invoice_line: qty1=inv_lines.quantity - assert ('qty1','=','qty'), "Quantities are not same" + assert abs(qty1-qty) < 0.001, "Quantities are not the same" - I open the Invoice for the SO. - @@ -140,10 +142,10 @@ so = sale_order_obj.browse(cr, uid, ref("sale_order_so6")) invoice_ids = so.invoice_ids for invoice in invoice_ids: - assert (invoice.state) =='paid', "Invoice for SO is not in done state." + assert invoice.state=='paid', "Invoice for SO is not in done state." - I check that Paid has been set to true. - !python {model: sale.order}: | sale_id=self.browse(cr, uid, ref("sale_order_so6")) - assert(sale_id.invoiced == True), "Paid has not been set to true" + assert sale_id.invoiced == True, "Paid has not been set to true"