Trade Finance - Adjustment on sub-limit

This commit is contained in:
AzureAD\SylvainDUVERNAY
2026-03-31 14:10:43 +02:00
parent 143f59c62e
commit f27dd5620e
2 changed files with 34 additions and 19 deletions

View File

@@ -194,7 +194,9 @@ class FacilityLimit(ModelSQL, ModelView):
_rec_name = 'name' _rec_name = 'name'
facility = fields.Many2One('trade_finance.facility', 'Facility', facility = fields.Many2One('trade_finance.facility', 'Facility',
required=True, ondelete='CASCADE') required=True, ondelete='CASCADE',
states={'readonly': Bool(Eval('parent'))},
depends=['parent'])
parent = fields.Many2One('trade_finance.facility_limit', 'Parent Limit', parent = fields.Many2One('trade_finance.facility_limit', 'Parent Limit',
ondelete='RESTRICT', ondelete='RESTRICT',
domain=[('facility', '=', Eval('facility'))], domain=[('facility', '=', Eval('facility'))],
@@ -212,7 +214,9 @@ class FacilityLimit(ModelSQL, ModelView):
sequence = fields.Integer('Sequence') sequence = fields.Integer('Sequence')
is_global = fields.Function(fields.Boolean('Global Limit'), is_global = fields.Function(fields.Boolean('Global Limit'),
'get_is_global') 'get_is_global',
states={'invisible': Bool(Eval('parent'))},
depends=['parent'])
haircuts = fields.One2Many('trade_finance.facility_limit_haircut', 'limit', haircuts = fields.One2Many('trade_finance.facility_limit_haircut', 'limit',
'Haircuts') 'Haircuts')
@@ -232,6 +236,15 @@ class FacilityLimit(ModelSQL, ModelView):
def default_sequence(): def default_sequence():
return 10 return 10
@classmethod
def create(cls, vlist):
vlist = [v.copy() for v in vlist]
for values in vlist:
if values.get('parent') and not values.get('facility'):
parent = cls(values['parent'])
values['facility'] = parent.facility.id
return super().create(vlist)
def get_is_global(self, name): def get_is_global(self, name):
return self.parent is None return self.parent is None

View File

@@ -1,41 +1,43 @@
<form col="6"> <form col="4">
<group id="header" col="6" colspan="6"> <group id="header" col="4" colspan="4">
<label name="name"/> <label name="name"/>
<field name="name" colspan="2"/> <field name="name" colspan="3"/>
<label name="is_global"/>
<field name="is_global" colspan="2"/>
<label name="financing_type"/> <label name="financing_type"/>
<field name="financing_type" colspan="2"/> <field name="financing_type" colspan="3"/>
<label name="amount"/> <label name="amount"/>
<field name="amount"/> <field name="amount"/>
<label name="tenor"/> <label name="tenor"/>
<field name="tenor"/> <field name="tenor"/>
<label name="parent"/>
<field name="parent" colspan="2"/>
<label name="sequence"/> <label name="sequence"/>
<field name="sequence" colspan="2"/> <field name="sequence"/>
<label name="is_global"/>
<field name="is_global"/>
<label name="parent"/>
<field name="parent" colspan="3"/>
<label name="facility"/>
<field name="facility" colspan="3"/>
</group> </group>
<notebook colspan="6"> <notebook colspan="4">
<page string="Sub-Limits" id="children"> <page string="Sub-Limits" id="children">
<field name="children" colspan="6"/> <field name="children" colspan="4"/>
</page> </page>
<page string="Haircuts" id="haircuts"> <page string="Haircuts" id="haircuts">
<field name="haircuts" colspan="6"/> <field name="haircuts" colspan="4"/>
</page> </page>
<page string="Currencies" id="currencies"> <page string="Currencies" id="currencies">
<field name="currencies" colspan="6"/> <field name="currencies" colspan="4"/>
</page> </page>
<page string="Costs" id="costs"> <page string="Costs" id="costs">
<field name="costs" colspan="6"/> <field name="costs" colspan="4"/>
</page> </page>
<page string="Operational Statuses" id="op_statuses"> <page string="Operational Statuses" id="op_statuses">
<field name="op_statuses" colspan="6"/> <field name="op_statuses" colspan="4"/>
</page> </page>
<page string="Bank Accounts" id="bank_accounts"> <page string="Bank Accounts" id="bank_accounts">
<field name="bank_accounts" colspan="6"/> <field name="bank_accounts" colspan="4"/>
</page> </page>
<page string="Constraints" id="limit_constraints"> <page string="Constraints" id="limit_constraints">
<field name="constraints" colspan="6"/> <field name="constraints" colspan="4"/>
</page> </page>
</notebook> </notebook>
</form> </form>