Trade Finance
This commit is contained in:
@@ -13,18 +13,42 @@ class ConstraintType(ModelSQL, ModelView):
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('Type', required=True, size=50)
|
||||
view_name = fields.Selection('get_views_selection', 'View')
|
||||
value_field = fields.Many2One('ir.model.field', 'Value Field',
|
||||
ondelete='RESTRICT')
|
||||
label_field = fields.Many2One('ir.model.field', 'Label Field',
|
||||
ondelete='RESTRICT')
|
||||
view_name = fields.Selection([], 'View')
|
||||
value_field = fields.Selection(
|
||||
'get_column_selection', 'Value Field',
|
||||
selection_change_with=['view_name'])
|
||||
label_field = fields.Selection(
|
||||
'get_column_selection', 'Label Field',
|
||||
selection_change_with=['view_name'])
|
||||
|
||||
@classmethod
|
||||
def get_views_selection(cls):
|
||||
@fields.depends('view_name')
|
||||
def get_column_selection(self):
|
||||
if not self.view_name:
|
||||
return [('', '')]
|
||||
cursor = Transaction().connection.cursor()
|
||||
cursor.execute(
|
||||
"SELECT table_name FROM information_schema.views "
|
||||
"WHERE table_schema = 'public' AND table_name LIKE 'vw_tf_const_%' "
|
||||
"ORDER BY table_name"
|
||||
"SELECT column_name FROM information_schema.columns "
|
||||
"WHERE table_schema = 'public' AND table_name = %s "
|
||||
"ORDER BY ordinal_position",
|
||||
(self.view_name,)
|
||||
)
|
||||
return [('', '')] + [(r[0], r[0]) for r in cursor.fetchall()]
|
||||
|
||||
@fields.depends('view_name')
|
||||
def on_change_view_name(self):
|
||||
self.value_field = None
|
||||
self.label_field = None
|
||||
|
||||
@classmethod
|
||||
def fields_get(cls, fields_names=None, level=0):
|
||||
res = super().fields_get(fields_names, level)
|
||||
if 'view_name' in res:
|
||||
cursor = Transaction().connection.cursor()
|
||||
cursor.execute(
|
||||
"SELECT table_name FROM information_schema.views "
|
||||
"WHERE table_schema = 'public' AND table_name LIKE 'vw_tf_const_%' "
|
||||
"ORDER BY table_name"
|
||||
)
|
||||
res['view_name']['selection'] = (
|
||||
[('', '')] + [(r[0], r[0]) for r in cursor.fetchall()])
|
||||
return res
|
||||
|
||||
@@ -115,6 +115,15 @@ class Facility(ModelSQL, ModelView):
|
||||
'facility', 'Facility Constraints',
|
||||
domain=[('limit', '=', None)])
|
||||
|
||||
@classmethod
|
||||
def default_status(cls):
|
||||
pool = Pool()
|
||||
FacilityStatus = pool.get('trade_finance.facility_status')
|
||||
statuses = FacilityStatus.search([('code', '=', 'DRAFT')], limit=1)
|
||||
if statuses:
|
||||
return statuses[0].id
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def default_commitment_status():
|
||||
return 'uncommitted'
|
||||
@@ -140,6 +149,10 @@ class FacilityCurrency(ModelSQL, ModelView):
|
||||
'FX Haircut Formula', ondelete='RESTRICT')
|
||||
fx_feeder = fields.Many2One('trade_finance.fx_feeder', 'FX Rate Feeder',
|
||||
ondelete='RESTRICT')
|
||||
valuation_method = fields.Many2One('trade_finance.valuation_method',
|
||||
'Valuation Method', ondelete='RESTRICT')
|
||||
date_from = fields.Date('Valid From')
|
||||
date_to = fields.Date('Valid To')
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -476,3 +489,9 @@ class FacilityConstraint(ModelSQL, ModelView):
|
||||
'Constraint Type', required=True, ondelete='RESTRICT')
|
||||
is_exclusion = fields.Boolean('Exclusion',
|
||||
help='Checked = Exclusion constraint, unchecked = Inclusion constraint')
|
||||
date_from = fields.Date('Valid From')
|
||||
date_to = fields.Date('Valid To')
|
||||
|
||||
@staticmethod
|
||||
def default_is_exclusion():
|
||||
return False
|
||||
|
||||
@@ -15,6 +15,16 @@
|
||||
<field name="group" ref="group_trade_finance_user"/>
|
||||
</record>
|
||||
|
||||
<!-- ================================================================ -->
|
||||
<!-- FACILITY STATUS — Reference Data -->
|
||||
<!-- ================================================================ -->
|
||||
|
||||
<record model="trade_finance.facility_status" id="facility_status_draft">
|
||||
<field name="code">DRAFT</field>
|
||||
<field name="name">Draft</field>
|
||||
<field name="active" eval="True"/>
|
||||
</record>
|
||||
|
||||
<!-- ================================================================ -->
|
||||
<!-- FACILITY STATUS -->
|
||||
<!-- ================================================================ -->
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
<tree>
|
||||
<field name="constraint_type"/>
|
||||
<field name="is_exclusion"/>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
</tree>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
<tree>
|
||||
<field name="currency"/>
|
||||
<field name="valuation_method"/>
|
||||
<field name="fx_haircut_formula"/>
|
||||
<field name="fx_feeder"/>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
</tree>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<label name="name"/>
|
||||
<field name="name" colspan="3"/>
|
||||
<label name="status"/>
|
||||
<field name="status"/>
|
||||
<field name="status" widget="selection"/>
|
||||
<label name="tfe"/>
|
||||
<field name="tfe" colspan="3"/>
|
||||
<label name="commitment_status"/>
|
||||
@@ -30,20 +30,19 @@
|
||||
<field name="description" colspan="5"/>
|
||||
</group>
|
||||
<notebook colspan="6">
|
||||
<page string="Accepted Currencies" id="currencies">
|
||||
<field name="currencies" colspan="6"/>
|
||||
</page>
|
||||
<page string="Limits" id="limits">
|
||||
<field name="limits" colspan="6"
|
||||
domain="[('parent', '=', None)]"
|
||||
mode="tree"/>
|
||||
domain="[('parent', '=', None)]"/>
|
||||
</page>
|
||||
<page string="Caps" id="caps">
|
||||
<field name="caps" colspan="6"/>
|
||||
<page string="Currencies" id="currencies">
|
||||
<field name="currencies" colspan="6"/>
|
||||
</page>
|
||||
<page string="Constraints" id="constraints">
|
||||
<field name="constraints" colspan="6"/>
|
||||
</page>
|
||||
<page string="Caps" id="caps">
|
||||
<field name="caps" colspan="6"/>
|
||||
</page>
|
||||
<page string="Covenants" id="covenants">
|
||||
<field name="covenants" colspan="6"/>
|
||||
</page>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<tree>
|
||||
<tree expand="1">
|
||||
<field name="name"/>
|
||||
<field name="financing_type"/>
|
||||
<field name="amount"/>
|
||||
|
||||
Reference in New Issue
Block a user