[MIG] rma: to Odoo 14.0

This commit is contained in:
Jared Kipe
2020-10-30 15:16:54 -07:00
parent d0d1d01e14
commit 2c3fbe20b3
6 changed files with 27 additions and 18 deletions

View File

@@ -2,7 +2,7 @@
{ {
'name': 'Hibou RMAs', 'name': 'Hibou RMAs',
'version': '13.0.1.3.0', 'version': '14.0.1.0.0',
'category': 'Warehouse', 'category': 'Warehouse',
'author': 'Hibou Corp.', 'author': 'Hibou Corp.',
'license': 'OPL-1', 'license': 'OPL-1',

View File

@@ -413,7 +413,7 @@ class RMA(models.Model):
rma._invoice(values) rma._invoice(values)
def _invoice(self, invoice_values): def _invoice(self, invoice_values):
self.invoice_ids += self.env['account.move'].with_context(default_type=invoice_values['type']).create( self.invoice_ids += self.env['account.move'].with_context(default_move_type=invoice_values['move_type']).create(
invoice_values) invoice_values)
def _invoice_values(self): def _invoice_values(self):
@@ -427,7 +427,7 @@ class RMA(models.Model):
self.partner_id.id, delivery_id=self.partner_shipping_id.id) self.partner_id.id, delivery_id=self.partner_shipping_id.id)
invoice_values = { invoice_values = {
'type': 'in_refund' if supplier else 'out_refund', 'move_type': 'in_refund' if supplier else 'out_refund',
'partner_id': self.partner_id.id, 'partner_id': self.partner_id.id,
'fiscal_position_id': fiscal_position_id, 'fiscal_position_id': fiscal_position_id,
} }

View File

@@ -1,10 +1,10 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"manage_rma stock","manage rma","model_rma_rma","stock.group_stock_user",1,1,1,1 "manage_rma_stock","manage_rma","model_rma_rma","stock.group_stock_user",1,1,1,1
"manage_rma_line stock","manage rma line","model_rma_line","stock.group_stock_user",1,1,1,1 "manage_rma_line_stock","manage_rma_line","model_rma_line","stock.group_stock_user",1,1,1,1
"manage_rma_template stock","manage rma template","model_rma_template","stock.group_stock_manager",1,1,1,1 "manage_rma_template_stock","manage_rma_template","model_rma_template","stock.group_stock_manager",1,1,1,1
"manage_rma_tag stock","manage rma tag","model_rma_tag","stock.group_stock_manager",1,1,1,1 "manage_rma_tag_stock","manage_rma_tag","model_rma_tag","stock.group_stock_manager",1,1,1,1
"access_rma_template stock","access rma template","model_rma_template","stock.group_stock_user",1,1,0,0 "access_rma_template_stock","access_rma_template","model_rma_template","stock.group_stock_user",1,1,0,0
"access_rma_tag stock","access rma tag","model_rma_tag","stock.group_stock_user",1,0,0,0 "access_rma_tag_stock","access_rma_tag","model_rma_tag","stock.group_stock_user",1,0,0,0
access_rma_portal,rma.rma.portal,rma.model_rma_rma,base.group_portal,1,0,0,0 access_rma_portal,rma.rma.portal,rma.model_rma_rma,base.group_portal,1,0,0,0
access_rma_line_portal,rma.line.portal,rma.model_rma_line,base.group_portal,1,0,0,0 access_rma_line_portal,rma.line.portal,rma.model_rma_line,base.group_portal,1,0,0,0
access_rma_template_portal,rma.template.portal,rma.model_rma_template,base.group_portal,1,0,0,0 access_rma_template_portal,rma.template.portal,rma.model_rma_template,base.group_portal,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 manage_rma stock manage_rma_stock manage rma manage_rma model_rma_rma stock.group_stock_user 1 1 1 1
3 manage_rma_line stock manage_rma_line_stock manage rma line manage_rma_line model_rma_line stock.group_stock_user 1 1 1 1
4 manage_rma_template stock manage_rma_template_stock manage rma template manage_rma_template model_rma_template stock.group_stock_manager 1 1 1 1
5 manage_rma_tag stock manage_rma_tag_stock manage rma tag manage_rma_tag model_rma_tag stock.group_stock_manager 1 1 1 1
6 access_rma_template stock access_rma_template_stock access rma template access_rma_template model_rma_template stock.group_stock_user 1 1 0 0
7 access_rma_tag stock access_rma_tag_stock access rma tag access_rma_tag model_rma_tag stock.group_stock_user 1 0 0 0
8 access_rma_portal rma.rma.portal rma.model_rma_rma base.group_portal 1 0 0 0
9 access_rma_line_portal rma.line.portal rma.model_rma_line base.group_portal 1 0 0 0
10 access_rma_template_portal rma.template.portal rma.model_rma_template base.group_portal 1 0 0 0

View File

@@ -51,7 +51,7 @@ class TestRMA(common.TransactionCase):
rma.action_done() rma.action_done()
rma.out_picking_id.move_lines.quantity_done = 2.0 rma.out_picking_id.move_lines.quantity_done = 2.0
rma.out_picking_id.action_done() rma.out_picking_id.button_validate()
rma.action_done() rma.action_done()
self.assertEqual(rma.state, 'done') self.assertEqual(rma.state, 'done')
@@ -90,6 +90,12 @@ class TestRMA(common.TransactionCase):
}) })
adj.action_validate() adj.action_validate()
# No Quants after moving inventory out (quant exists with qty == 0 in Odoo 14)
quant = self.env['stock.quant'].search([('product_id', '=', self.product1.id),
('location_id', '=', location.id),
('quantity', '!=', 0)])
self.assertEqual(len(quant), 0)
# Adjust in a single serial # Adjust in a single serial
self.product1.tracking = 'serial' self.product1.tracking = 'serial'
@@ -199,7 +205,9 @@ class TestRMA(common.TransactionCase):
rma.action_done() rma.action_done()
# Ensure that the same lot was in fact returned into our destination inventory # Ensure that the same lot was in fact returned into our destination inventory
quant = self.env['stock.quant'].search([('product_id', '=', self.product1.id), ('location_id', '=', location.id)]) quant = self.env['stock.quant'].search([('product_id', '=', self.product1.id),
('location_id', '=', location.id),
('quantity', '!=', 0)])
self.assertEqual(len(quant), 1) self.assertEqual(len(quant), 1)
self.assertEqual(quant.lot_id, lot) self.assertEqual(quant.lot_id, lot)
@@ -279,7 +287,7 @@ class TestRMA(common.TransactionCase):
rma.action_done() rma.action_done()
rma.in_picking_id.move_lines.quantity_done = 2.0 rma.in_picking_id.move_lines.quantity_done = 2.0
rma.in_picking_id.action_done() rma.in_picking_id.button_validate()
rma.action_done() rma.action_done()
self.assertEqual(rma.state, 'done') self.assertEqual(rma.state, 'done')
@@ -298,11 +306,11 @@ class TestRMA(common.TransactionCase):
# ship and finish # ship and finish
rma_rtv.out_picking_id.move_lines.quantity_done = 2.0 rma_rtv.out_picking_id.move_lines.quantity_done = 2.0
rma_rtv.out_picking_id.action_done() rma_rtv.out_picking_id.button_validate()
rma_rtv.action_done() rma_rtv.action_done()
self.assertEqual(rma_rtv.state, 'done') self.assertEqual(rma_rtv.state, 'done')
# ensure invoice and type # ensure invoice and type
rtv_invoice = rma_rtv.invoice_ids rtv_invoice = rma_rtv.invoice_ids
self.assertTrue(rtv_invoice) self.assertTrue(rtv_invoice)
self.assertEqual(rtv_invoice.type, 'in_refund') self.assertEqual(rtv_invoice.move_type, 'in_refund')

View File

@@ -6,8 +6,8 @@
<field name="model">account.move</field> <field name="model">account.move</field>
<field name="inherit_id" ref="account.view_move_form"/> <field name="inherit_id" ref="account.view_move_form"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//group[@name='payments_info_group']" position="after"> <xpath expr="//group[@name='accounting_info_group']" position="after">
<group string="RMAs" name="rma" attrs="{'invisible': [('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}"> <group string="RMAs" name="rma" attrs="{'invisible': [('move_type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}">
<field name="rma_ids"/> <field name="rma_ids"/>
</group> </group>
</xpath> </xpath>

View File

@@ -6,7 +6,8 @@
<field name="inherit_id" ref="delivery.view_picking_withcarrier_out_form" /> <field name="inherit_id" ref="delivery.view_picking_withcarrier_out_form" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//button[@name='send_to_shipper']" position="attributes"> <xpath expr="//button[@name='send_to_shipper']" position="attributes">
<attribute name="attrs">{'invisible':['|','|','|',('carrier_tracking_ref','!=',False),('delivery_type','in', ['fixed', 'base_on_rule']),('delivery_type','=',False)]}</attribute> <!-- remove requirement that picking is in done state -->
<attribute name="attrs">{'invisible':['|','|','|',('carrier_tracking_ref','!=',False),('delivery_type','in', ['fixed', 'base_on_rule']),('delivery_type','=',False),('picking_type_code', '=', 'incoming')]}</attribute>
</xpath> </xpath>
</field> </field>
</record> </record>