# -*- coding: utf-8 -*-
##############################################################################
#
#    Copyright (C) 2013 Therp BV (<http://therp.nl>).
#
#    All other contributions are (C) by their respective contributors
#
#    All Rights Reserved
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU Affero General Public License as
#    published by the Free Software Foundation, either version 3 of the
#    License, or (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU Affero General Public License for more details.
#
#    You should have received a copy of the GNU Affero General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################

from openerp import models, api


class PaymentOrderCreate(models.TransientModel):
    _inherit = 'payment.order.create'

    @api.multi
    def extend_payment_order_domain(self, payment_order, domain):
        super(PaymentOrderCreate, self).extend_payment_order_domain(
            payment_order, domain)
        if payment_order.payment_order_type == 'debit':
            # With the new system with bank.payment.line, we want
            # to be able to have payment lines linked to customer
            # invoices and payment lines linked to customer refunds
            # in order to debit the customer of the total of his
            # invoices minus his refunds
            domain += [('account_id.type', '=', 'receivable')]
        return True

# -*- coding: utf-8 -*-
# © 2013 Therp BV (<http://therp.nl>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from openerp import models, api


class PaymentOrderCreate(models.TransientModel):
    _inherit = 'payment.order.create'

    @api.multi
    def extend_payment_order_domain(self, payment_order, domain):
        super(PaymentOrderCreate, self).extend_payment_order_domain(
            payment_order, domain)
        if payment_order.payment_order_type == 'debit':
            # For receivables, propose all unreconciled debit lines,
            # including partially reconciled ones.
            # If they are partially reconciled with a customer refund,
            # the residual will be added to the payment order.
            #
            # For payables, normally suppliers will be the initiating party
            # for possible supplier refunds (via a transfer for example),
            # or they keep the amount for decreasing future supplier invoices,
            # so there's not too much sense for adding them to a direct debit
            # order
            domain += [
                ('debit', '>', 0),
                ('account_id.type', '=', 'receivable'),
            ]
        return True

Fix move lines domain for direct debits
[FIX] account_direct_debit: Fix move lines domain for direct debits
