1 # Copyright (C) 2010 Richard Lincoln
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # Lesser General Public License for more details.
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA, USA
17 from CIM14
.IEC61968
.Common
.Agreement
import Agreement
19 class MerchantAgreement(Agreement
):
20 """A formal controlling contractual agreement between Supplier and Merchant, in terms of which Merchant is authorised to vend tokens and receipt payments on behalf of Supplier. Merchant is accountable to Supplier for revenue collected at PointOfSale.
23 def __init__(self
, MerchantAccounts
=None, *args
, **kw_args
):
24 """Initialises a new 'MerchantAgreement' instance.
26 @param MerchantAccounts: All merchant accounts instantiated as a result of this merchant agreement.
28 self
._MerchantAccounts
= []
29 self
.MerchantAccounts
= [] if MerchantAccounts
is None else MerchantAccounts
31 super(MerchantAgreement
, self
).__init
__(*args
, **kw_args
)
37 _refs
= ["MerchantAccounts"]
38 _many_refs
= ["MerchantAccounts"]
40 def getMerchantAccounts(self
):
41 """All merchant accounts instantiated as a result of this merchant agreement.
43 return self
._MerchantAccounts
45 def setMerchantAccounts(self
, value
):
46 for x
in self
._MerchantAccounts
:
47 x
.MerchantAgreement
= None
49 y
._MerchantAgreement
= self
50 self
._MerchantAccounts
= value
52 MerchantAccounts
= property(getMerchantAccounts
, setMerchantAccounts
)
54 def addMerchantAccounts(self
, *MerchantAccounts
):
55 for obj
in MerchantAccounts
:
56 obj
.MerchantAgreement
= self
58 def removeMerchantAccounts(self
, *MerchantAccounts
):
59 for obj
in MerchantAccounts
:
60 obj
.MerchantAgreement
= None