profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/MiquelRForgeFlow/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.
Miquel Raïch MiquelRForgeFlow @ForgeFlow

ForgeFlow/stock-rma 32

Stock RMA

ForgeFlow/reporting-engine 2

Odoo Alternative Reporting Engine

ForgeFlow/account-invoicing 1

Odoo Invoicing Extension Addons

ForgeFlow/account-analytic 0

Odoo Account Analytic Related Addons

ForgeFlow/account-reconcile 0

Odoo Bank Statements Tasks (reconciliation, completion,...)

ForgeFlow/connector-telephony 0

Odoo modules for telephony integration

ForgeFlow/data-protection 0

Data Protection

ForgeFlow/hr-holidays 0

Human Resources Holidays OCA modules for Odoo

pull request commentOCA/account-invoicing

[14.0] [MIG] purchase_stock_picking_return_invoicing

In v11:

Selection_201

Who knows, it was put by @pedrobaeza in https://github.com/OCA/account-invoicing/commit/54813327b0ce6fa439bffa35ed82333d4d1ca997#diff-c01a80d339d66395b2b2362492df10cc443e15832ca25a07cd1dd177efbfb6deR110

mariadforgeflow

comment created time in a day

PullRequestReviewEvent

push eventForgeFlow/OpenUpgrade

Chankya Soni

commit sha 19dfa456189a12edb57f67443f06f4fe9035a97d

[14.0][Add] digest: Migration Script.

view details

mreficent

commit sha 1fd11140082705c74350b7cc50f2fe6f6c5b9f3a

[MIG] phone_validation

view details

mreficent

commit sha ab883228531b43ac5725987972e8cef96c15b57b

[MIG] barcodes

view details

mreficent

commit sha 2add253650639dcc65a053fc8b9c9e40dc5f6cf0

[MIG] mail_bot

view details

mreficent

commit sha 02821ee5e60f8b57bbdf28f8e9e606cdf36a446e

[MIG] link_tracker

view details

mreficent

commit sha a58018f2c1ea3a373cf3e4256cfae1799b216c7b

[MIG] pad

view details

mreficent

commit sha bac33a341f7fdc9931b2e8faacca7bdff146ec06

[MIG] iap

view details

mreficent

commit sha 313bb1287fbcc5844b26f64d47e91a4c3f49704a

[ADD] migration analysis files

view details

Pedro M. Baeza

commit sha 77cb351d8a64644066b930762a23b787a1d940a4

Merge pull request #2820 from ForgeFlow/14.0-add-hidden-analysis-files [14.0][ADD] new migration analysis files

view details

github-actions

commit sha 6cb37b2fe267717f4e5240434eb49d0c78f1f7d7

[UPD] HTML documentation

view details

mreficent

commit sha f101955110097db1e9fe87a162e96411c0aff914

[MIG] project

view details

Pedro M. Baeza

commit sha 00251752af6893f4a790fbc7b07380e4d700289a

Merge pull request #2809 from ForgeFlow/14.0-mig-phone_validation [14.0][MIG] phone_validation

view details

Pedro M. Baeza

commit sha 24a15e0e8f027ef9d823937e2309a2c4cea32909

Merge pull request #2810 from ForgeFlow/14.0-mig-barcodes [14.0][MIG] barcodes

view details

Pedro M. Baeza

commit sha 57049c2c6f9f25fd4881d0931bbacbe5e2d8b47b

Merge pull request #2811 from ForgeFlow/14.0-mig-mail_bot [14.0][MIG] mail_bot

view details

github-actions

commit sha 5ede631a5baa73193f80eea4c3063f6060663b51

[UPD] HTML documentation

view details

Pedro M. Baeza

commit sha 8b7f6bc2d930fd9614747ef4dd2a8f4871230653

Merge pull request #2804 from ForgeFlow/14.0-MIG-digest [14.0][Add] digest: Migration Script.

view details

Pedro M. Baeza

commit sha 980bc64697c3bbc3ed2e1ef4a048210f12e0693c

Merge pull request #2812 from ForgeFlow/14.0-mig-link_tracker [14.0][MIG] link_tracker

view details

github-actions

commit sha 71c348cdc72f4fc34872974b628328439f0944b5

[UPD] HTML documentation

view details

Pedro M. Baeza

commit sha 73c71484ac447fd58fb0171b4aed59796582b19f

Merge pull request #2816 from ForgeFlow/14.0-mig-pad [14.0][MIG] pad

view details

github-actions

commit sha 374453b95855be88a9d25bc2ddc133b5d9b3e911

[UPD] HTML documentation

view details

push time in a day

pull request commentodoo/odoo

[FIX] account: remove upgrade_boolean from community module

@FlorianGilbert from https://github.com/odoo/odoo/pull/76785

sswapnesh

comment created time in a day

pull request commentodoo/odoo

[13.0]test case for the inherits losing value if invalidate_cache cal…

@rco-odoo bug

bizzappdev

comment created time in a day

push eventForgeFlow/OpenUpgrade

nie

commit sha 2b74372e852d5571e62de58cc31262fce92270c7

[FIX] website_event: disable edition of widget Backport of https://github.com/odoo/odoo/pull/61267 opw:2478217 closes odoo/odoo#69229 X-original-commit: 5a2c50dffe1424e190fb596775d4c1cd2dd2a49f Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com> Signed-off-by: backspac <backspac@users.noreply.github.com>

view details

William Henrotin

commit sha b0c5bd414ff8f23e3437cbbbe2a1307343a9764f

[FIX] stock_account: get unit_cost in sudo mode Commit ad5ac19218b4c529c651da951acdb93e1ac1227d adds a sudo() in the test condition but not inside of the condition. Close #69144 closes odoo/odoo#69231 Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>

view details

Munaf Khan

commit sha 76c9ba9d87ec7069d3c11e605bb85b01091e2b32

[FIX] fetchmail: prevent onchange for erasing server name currently, in fetchmail while create an incoming mail server, Set a server name while being in POP or IMAP server type and Switch to "Local" server type the server name is erased. with this commit, the value of the server name should not be erased with onchange. closes odoo/odoo#69239 Taskid: 2258523 X-original-commit: cf102783b43a44a38565768129ef414758a71fc6 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>

view details

Nasreddin (bon)

commit sha 5dde19c92ecee8ac0238bb5c8e71263840534c28

[FIX] portal: display discounts on quotation pdf for portal user Issue - Install "Sale" app - Acivate "Discounts" feature in settings - Create a quotation to a portal user (ex: Joel Willis) - Add a product with a discount then send - Logout then login as 'Joel Willis' - Go to 'My account' then 'Quotations' - Select the quotation just created and print it Discount not display in pdf file. Cause The current env.user when rendering pdf is the portal user. To display discount, current env.user must have group 'product.group_discount_per_so_line' who is not the case even when using sudo() on report template. Solution Since Odoo 13.0, the sudo() function does not return the superuser by default but instead the current user with a bypass on access rights. Therefore, must add `.with_user(SUPERUSER_ID)` on report. opw-2501337 closes odoo/odoo#69143 Signed-off-by: bon-odoo <nboulif@users.noreply.github.com>

view details

Ivan Yelizariev

commit sha ea9e7b24844e70e67526425dfd5f617c4e1ca209

[FIX] sale_timesheet: speed up computing is_service on installation on large database module installation may be aborted because of timeout error. --- opw-2475335 closes odoo/odoo#69258 X-original-commit: 982ac9f5df2bd0e41b39f9be42a42dab4fe8153c Signed-off-by: Adrian Torres (adt) <adt@odoo.com> Signed-off-by: Ivan Yelizariev // IEL <yelizariev@users.noreply.github.com>

view details

Goffin Simon

commit sha 69b27ac3f778b99a7d583ee6a9e8607a36d0a3b2

[FIX] mail: Wrong signature of function export_data Steps to reproduce the bug: - Go to Settings > Technical > Messages - Select some records and export it Bug: A traceback was raised because PS: When exporting data, the function export_date is called from web/controllers/main.py with the attribute raw_data opw:2504763 closes odoo/odoo#69264 X-original-commit: af67d6b9bbebf9656e6db01a8375577290531a6f Signed-off-by: Simon Goffin (sig) <sig@openerp.com>

view details

Anh Thao Pham (pta)

commit sha a93a0a33c7447505403097c7ba0707d55d252e64

[FIX] web: do not use default en_US lang when loading translations from session When loading translations from Session, if no lang is defined in context or html, it is loading translations of en_US lang by default. No default should be used to fallback on the language of the current user. opw-2501708 closes odoo/odoo#69310 Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>

view details

Bruno Zanotti (ADHOC)

commit sha 6a0cf2e07f9af00eb741bdd07aa46d7e86ee2bfc

[IMP] l10n_ar: show payment terms In the Argentinean invoices report view, we were removing the Payment Terms and we were only showing the Payment Term name in the header. Now we add it back following the Odoo approach but we also keep the name of the terms on the header. We made this modification in the invoice report with and without payment. closes odoo/odoo#68776 Signed-off-by: Josse Colpaert <jco@openerp.com>

view details

Bruno Zanotti (ADHOC)

commit sha 59afbc2e34c80516fa412de92f0d3bba2378661e

[FIX] l10n_latam_invoice_document: monetary fields The fields l10n_latam_price_unit and l10n_latam_price_net should be float instead of monetary in order to show rightly the decimal accuracy on invoice's reports closes odoo/odoo#67851 Signed-off-by: Josse Colpaert <jco@openerp.com>

view details

Bruno Zanotti (ADHOC)

commit sha 51d49054c7e402871716f1ec58f3e4f9aaca7ff2

[IMP] l10n_ar: data of perceptions by jurisdiction In this commit, we add all the data related to the Argentinean perceptions for each jurisdiction. For each jurisdiction (xx) we have a new: * Tax: Percepción IIBB xx Sufrida * Tax: Percepción IIBB Catamarca Aplicada * Tax group: Perc IIBB xx * Account: Saldo a favor IIBB xx * Account: Retención IIBB xx sufrida * Account: Percepción IIBB xx sufrida * Account: Retención IIBB xx aplicada * Account: Percepción IIBB xx aplicada * Account: IIBB xx Also, we activate some perceptions to work with demo data closes odoo/odoo#67149 Signed-off-by: Josse Colpaert <jco@openerp.com>

view details

Odoo Translation Bot

commit sha 4b853f774b3da5328d98bbfd5ca4a27d8d0bc875

[I18N] Update translation terms from Transifex

view details

Swapnesh

commit sha 72b5a17fc0e6f439d462647a7b55c9a26235a8df

[FIX]account: process one record to set debit/credit Before this commit, There would be Expected singleton error on changing Credit/Debit for multile account in single call. Now, We are proocess one record to set `_set_opening_debit_credit` closes odoo/odoo#69208 Signed-off-by: William André (wan) <wan@odoo.com>

view details

Andrea Grazioso (agr-odoo)

commit sha 08fb44a1f8af9684c28c0dd5e82121193d9bef9a

[FIX] base: avoid infinite recursion on attachments search Have a large number of attachments with res_field set Then go to Settings -> Technical -> Attachments -> add a filter "Res Field" is set. You will have traceback. This occur because the `_search` function will omit from results records with res_field set, forcing recursive calls until either we scan the whole table (80 records at a time) or we hit max recursion limit opw-2463634 closes odoo/odoo#68471 Signed-off-by: Raphael Collet (rco) <rco@openerp.com>

view details

Andrea Grazioso (agr-odoo)

commit sha 64ca45becded2d14189f7771f3f080b16b1cbc20

[FIX] point_of_sale: allow unreconciliation of POS invoices - Open POS session - Make an order to a customer, generating the invoice. - Close POS session and go to the invoice - Unreconcile the payment. User is now stuck because the invoice is still marked as paid and is no longer possible to record a payment or add an outstanding amount as payment opw-2349727 closes odoo/odoo#69316 Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>

view details

Nicolas Lempereur

commit sha a7bce66f3e6124ec572f86bc22c7d11c73df378d

[FIX] account: change partner keep previous lines When we change partner in reconciliation, current lines are excluded from the search and kept. So if we eg. have partner "Azure Interior": [no partner shown] line 1 [no partner shown] line 2 then search "Deco Addict" that find a line 4, we would have this result: Azure Interior line 1 Azure Interior line 2 line 4 That might make things messy to find the right line. opw-2504501 closes odoo/odoo#69424 Signed-off-by: William André (wan) <wan@odoo.com>

view details

wan

commit sha a4ff90cd77393f540cbbfe7466358a690c357971

[FIX] base: ensure_one in ir.sequence._get_prefix_suffix The try/except is there to check that the string can be interpolated, so it is catching a ValueError. But if there is a singleton error (when the length of `self` is bigger than 1), it will raise a ValueError too. The UserError raised in the except is then weird/wrong. closes odoo/odoo#69535 X-original-commit: 36ebbb6f312d488b33bae098546ff71baf578a08 Signed-off-by: Raphael Collet (rco) <rco@openerp.com> Signed-off-by: William André (wan) <wan@odoo.com>

view details

Pierre Masereel

commit sha 05551281085fd12f83904305aa7bf259f663a834

[FIX] pos_cash_rounding: fix when multiple payment method When a pos user combines payment methods with and without rounding, we must be sure that the rounding is made by payment method and not only on the total amount of the order. As the total may change depending on the combination of payment method used, we had to adapt the methods that checks that an order is paid, and also propagate the new rounding made on the invoice. We also don't allow anymore a user to validate an order with a payment badly rounded. closes odoo/odoo#69395 Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>

view details

Nicolas (vin)

commit sha 0ce5f8617fdcf3601f937c35660563cb3c79fbbe

[FIX] snailmail_account: avoid a traceback when validating addresses When trying to send&print a move without partner_id, which can be done from the tree view of the account moves, a traceback will be raised when the address is being validated. This change will make sure to avoid that and also shows that the adress is not complete in the wizard if needed. closes odoo/odoo#66646 Signed-off-by: William André (wan) <wan@odoo.com>

view details

Anh Thao Pham (pta)

commit sha 1aeb8c955fdddf044bf5f54122c4e73a26e21939

[FIX] sale: avoid re-invoicing invoiced SO lines - Create a product: * Invoicing Policy: Delivered quantities * Re-invoice Expenses: At cost - Create a SO with the created product in Order Lines - Make sure the subtotal of the SO line is equal to 0, by setting an Unit Price to 0 or by applying a 100% discount - Confirm SO and create an invoice (Regular invoice) - Post the invoice A new line with the same product and the same delivered quantity is added to the SO. It is not possible to invoice a SO line with a product having an expense policy and a subtotal equal to 0, without having it reinvoiced to the SO. This fix will prevent account move lines linked to a SO line from being reinvoiced. opw-2479560 closes odoo/odoo#69491 Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>

view details

Achraf (abz)

commit sha 6bcdc5343971519f6bf800d13f90d3dda440323a

[FIX] sale_coupon: Allow coupons to correctly allow several free products What are the steps to reproduce your issue ? 1. Add a coupon program with the following condition sale_ok == True & name == 'Large Desk' 2. Add 'Buy 1 get 2 free' 'Large Cabinet' 3. Create a quotation with 1 Large Desk and 2 Large Cabinet 4. Add the coupon code What is currently happening ? Promotion will only remove one * Large Cabinet price instead of 2 What are you expecting to happen ? Promotion remove two * Large Cabinet price Why is this happening ? The products quantity was mixed with the reward products quantity opw-2496940 closes odoo/odoo#69365 Signed-off-by: Achraf <abz-odoo@users.noreply.github.com>

view details

push time in a day

Pull request review commentOCA/OpenUpgrade

[IMP] account: Do the transformation of messages on a single query, not one for each record

 def migration_voucher_moves(env):     )  -def _move_model_in_data(env, ids_map, old_model, new_model):+def _move_model_in_data(env, old_model, new_model, field):     renames = [         ('mail_message', 'model', 'res_id'),-        ('mail_followers', 'res_model', 'res_id'),         ('ir_attachment', 'res_model', 'res_id'),         ('mail_activity', 'res_model', 'res_id'),         ('ir_model_data', 'model', 'res_id'),     ]-    for old_id, new_id in ids_map:-        for rename in renames:-            query = """-                UPDATE {table}-                SET {field1} = %(new_value1)s, {field2} = %(new_value2)s-                WHERE {field1} = %(old_value1)s AND {field2} = %(old_value2)s"""-            if rename[0] == 'mail_followers':-                query += """ AND partner_id NOT IN (-                    SELECT partner_id FROM mail_followers-                    WHERE res_model = 'account.move' AND res_id = %(new_value2)s-                )"""-            env.cr.execute(sql.SQL(query).format(-                table=sql.Identifier(rename[0]),-                field1=sql.Identifier(rename[1]),-                field2=sql.Identifier(rename[2])-            ), {-                "old_value1": old_model,-                "new_value1": new_model,-                "old_value2": old_id,-                "new_value2": new_id,-            })+    for rename in renames:+        query = """+            UPDATE {table} t+            SET {field1} = %(new_value1)s, {field2} = am.id+            FROM account_move am+            WHERE t.{field1} = %(old_value1)s AND am.{field} = t.{field2}"""+        openupgrade.logged_query(env.cr, sql.SQL(query).format(+            table=sql.Identifier(rename[0]),+            field1=sql.Identifier(rename[1]),+            field2=sql.Identifier(rename[2]),+            field=sql.Identifier(field)+        ), {+            "old_value1": old_model,+            "new_value1": new_model,+        })+    openupgrade.logged_query(env.cr, sql.SQL("""+        UPDATE mail_followers mf+            SET res_model = %(new_value1)s, res_id = am.id+            FROM account_move am+                JOIN mail_followers mf1+                    ON am.{field} = mf1.res_id AND mf1.res_model = %(old_value1)s+                LEFT JOIN mail_followers mf2+                    ON am.id = mf2.res_id+                        AND mf2.res_model = 'account.move'+                        AND mf2.partner_id = mf1.partner_id
                    ON (am.{field} = mf1.res_id AND mf1.res_model = %(old_value1)s)
                LEFT JOIN mail_followers mf2
                    ON (am.id = mf2.res_id
                        AND mf2.res_model = 'account.move'
                        AND mf2.partner_id = mf1.partner_id)

parenthesis not needed, but helps readability :)

etobella

comment created time in a day

PullRequestReviewEvent
PullRequestReviewEvent

delete branch ForgeFlow/maintenance

delete branch : 14.0-mig-maintenance_equipment_contract

delete time in a day

PullRequestReviewEvent

delete branch ForgeFlow/OpenUpgrade

delete branch : 13.0-mig-account_group_menu

delete time in a day

PullRequestReviewEvent

pull request commentOCA/OpenUpgrade

[13.0] apriori: merge account_group_menu in account_menu

Thanks @legalsylvain :)

MiquelRForgeFlow

comment created time in a day

push eventForgeFlow/OpenUpgrade

mreficent

commit sha db715f834ab6ea95959747b732a17bfdfb1dd8d9

apriori: merge several modules in account_menu

view details

push time in a day

PullRequestReviewEvent

PR opened OCA/OpenUpgrade

[13.0] apriori: merge account_group_menu in account_menu needs review

Was done in https://github.com/OCA/account-financial-tools/pull/889.

+1 -0

0 comment

1 changed file

pr created time in a day

create barnchForgeFlow/OpenUpgrade

branch : 13.0-mig-account_group_menu

created branch time in a day

PullRequestReviewEvent
PullRequestReviewEvent

pull request commentOCA/maintenance

[14.0] [MIG] maintenance_equipment _scrap

WARNING openerp_test odoo.modules.loading: The model wizard.perform.equipment.scrap has no access rules, consider adding one. E.g.
access_wizard_perform_equipment_scrap,access_wizard_perform_equipment_scrap,model_wizard_perform_equipment_scrap,base.group_user,1,0,0,0
mariadforgeflow

comment created time in a day

Pull request review commentOCA/l10n-spain

[MIG] l10n_es_facturae: Migration to 14.0

+# Copyright 2017 Creu Blanca+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).++import base64+from collections import defaultdict++from odoo import _, api, fields, models, tools+from odoo.exceptions import ValidationError+++class AccountMove(models.Model):+    _inherit = "account.move"++    facturae = fields.Boolean(compute="_compute_facturae")+    correction_method = fields.Selection(+        selection=[+            ("01", "Rectificación íntegra"),+            ("02", "Rectificación por diferencias"),+            (+                "03",+                "Rectificación por descuento por volumen de operaciones "+                "durante un periodo",+            ),+            ("04", "Autorizadas por la Agencia Tributaria"),+        ]+    )++    facturae_refund_reason = fields.Selection(+        selection=[+            ("01", "Número de la factura"),+            ("02", "Serie de la factura"),+            ("03", "Fecha expedición"),+            ("04", "Nombre y apellidos/Razón social - Emisor"),+            ("05", "Nombre y apellidos/Razón social - Receptor"),+            ("06", "Identificación fiscal Emisor/Obligado"),+            ("07", "Identificación fiscal Receptor"),+            ("08", "Domicilio Emisor/Obligado"),+            ("09", "Domicilio Receptor"),+            ("10", "Detalle Operación"),+            ("11", "Porcentaje impositivo a aplicar"),+            ("12", "Cuota tributaria a aplicar"),+            ("13", "Fecha/Periodo a aplicar"),+            ("14", "Clase de factura"),+            ("15", "Literales legales"),+            ("16", "Base imponible"),+            ("80", "Cálculo de cuotas repercutidas"),+            ("81", "Cálculo de cuotas retenidas"),+            ("82", "Base imponible modificada por devolución de envases" "/embalajes"),+            ("83", "Base imponible modificada por descuentos y " "bonificaciones"),+            (+                "84",+                "Base imponible modificada por resolución firme, judicial "+                "o administrativa",+            ),+            (+                "85",+                "Base imponible modificada cuotas repercutidas no "+                "satisfechas. Auto de declaración de concurso",+            ),+        ]+    )+    facturae_start_date = fields.Date(+        readonly=True,+        states={"draft": [("readonly", False)]},+    )+    facturae_end_date = fields.Date(+        readonly=True,+        states={"draft": [("readonly", False)]},+    )+    l10n_es_facturae_status = fields.Selection(+        [], tracking=True, readonly=True, string="Facturae status", copy=False+    )+    l10n_es_facturae_cancellation_status = fields.Selection(+        [],+        tracking=True,+        readonly=True,+        string="Facturae cancellation status",+        copy=False,+    )++    def _get_edi_missing_records(self):+        result = super()._get_edi_missing_records()+        if result:+            return result+        if self.move_type not in ["out_invoice", "out_refund"]:+            return False+        partner = self.partner_id+        if not partner.facturae or not partner.l10n_es_facturae_sending_code:+            return False+        exchange_type = self._get_exchange_type_map()[+            partner.l10n_es_facturae_sending_code+        ]+        if not exchange_type:+            return False+        return not self._has_exchange_record(+            exchange_type, self.env.ref("l10n_es_facturae.backend_facturae")+        )++    @api.model+    def _edi_missing_records_fields(self):+        result = super()._edi_missing_records_fields()+        return result + [+            "l10n_es_facturae_status",+            "partner_id.l10n_es_facturae_sending_code",+        ]++    @api.constrains("facturae_start_date", "facturae_end_date")+    def _check_facturae_date(self):+        for record in self:+            if bool(record.facturae_start_date) != bool(record.facturae_end_date):+                raise ValidationError(+                    _(+                        "FacturaE start and end dates are both required if one of "+                        "them is filled"+                    )+                )+            if (+                record.facturae_start_date+                and record.facturae_start_date > record.facturae_end_date+            ):+                raise ValidationError(_("Start date cannot be later than end date"))++    @api.depends("partner_id.facturae", "move_type")+    def _compute_facturae(self):+        for record in self:+            record.facturae = record.partner_id.facturae and record.move_type in [+                "out_invoice",+                "out_refund",+            ]++    def get_exchange_rate(self, euro_rate, currency_rate):+        if not euro_rate and not currency_rate:+            return fields.Datetime.now().strftime("%Y-%m-%d")+        if not currency_rate:+            return fields.Datetime.to_datetime(euro_rate.name).strftime("%Y-%m-%d")+        if not euro_rate:+            return fields.Datetime.to_datetime(currency_rate.name).strftime("%Y-%m-%d")+        currency_date = fields.Datetime.to_datetime(currency_rate.name)+        euro_date = fields.Datetime.to_datetime(currency_rate.name)+        if currency_date < euro_date:+            return currency_date.strftime("%Y-%m-%d")+        return euro_date.strftime("%Y-%m-%d")++    def get_refund_reason_string(self):+        return dict(+            self.fields_get(allfields=["facturae_refund_reason"])[+                "facturae_refund_reason"+            ]["selection"]+        )[self.facturae_refund_reason]++    def get_correction_method_string(self):+        return dict(+            self.fields_get(allfields=["correction_method"])["correction_method"][+                "selection"+            ]+        )[self.correction_method]++    def _get_valid_move_statuses(self):+        return ["posted"]++    def validate_facturae_fields(self):+        lines = self.line_ids.filtered(+            lambda r: not r.display_type and not r.exclude_from_invoice_tab+        )+        for line in lines:+            if not line.tax_ids:+                raise ValidationError(+                    _("Taxes not provided in move line " "%s") % line.name+                )+        if not self.partner_id.vat:+            raise ValidationError(_("Partner vat not provided"))+        if not self.company_id.partner_id.vat:+            raise ValidationError(_("Company vat not provided"))+        if len(self.partner_id.vat) < 3:+            raise ValidationError(_("Partner vat is too small"))+        if not self.partner_id.state_id:+            raise ValidationError(_("Partner state not provided"))+        if len(self.company_id.vat) < 3:+            raise ValidationError(_("Company vat is too small"))+        if not self.payment_mode_id:+            raise ValidationError(_("Payment mode is required"))+        if self.payment_mode_id.facturae_code:+            partner_bank = self.partner_banks_to_show()[:1]+            if not partner_bank:+                raise ValidationError(_("Partner bank is missing"))+            if partner_bank.bank_id.bic and len(partner_bank.bank_id.bic) != 11:+                raise ValidationError(_("Selected account BIC must be 11"))+            if len(partner_bank.acc_number) < 5:+                raise ValidationError(_("Selected account is too small"))+        if self.state not in self._get_valid_move_statuses():+            raise ValidationError(+                _(+                    "You can only create Factura-E files for "+                    "moves that have been validated."+                )+            )+        return++    def _get_facturae_move_attachments(self):+        result = []+        if self.partner_id.attach_invoice_as_annex:+            action = self.env.ref("account.account_invoices")+            content, content_type = action._render(self.ids)+            result.append(+                {+                    "data": base64.b64encode(content),+                    "content_type": content_type,+                    "encoding": "BASE64",+                    "description": _("Invoice %s") % self.name,+                    "compression": False,+                }+            )+        return result++    def get_facturae_version(self):+        return (+            self.partner_id.facturae_version+            or self.company_id.facturae_version+            or "3_2"+        )++    def _has_exchange_record_domain(+        self, exchange_type, backend=False, extra_domain=False+    ):+        domain = super()._has_exchange_record_domain(+            exchange_type, backend=backend, extra_domain=extra_domain+        )+        if exchange_type == "l10n_es_facturae":+            domain += [+                "|",+                ("l10n_es_facturae_status", "=", False),+                (+                    "l10n_es_facturae_status",+                    "not in",+                    self._get_l10n_es_facturae_excluded_status(),+                ),+            ]+        return domain++    @api.model+    def _get_l10n_es_facturae_excluded_status(self):+        return []++    def _get_l10n_es_facturae_backend(self):+        """To be inherited by all facturae sending modules"""+        return False++    def _get_facturae_tax_info(self):+        self.ensure_one()+        output_taxes = defaultdict(lambda: {"base": 0, "amount": 0})+        withheld_taxes = defaultdict(lambda: {"base": 0, "amount": 0})+        for line in self.line_ids:+            sign = -1 if self.type[:3] == "out" else 1

🔥

etobella

comment created time in a day

PullRequestReviewEvent

pull request commentOCA/l10n-spain

[MIG] l10n_es_facturae_efact: migration to 13.0

@etobella please, add edi and storage repos in the oca_dependencies.txt file :)

etobella

comment created time in a day

push eventForgeFlow/account-invoicing

sergiocorato

commit sha 497bb31cdbb4ea49ec425c87fcad075d1bb242ca

[12.0][FIX] create invoices after the first from purchase order

view details

OCA-git-bot

commit sha fd1f9cd18010eba1b0f74e42126dc36eb5101112

Merge PR #938 into 12.0 Signed-off-by sergiocorato

view details

OCA-git-bot

commit sha 9e62a1ff8baa5f20587ca148cbd3e959d3f86f77

purchase_stock_picking_return_invoicing 12.0.1.0.3

view details

OCA-git-bot

commit sha e3312e26c48ef871a3a4a255f3dc932bbc1bc40a

[UPD] addons table in README.md

view details

mreficent

commit sha 1fd7ea70725114b07c7fa841fadad6267b33f934

[FIX] purchase_stock_picking_return_invoicing: some fixes

view details

push time in a day

pull request commentOCA/mis-builder

[13.0] multi company improvements

@LoisRForgeFlow

sbidoul

comment created time in 2 days

PullRequestReviewEvent

delete branch ForgeFlow/OpenUpgrade

delete branch : 13.0-fix-odoo-sale_mrp

delete time in 3 days

pull request commentodoo/odoo

[IMP] sale_stock: Routes readonly after confirmation

conflicts

AaronHForgeFlow

comment created time in 3 days

delete branch ForgeFlow/odoo

delete branch : 13.0-fix-sale_mrp-qty_delivered

delete time in 3 days