diff --git a/wms_connector/models/stock_picking.py b/wms_connector/models/stock_picking.py index 359bf19bc37..9d63b57ecd8 100644 --- a/wms_connector/models/stock_picking.py +++ b/wms_connector/models/stock_picking.py @@ -34,7 +34,6 @@ def _compute_is_wms_exportable(self): for rec in self: rec.is_wms_exportable = ( rec.picking_type_id.warehouse_id.active_wms_sync - and rec.picking_type_id.code in ("incoming", "outgoing") ) def _is_user_allowed_to_cancel(self): diff --git a/wms_connector/models/stock_warehouse.py b/wms_connector/models/stock_warehouse.py index 11c3a8af9a6..7b2fb0ee041 100644 --- a/wms_connector/models/stock_warehouse.py +++ b/wms_connector/models/stock_warehouse.py @@ -130,7 +130,6 @@ def _get_domains(self): "product": [ ("warehouse_id", "=", self.id), ("to_export", "=", True), - ("wms_export_error", "=", False), ], "pickings_in": self.wms_export_picking_in_filter_id._get_eval_domain(), "pickings_out": self.wms_export_picking_out_filter_id._get_eval_domain(), diff --git a/wms_connector/models/synchronize_exportable_mixin.py b/wms_connector/models/synchronize_exportable_mixin.py index 2713f95b241..5efd6b9c178 100644 --- a/wms_connector/models/synchronize_exportable_mixin.py +++ b/wms_connector/models/synchronize_exportable_mixin.py @@ -34,16 +34,17 @@ def _get_export_data(self, raise_error=False): for rec in self: try: with self._cr.savepoint(): - data += rec._prepare_export_data(sequence) + sequence, rec_data = rec._prepare_export_data(sequence) + data += rec_data records |= rec rec.wms_export_error = None - sequence += 1 except Exception as e: + rec.wms_export_error = str(e) + rec.to_export = False if raise_error: raise if "pdb" in config.get("dev_mode"): raise - rec.wms_export_error = str(e) continue if self.record_per_file > 0 and len(records) >= self.record_per_file: yield records, data @@ -56,7 +57,7 @@ def _get_export_data(self, raise_error=False): def synchronize_export(self, raise_error=False): attachments = self.env["attachment.queue"] for records, data in self._get_export_data(raise_error=raise_error): - vals = self._format_to_exportfile(data) + vals = records._format_to_exportfile(data) attachment = self.env["attachment.queue"].create(vals) records.track_export(attachment) attachments |= attachment diff --git a/wms_connector/models/wms_product_sync.py b/wms_connector/models/wms_product_sync.py index cc9bef3b5f8..089b9d760de 100644 --- a/wms_connector/models/wms_product_sync.py +++ b/wms_connector/models/wms_product_sync.py @@ -16,17 +16,22 @@ class WmsProductSync(models.Model): warehouse_id = fields.Many2one("stock.warehouse", required=True, readonly=True) active = fields.Boolean(default=True) - to_export = fields.Boolean(compute="_compute_to_export", store=True, readonly=False) + to_export = fields.Boolean(compute="_compute_to_export", inverse="_inverse_to_export", store=True, readonly=False) @api.depends("product_id.name", "active") def _compute_to_export(self): for record in self: record.to_export = True + def _inverse_to_export(self): + for rec in self: + rec.to_export = rec.to_export + def _schedule_export(self, warehouse, domain=False): warehouse.refresh_wms_products() return super()._schedule_export(warehouse, domain) + def track_export(self, attachment): super().track_export(attachment) self.to_export = False diff --git a/wms_connector/views/stock_picking.xml b/wms_connector/views/stock_picking.xml index 634f7c90dc4..2041785bdf8 100644 --- a/wms_connector/views/stock_picking.xml +++ b/wms_connector/views/stock_picking.xml @@ -36,6 +36,7 @@ /> + wms.product.sync.tree (in wms_connector) wms.product.sync - +