Skip to content

Commit

Permalink
Merge PR OCA#2569 into 14.0
Browse files Browse the repository at this point in the history
Signed-off-by TheMule71
  • Loading branch information
OCA-git-bot committed Mar 25, 2022
2 parents d4a6619 + 8c49415 commit 4a32eaf
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 4 deletions.
2 changes: 2 additions & 0 deletions l10n_it_delivery_note/models/stock_picking.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,8 @@ def button_validate(self):
if delivery_note_to_create and not self.delivery_note_id:
delivery_note = self._create_delivery_note()
self.write({"delivery_note_id": delivery_note.id})
if self.sale_id:
self.sale_id._assign_delivery_notes_invoices(self.sale_id.invoice_ids)
return res

def _create_delivery_note(self):
Expand Down
57 changes: 57 additions & 0 deletions l10n_it_delivery_note/tests/test_stock_delivery_note.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,60 @@ def test_partial_delivering_single_so(self):
picking_backorder.move_lines[0].quantity_done = 1
picking_backorder.button_validate()
self.assertTrue(picking_backorder.delivery_note_id)

# ⇒ "Consegna senza ordine"
def test_delivery_without_so(self):
#
# Picking ┐
# └ DdT
#

user = new_test_user(
self.env,
login="test",
groups="stock.group_stock_manager,"
"l10n_it_delivery_note.use_advanced_delivery_notes",
)
# change user in order to automatically create delivery note
# when picking is validated
self.env.user = user

picking = self.env["stock.picking"].create(
{
"partner_id": self.recipient.id,
"picking_type_id": self.env.ref("stock.picking_type_out").id,
"location_id": self.env.ref("stock.stock_location_stock").id,
"location_dest_id": self.env.ref("stock.stock_location_customers").id,
}
)
self.env["stock.move"].create(
{
"name": self.env.ref("product.product_product_8").name,
"product_id": self.env.ref("product.product_product_8").id,
"product_uom_qty": 1,
"product_uom": self.env.ref("product.product_product_8").uom_id.id,
"picking_id": picking.id,
"location_id": self.env.ref("stock.stock_location_stock").id,
"location_dest_id": self.env.ref("stock.stock_location_customers").id,
}
)

self.assertEqual(len(picking.move_lines), 1)

# deliver product
picking.move_lines.quantity_done = 1
picking.button_validate()

# create delivery note with advanced mode
dn_form = Form(
self.env["stock.delivery.note.create.wizard"].with_context(
{"active_ids": [picking.id]}
)
)
dn = dn_form.save()
dn.confirm()

self.assertTrue(picking.delivery_note_id)
picking.delivery_note_id.action_confirm()
self.assertEqual(picking.delivery_note_id.state, "confirm")
self.assertEqual(picking.delivery_note_id.invoice_status, "no")
5 changes: 3 additions & 2 deletions l10n_it_delivery_note/wizard/delivery_note_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def confirm(self):
self.check_compliance(self.selected_picking_ids)

sale_order_ids = self.mapped("selected_picking_ids.sale_id")
sale_order_id = sale_order_ids and sale_order_ids[0] or False
sale_order_id = sale_order_ids and sale_order_ids[0] or self.env["sale.order"]

delivery_note = self.env["stock.delivery.note"].create(
{
Expand Down Expand Up @@ -100,7 +100,8 @@ def confirm(self):
)

self.selected_picking_ids.write({"delivery_note_id": delivery_note.id})
sale_order_id._assign_delivery_notes_invoices(sale_order_id.invoice_ids)
if sale_order_id:
sale_order_id._assign_delivery_notes_invoices(sale_order_id.invoice_ids)

if self.user_has_groups("l10n_it_delivery_note.use_advanced_delivery_notes"):
return delivery_note.goto()
5 changes: 3 additions & 2 deletions l10n_it_delivery_note/wizard/delivery_note_select.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,9 @@ def confirm(self):
self.selected_picking_ids.write({"delivery_note_id": self.delivery_note_id.id})

sale_order_ids = self.selected_picking_ids.sale_id
sale_order_id = sale_order_ids and sale_order_ids[0] or False
sale_order_id._assign_delivery_notes_invoices(sale_order_id.invoice_ids)
sale_order_id = sale_order_ids and sale_order_ids[0] or self.env["sale.order"]
if sale_order_id:
sale_order_id._assign_delivery_notes_invoices(sale_order_id.invoice_ids)

if self.user_has_groups("l10n_it_delivery_note.use_advanced_delivery_notes"):
return self.delivery_note_id.goto()

0 comments on commit 4a32eaf

Please sign in to comment.