profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/TDu/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Thierry Ducrest TDu @camptocamp Lausanne, Swizerland http://thierry.ducrest.net

sebalix/wms 1

Warehouse Management System for advance logistic with Odoo

grindtildeath/bank-payment 0

Odoo Electronic Payment

guewen/connector-infor 0

Odoo modules to integrate with Infor

TDu/account-closing 0

Odoo Accountant closing tools

TDu/account-financial-tools 0

Odoo Accountant Financial Tools and Utils

TDu/account-invoicing 0

Odoo Invoicing Extension Addons

TDu/account-reconcile 0

Odoo account reconciliation modules (statements, data completion,...)

TDu/accounting.js 0

A lightweight JavaScript library for number, money and currency formatting - fully localisable, zero dependencies.

Pull request review commentOCA/edi

[13.0][ADD] sale_order_import_ubl_customer_free_ref

+# © 2016-2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).+++from odoo import api, models+from odoo.osv.expression import AND+++class SaleOrderImport(models.TransientModel):+    _inherit = "sale.order.import"++    @api.model+    def _search_existing_order_domain(+        self, parsed_order, commercial_partner, state_domain+    ):+        # Overwrite from sale_order_import module+        # Search for existing order on 'customer_order_number' instead of+        # 'client_order_ref'+        return AND(+            [+                state_domain,+                [+                    ("customer_order_number", "=", parsed_order["order_ref"]),+                    ("commercial_partner_id", "=", commercial_partner.id),+                ],+            ]+        )++    def _prepare_order(self, parsed_order, price_source):+        res = super()._prepare_order(parsed_order, price_source)+        res["customer_order_number"] = parsed_order.get("order_ref")+        res["customer_order_free_ref"] = parsed_order.get("customer_reference", "")+        # Removed because will be computed+        res.pop("client_order_ref")+        return res++    def parse_ubl_sale_order(self, xml_root):+        res = super().parse_ubl_sale_order(xml_root)+        ns = xml_root.nsmap+        main_xmlns = ns.pop(None)+        ns["main"] = main_xmlns+        # This should be extracted !

@simahawk Done

TDu

comment created time in 22 minutes

PullRequestReviewEvent

push eventTDu/edi

Thierry Ducrest

commit sha ed5d63fb05f40a83c7ce541c94109d74727a1b42

[13.0][ADD] sale_order_import_ubl_customer_free_ref This is a glue module between `sale_order_import_ubl` and `sale_order_customer_free_ref`. It extracts the `CurstomerReference`, from the XML received.

view details

push time in 22 minutes

pull request commentOCA/sale-reporting

[13.0][ADD] sale_order_line_position

@simahawk I squashed, and answer in your previous comment about changing the implementation.

TDu

comment created time in 30 minutes

push eventcamptocamp/sale-reporting

Thierry Ducrest

commit sha cce149896f051c484aa21baa26932f1f72742c78

13.0][ADD] sale_order_line_position This module adds an auto computed position on sale order line. This position number is added on the report. The position can be used to keep track of each line during the delivery, invoicing of the order with the customer. This is why there is related modules on `account-invoice-reporting` and `stock-logisics-reporting`. The position set on a line is not changed when the order is not in draft anymore.

view details

push time in 31 minutes

PullRequestReviewEvent

Pull request review commentOCA/sale-reporting

[13.0][ADD] sale_order_line_position

+# Copyright 2021 Camptocamp SA+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)++from odoo import api, fields, models+++class SaleOrderLine(models.Model):+    _inherit = "sale.order.line"++    position = fields.Integer(readonly=True, index=True, default=False)+    position_formatted = fields.Char(compute="_compute_position_formatted")++    @api.depends("position")+    def _compute_position_formatted(self):+        for record in self:+            record.position_formatted = record._format_position(record.position)++    @api.onchange("sequence")+    def _onchange_sequence(self):+        if self.order_id.locked_positions:+            return+        lines = self.order_id.order_line.filtered(+            lambda x: not x.display_type and x.sequence < self.sequence+        )+        self.position = len(lines) + 1++    @api.model_create_multi+    def create(self, vals_list):+        sale_ids = [

can't we do this only on SO write of order_line? The write on the order is not called when a new line is created (At least not in the current test with create on a sale.order.line), And on sale creation neither.

Also, does it make sense to do it for all order states? Yes because any sale.order.line should have a position and it should never change.

I think this is adding too much overhead at lines' creation. Now with the @api.model_create_multi maybe not that much, on sale creation the create function is only called once!

TDu

comment created time in 34 minutes

PullRequestReviewEvent

pull request commentOCA/edi

[13.0][ADD] sale_order_import_ubl_customer_free_ref

Rebased to remove #328 that has been merged already.

TDu

comment created time in 2 days

push eventTDu/edi

Simone Orsi

commit sha fc835dcae7e7708171d4b4334ebf593b56477efa

edi: consumer mixin fix Serialized field usage

view details

Simone Orsi

commit sha 4fd802ec433a8b4202c4f02d1907d7ca4b36f69f

edi: component ease access to record

view details

Simone Orsi

commit sha 2c9ea76eefb40eee45d9f59f8d3840e6d09e3f30

edi: refactor component lookup The match is now done based on specific control keys: backend type, exchange type. This makes components more clean and their behavior more understandable.

view details

Simone Orsi

commit sha 60b9ddfcaac365e51287863fe0677b4477188a13

edi_storage: adapt to new components lookup

view details

Simone Orsi

commit sha 5b64b3c402210166c35b170958d47ffde71cfaa2

edi_exchange_template: add TODO

view details

Alexis de Lattre

commit sha 4ac64df720de1370c24e42b9c11e6b7822a7b88d

account_invoice_facturx: backport no-tax-bugfix from v14 Also backport other small improvements

view details

Thierry Ducrest

commit sha 1dede219c42f0ccdf5233e3f211b87be47a031ec

[13.0][ADD] sale_order_customer_order_free_ref The goal of this module is to improve on the `client_order_ref` on `sale.order`. By default Odoo only has one field to handle the customer reference of a sale order. But when using EDI some specifications allow to have two fields for this, the customer order Id and a customer (free) reference. To help with this, this module adds two specific fields for them and transform the `client_order_ref` standard field into a computed one. The two new fields are also passed on to created invoices.

view details

Thierry Ducrest

commit sha 983e209e521a32c857b18034e03902bd7900f2e8

fixup! [13.0][ADD] sale_order_customer_order_free_ref

view details

Simone Orsi

commit sha 7a4fc4bb8a2442176c0ab00d6c1b68f1859ff1e5

edi_exchange_template: adapt lookup to new api

view details

sergio-teruel

commit sha ba3b470d00d83874cd1a5a18a827d314666c5937

[FIX] edi_voxel_stock_picking: Crash when a picking is cancelled

view details

OCA-git-bot

commit sha 038651c1b71930f3f3fc7ac5fcec95c54dd62fab

Merge PR #337 into 13.0 Signed-off-by pedrobaeza

view details

Simone Orsi

commit sha 837121f30b09ed6fc9ad4b9dc7ca604f69b19b70

edi_xml: adapt tests to new api

view details

oca-travis

commit sha 47b2111d6726c545b234e591d5fd43b6442cb088

[UPD] Update edi_voxel_stock_picking.pot

view details

sergio-teruel

commit sha 578c4cfff8cabcb1ebf45b2b3a1105a8e870bf1b

[FIX] edi_voxel_account_invoice: Fix tests

view details

OCA-git-bot

commit sha 67f0f628d080209cb6b665339eeef39fdd7456de

edi_voxel_stock_picking 13.0.1.0.1

view details

OCA-git-bot

commit sha d203c8038ae9a2322fe930e3b3dec6dc943daab3

[UPD] addons table in README.md

view details

OCA Transbot

commit sha a892073c88e822551c604f509be43cd245763955

Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: edi-13.0/edi-13.0-edi_voxel_stock_picking Translate-URL: https://translation.odoo-community.org/projects/edi-13-0/edi-13-0-edi_voxel_stock_picking/

view details

OCA-git-bot

commit sha d7365f7aaad8b74d6e7959f7569d4f366d474724

Merge PR #295 into 13.0 Signed-off-by simahawk

view details

OCA-git-bot

commit sha f1e57605e29e3efc414cae7e2612c17464443cc4

edi 13.0.1.15.0

view details

OCA-git-bot

commit sha 823ae8831284ad99f6072edd312afe6e5e5027ca

edi_exchange_template 13.0.1.5.0

view details

push time in 2 days

PullRequestReviewEvent

Pull request review commentOCA/edi

[13.0][ADD] sale_order_import_ubl_customer_free_ref

+# © 2016-2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).+++from odoo import api, models+from odoo.osv.expression import AND+++class SaleOrderImport(models.TransientModel):+    _inherit = "sale.order.import"++    @api.model+    def _search_existing_order_domain(+        self, parsed_order, commercial_partner, state_domain+    ):+        # Overwrite from sale_order_import module+        # Search for existing order on 'customer_order_number' instead of+        # 'client_order_ref'+        return AND(+            [+                state_domain,+                [+                    ("customer_order_number", "=", parsed_order["order_ref"]),+                    ("commercial_partner_id", "=", commercial_partner.id),+                ],+            ]+        )++    def _prepare_order(self, parsed_order, price_source):+        res = super()._prepare_order(parsed_order, price_source)+        res["customer_order_number"] = parsed_order.get("order_ref")+        res["customer_order_free_ref"] = parsed_order.get("customer_reference", "")+        # Removed because will be computed+        res.pop("client_order_ref")+        return res++    def parse_ubl_sale_order(self, xml_root):+        res = super().parse_ubl_sale_order(xml_root)+        ns = xml_root.nsmap+        main_xmlns = ns.pop(None)+        ns["main"] = main_xmlns+        # This should be extracted !

A todo, a note :shrug: Probably something that can be done on the based module. For next version ?

TDu

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentOCA/sale-reporting

[13.0][ADD] sale_order_line_position

+# Copyright 2021 Camptocamp SA+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)++from odoo import api, fields, models+++class SaleOrderLine(models.Model):+    _inherit = "sale.order.line"++    position = fields.Integer(readonly=True, index=True, default=False)+    position_formatted = fields.Char(compute="_compute_position_formatted")++    @api.depends("position")+    def _compute_position_formatted(self):+        for record in self:+            record.position_formatted = record._format_position(record.position)++    @api.onchange("sequence")+    def _onchange_sequence(self):+        if self.order_id.locked_positions:+            return+        lines = self.order_id.order_line.filtered(+            lambda x: not x.display_type and x.sequence < self.sequence+        )+        self.position = len(lines) + 1++    @api.model_create_multi+    def create(self, vals_list):+        sale_ids = [

@simahawk This one has not been taken care of, should it ?

TDu

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentOCA/sale-reporting

[13.0][ADD] sale_order_line_position

+# Copyright 2021 Camptocamp SA+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)++from odoo import api, fields, models+++class SaleOrder(models.Model):+    _inherit = "sale.order"++    locked_positions = fields.Boolean(compute="_compute_locked_positions")++    @api.depends("state")+    def _compute_locked_positions(self):+        for record in self:+            record.locked_positions = record.state != "draft"++    def action_quotation_send(self):+        self.recompute_position()+        return super().action_quotation_send()++    def recompute_position(self):

Changed

TDu

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentOCA/sale-reporting

[13.0][ADD] sale_order_line_position

+# Copyright 2021 Camptocamp SA+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)++from odoo import api, fields, models+++class SaleOrderLine(models.Model):+    _inherit = "sale.order.line"++    position = fields.Integer(readonly=True, index=True, default=False)+    position_formatted = fields.Char(compute="_compute_position_formatted")++    @api.depends("position")+    def _compute_position_formatted(self):+        for record in self:+            record.position_formatted = record._format_position(record.position)++    @api.onchange("sequence")+    def _onchange_sequence(self):+        if self.order_id.locked_positions:+            return+        lines = self.order_id.order_line.filtered(+            lambda x: not x.display_type and x.sequence < self.sequence+        )+        self.position = len(lines) + 1++    @api.model_create_multi+    def create(self, vals_list):+        sale_ids = [

Done, see last fixup

TDu

comment created time in 2 days

PullRequestReviewEvent

Pull request review commentOCA/sale-reporting

[13.0][ADD] sale_order_line_position

+# Copyright 2021 Camptocamp SA+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)++from odoo import api, fields, models+++class SaleOrderLine(models.Model):+    _inherit = "sale.order.line"++    position = fields.Integer(readonly=True, index=True, default=False)+    position_formatted = fields.Char(compute="_compute_position_formatted")++    @api.depends("position")+    def _compute_position_formatted(self):+        for record in self:+            record.position_formatted = record._format_position(record.position)++    @api.onchange("sequence")+    def _onchange_sequence(self):+        if self.order_id.locked_positions:+            return+        lines = self.order_id.order_line.filtered(+            lambda x: not x.display_type and x.sequence < self.sequence+        )+        self.position = len(lines) + 1++    @api.model_create_multi+    def create(self, vals_list):+        sale_ids = [+            line["order_id"]+            for line in vals_list+            if not line.get("display_type") and line.get("order_id")+        ]

Thanks for your fix

TDu

comment created time in 2 days

PullRequestReviewEvent

push eventcamptocamp/sale-reporting

Thierry Ducrest

commit sha d0fdf27aa9cd99ad6e86e070f088a6e1daae3fcc

fixup! fixup! fixup! fixup! fixup! 13.0][ADD] sale_order_line_position

view details

push time in 2 days

push eventTDu/edi

Thierry Ducrest

commit sha 6cb15c5700a898ea3649b37e716e04f519f98b07

[13.0][ADD] sale_order_customer_order_free_ref The goal of this module is to improve on the `client_order_ref` on `sale.order`. By default Odoo only has one field to handle the customer reference of a sale order. But when using EDI some specifications allow to have two fields for this, the customer order Id and a customer (free) reference. To help with this, this module adds two specific fields for them and transform the `client_order_ref` standard field into a computed one. The two new fields are also passed on to created invoices.

view details

Thierry Ducrest

commit sha f8f4c56a30fa8b8af0674944db53a8defd53ff25

[13.0][IMP] sale_order_import add hook search existing When importing an order the module checks if a similar order already exists in the system. The search domain used for this is not customizable. This change extract the domain computation for the search in its own function.

view details

Thierry Ducrest

commit sha 16989384c5b9722f3dfad69de4d72229b0433b25

[13.0][ADD] sale_order_import_ubl_customer_free_ref This is a glue module between `sale_order_import_ubl` and `sale_order_customer_free_ref`. It extracts the `CurstomerReference`, from the XML received.

view details

push time in 2 days

create barnchcamptocamp/edi

branch : import-ubl-customer-free-ref

created branch time in 2 days

create barnchcamptocamp/wms

branch : merge-branch-2477-bscos-2809-7ab80af3

created branch time in 4 days

create barnchcamptocamp/wms

branch : merge-branch-2477-bscos-2809-2043410e

created branch time in 4 days

create barnchcamptocamp/edi

branch : merge-branch-2477-bscos-2809-100997b8

created branch time in 7 days

PR opened OCA/edi

[13.0][FIX] invoice export resend ebill

When the ebill was resend the job was executed but nothing was sent.

+11 -3

0 comment

2 changed files

pr created time in 7 days

create barnchcamptocamp/edi

branch : fix-invoice-export-resend

created branch time in 7 days

PullRequestReviewEvent