old_contents: # -*- 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
  
new_contents: # -*- 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
  
subject: Fix move lines domain for direct debits