diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index a2b56e48249..8a39ce82e10 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -294,7 +294,8 @@ class purchase_order(osv.osv):
'bid_validity': fields.date('Bid Valid Until', help="Date on which the bid expired"),
'picking_type_id': fields.many2one('stock.picking.type', 'Deliver To', help="This will determine picking type of incoming shipment", required=True,
states={'confirmed': [('readonly', True)], 'approved': [('readonly', True)], 'done': [('readonly', True)]}),
- 'related_location_id': fields.related('picking_type_id', 'default_location_dest_id', type='many2one', relation='stock.location', string="Related location", store=True),
+ 'related_location_id': fields.related('picking_type_id', 'default_location_dest_id', type='many2one', relation='stock.location', string="Related location", store=True),
+ 'related_usage': fields.related('location_id', 'usage', type='char'),
'shipment_count': fields.function(_count_all, type='integer', string='Incoming Shipments', multi=True),
'invoice_count': fields.function(_count_all, type='integer', string='Invoices', multi=True)
}
@@ -380,8 +381,8 @@ class purchase_order(osv.osv):
if picking_type_id:
picktype = self.pool.get("stock.picking.type").browse(cr, uid, picking_type_id, context=context)
if picktype.default_location_dest_id:
- value.update({'location_id': picktype.default_location_dest_id.id})
- value.update({'related_location_id': picktype.default_location_dest_id and picktype.default_location_dest_id.id or False})
+ value.update({'location_id': picktype.default_location_dest_id.id, 'related_usage': picktype.default_location_dest_id.usage})
+ value.update({'related_location_id': picktype.default_location_dest_id.id})
return {'value': value}
def onchange_partner_id(self, cr, uid, ids, partner_id, context=None):
@@ -749,7 +750,7 @@ class purchase_order(osv.osv):
'move_dest_id': procurement.move_dest_id.id, #move destination is same as procurement destination
'group_id': procurement.group_id.id or group_id, #move group is same as group of procurements if it exists, otherwise take another group
'procurement_id': procurement.id,
- 'invoice_state': procurement.rule_id.invoice_state or (procurement.location_id and procurement.location_id.usage == 'customer' and procurement.invoice_state=='picking' and '2binvoiced') or (order.invoice_method == 'picking' and '2binvoiced') or 'none', #dropship case takes from sale
+ 'invoice_state': procurement.rule_id.invoice_state or (procurement.location_id and procurement.location_id.usage == 'customer' and procurement.invoice_state=='2binvoiced' and '2binvoiced') or (order.invoice_method == 'picking' and '2binvoiced') or 'none', #dropship case takes from sale
'propagate': procurement.rule_id.propagate,
})
diff_quantity -= min(procurement_qty, diff_quantity)
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index b422df9b2ee..53c2e692ca1 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -226,10 +226,10 @@
-
+
diff --git a/addons/stock_dropshipping/stock_dropshipping.xml b/addons/stock_dropshipping/stock_dropshipping.xml
index de1de472d20..b161685eea3 100644
--- a/addons/stock_dropshipping/stock_dropshipping.xml
+++ b/addons/stock_dropshipping/stock_dropshipping.xml
@@ -14,7 +14,7 @@
Dropship
- outgoing
+ incoming
diff --git a/addons/stock_dropshipping/wizard/stock_invoice_onshipping.py b/addons/stock_dropshipping/wizard/stock_invoice_onshipping.py
index 6d0a7fc71f3..ca67ec2a11d 100644
--- a/addons/stock_dropshipping/wizard/stock_invoice_onshipping.py
+++ b/addons/stock_dropshipping/wizard/stock_invoice_onshipping.py
@@ -34,9 +34,12 @@ class stock_invoice_onshipping(osv.osv_memory):
pick = pickings and pickings[0]
src_usage = pick.move_lines[0].location_id.usage
dest_usage = pick.move_lines[0].location_dest_id.usage
- pick_purchase = pick.move_lines and pick.move_lines[0].purchase_line_id and pick.move_lines[0].purchase_line_id.order_id.invoice_method == 'picking'
- if pick.picking_type_id.code == 'outgoing' and src_usage == 'supplier' and dest_usage == 'customer' and pick_purchase:
- return 'purchase'
+ if src_usage == 'supplier' and dest_usage == 'customer':
+ pick_purchase = pick.move_lines and pick.move_lines[0].purchase_line_id and pick.move_lines[0].purchase_line_id.order_id.invoice_method == 'picking'
+ if pick_purchase:
+ return 'purchase'
+ else:
+ return 'sale'
else:
return super(stock_invoice_onshipping, self)._get_journal_type(cr, uid, context=context)