跳至內容
選單
此問題已被標幟
1 回覆
3082 瀏覽次數

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?

頭像
捨棄
最佳答案

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