Skip to content

Commit

Permalink
[16.0][ADD] pos_product_packaging_container_deposit: add multiple pro…
Browse files Browse the repository at this point in the history
…duct packaging
  • Loading branch information
cyrilmanuel committed May 29, 2024
1 parent a11b891 commit 087df00
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ class PosSession(models.Model):

def _loader_params_product_packaging(self):
result = super()._loader_params_product_packaging()
result["search_params"]["fields"].append("container_deposit_product_id")
result["search_params"]["fields"].append("container_deposit_product_ids")
return result
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import fields, models

from odoo.tools import groupby

class ProductPackaging(models.Model):
_inherit = "product.packaging"
Expand All @@ -11,3 +11,19 @@ class ProductPackaging(models.Model):
container_deposit_product_id = fields.Many2one(
"product.product", related="package_type_id.container_deposit_product_id"
)

container_deposit_product_ids = fields.Many2many(
"product.product", compute="_compute_product_ids"
)

def _compute_product_ids(self):
for rec in self:
packagings = rec.product_id.packaging_ids
container_deposit_product_ids = []
for plevel, packs in groupby(packagings, lambda p: p.packaging_level_id):
container_deposit = packs[
0
].package_type_id.container_deposit_product_id
if container_deposit:
container_deposit_product_ids.append(container_deposit.id)
rec.container_deposit_product_ids = container_deposit_product_ids
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ odoo.define(
selectedLine.container_deposit_line_id
);
if (checkDepositLine) return;

// for (container_deposit_line in selectedLine.container_deposit_line_ids){
// const checkDepositLine = this.currentOrder.get_orderline(
// container_deposit_line
// );
// if (checkDepositLine) return;
// }
}
const packaging =
this.env.pos.db.product_packaging_by_barcode[code.base_code];
Expand All @@ -33,7 +40,7 @@ odoo.define(
}
const deposit_product =
this.env.pos.db.product_packaging_by_barcode[code.base_code]
.container_deposit_product_id;
.container_deposit_product_ids;
if (!deposit_product) return;

const currentQuantity = selectedLine.get_quantity();
Expand All @@ -45,7 +52,7 @@ odoo.define(
);
if (this.env.pos.isProductQtyZero(deposit_qty)) return;

// Add deposit to the order.
// Add deposit to the order. WARNING NEED TO BE UPDATE
let product = this.env.pos.db.get_product_by_id(deposit_product[0]);
if (!product) {
await this.env.pos._addProducts([deposit_product[0]], false);
Expand Down

0 comments on commit 087df00

Please sign in to comment.