I created a direct relationship between the invoice and the stock move by downloading the Odoo app store developed by Cybrosys called "invoice_stock_move". If anyone has already used it, then how can I use the "Transfer" button in order to validate transfers automatically when pressing on this button?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- 客戶關係
- e-Commerce
- 會計
- 庫存
- PoS
- Project
- MRP
此問題已被標幟
1
回覆
3082
瀏覽次數
Hi,
Update the code inside models > invoice_stock.py
inside the button action 'action_stock_move'
Update the code as follows after creating picking
def action_stock_move(self):
if not self.picking_type_id:
raise UserError(_(
" Please select a picking type"))
for order in self:
if not self.invoice_picking_id:
pick = {}
if self.picking_type_id.code == 'outgoing':
pick = {
'picking_type_id': self.picking_type_id.id,
'partner_id': self.partner_id.id,
'origin': self.name,
'location_dest_id': self.partner_id.property_stock_customer.id,
'location_id': self.picking_type_id.default_location_src_id.id,
'move_type': 'direct'
}
if self.picking_type_id.code == 'incoming':
pick = {
'picking_type_id': self.picking_type_id.id,
'partner_id': self.partner_id.id,
'origin': self.name,
'location_dest_id': self.picking_type_id.default_location_dest_id.id,
'location_id': self.partner_id.property_stock_supplier.id,
'move_type': 'direct'
}
picking = self.env['stock.picking'].create(pick)
self.invoice_picking_id = picking.id
self.picking_count = len(picking)
moves = order.invoice_line_ids.filtered(
lambda r: r.product_id.type in ['product', 'consu'])._create_stock_moves(picking)
move_ids = moves._action_confirm()
move_ids._action_assign()
if picking.state == 'draft':
picking.action_confirm()
if picking.state != 'assigned':
picking.action_assign()
if picking.state != 'assigned':
raise UserError(
_("Could not reserve all requested products. Please use the \
'Mark as Todo\
' button to handle the reservation manually."))
for move in picking.move_ids.filtered(
lambda m: m.state not in ['done', 'cancel']):
for move_line in move.move_line_ids:
move_line.qty_done = move.product_uom_qty
picking.state = 'done'
Regards
Thank you, for anyone that will see it, just replace move_ids with move_lines and it should work
相關帖文 | 回覆 | 瀏覽次數 | 活動 | |
---|---|---|---|---|
|
0
3月 23
|
1767 | ||
|
0
3月 18
|
2737 | ||
|
1
8月 24
|
1275 | ||
|
3
2月 20
|
3406 | ||
|
0
10月 17
|
3016 |