diff --git a/TODO b/TODO
index 8b137891791fe96927ad78e64b0aad7bded08bdc..627d2f51e2b99707480f975def31405d61de62be 100644
--- a/TODO
+++ b/TODO
@@ -1 +1,4 @@
+Bank Loan
+---------
 
+* Cambiar 'Préstamos' de la pestaña de Bancos a 'Línea Crediticia' o 'Calificación Crediticia'.
diff --git a/i18n/es_AR.po b/i18n/es_AR.po
new file mode 100644
index 0000000000000000000000000000000000000000..40e5092c77b794fdf1265c66cc04789c13d10e55
--- /dev/null
+++ b/i18n/es_AR.po
@@ -0,0 +1,367 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# 	* bank_loan
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 8.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-02-27 14:40+0000\n"
+"PO-Revision-Date: 2018-02-27 11:41-0300\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"Language: es_AR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: \n"
+"X-Generator: Poedit 1.8.7.1\n"
+
+#. module: bank_loan
+#: model:ir.actions.act_window,help:bank_loan.act_open_bank_loan_view
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+"                Click to create a new Bank Loan\n"
+"            </p>\n"
+"        "
+msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+"    Click para crear un nuevo Préstamo Bancario\n"
+"</p>\n"
+"        "
+
+#. module: bank_loan
+#: field:bank.loan,total_amount:0 field:bank.loan.line,amount:0
+msgid "Amount"
+msgstr "Importe"
+
+#. module: bank_loan
+#: field:res.bank.loan.line,amount_loaned:0
+msgid "Amount Loaned"
+msgstr "Importe Prestado"
+
+#. module: bank_loan
+#: field:res.bank.loan.line,amount_remaining:0
+msgid "Amount Remaining"
+msgstr "Restante"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/bank_loan.py:85
+#: code:addons/bank_loan/models/bank_loan.py:224
+#, python-format
+msgid "Amount must be >= 0!"
+msgstr "¡El Importe debe ser mayor o igual a 0!"
+
+#. module: bank_loan
+#: field:res.bank.loan.line,amount_to_loan:0
+msgid "Amount to Loan"
+msgstr "Total a prestar"
+
+#. module: bank_loan
+#: field:bank.loan,bank_id:0 model:ir.model,name:bank_loan.model_res_bank
+#: field:res.bank.loan.line,bank_id:0
+msgid "Bank"
+msgstr "Banco"
+
+#. module: bank_loan
+#: view:bank.loan:bank_loan.view_bank_loan_form
+#: view:bank.loan:bank_loan.view_bank_loan_search
+#: view:bank.loan:bank_loan.view_bank_loan_tree
+#: model:ir.model,name:bank_loan.model_bank_loan
+#: model:ir.ui.menu,name:bank_loan.menu_bank_loan_act
+msgid "Bank Loan"
+msgstr "Préstamo Bancario"
+
+#. module: bank_loan
+#: model:ir.actions.act_window,name:bank_loan.act_open_bank_loan_view
+msgid "Bank Loans"
+msgstr "Préstamos Bancarios"
+
+#. module: bank_loan
+#: view:bank.loan.concept:bank_loan.view_bank_loan_concept_form
+#: view:bank.loan.concept:bank_loan.view_bank_loan_concept_tree
+#: model:ir.model,name:bank_loan.model_bank_loan_concept
+msgid "Bank Loan Concept"
+msgstr "Concepto del Préstamo Bancario"
+
+#. module: bank_loan
+#: view:bank.loan.concept:bank_loan.view_bank_loan_concept_form
+msgid "Bank Loan Concept Name"
+msgstr "Nombre del Concepto..."
+
+#. module: bank_loan
+#: field:bank.loan,capital:0
+msgid "Capital"
+msgstr "Capital"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/bank_loan.py:103
+#, python-format
+msgid "Capital must be >= 0!"
+msgstr "¡El Capital debe ser mayor o igual a 0!"
+
+#. module: bank_loan
+#: view:bank.loan:bank_loan.view_bank_loan_form
+msgid "Close"
+msgstr "Cerrar"
+
+#. module: bank_loan
+#: field:bank.loan,close_date:0
+msgid "Close Date"
+msgstr "Fecha de Cierre"
+
+#. module: bank_loan
+#: selection:bank.loan,state:0
+msgid "Closed"
+msgstr "Cerrado"
+
+#. module: bank_loan
+#: field:bank.loan,concept_id:0 field:res.bank.loan.line,concept_id:0
+msgid "Concept"
+msgstr "Concepto"
+
+#. module: bank_loan
+#: field:bank.loan,create_uid:0 field:bank.loan.concept,create_uid:0
+#: field:bank.loan.line,create_uid:0 field:res.bank.loan.line,create_uid:0
+msgid "Created by"
+msgstr "Creado por"
+
+#. module: bank_loan
+#: field:bank.loan,create_date:0 field:bank.loan.concept,create_date:0
+#: field:bank.loan.line,create_date:0 field:res.bank.loan.line,create_date:0
+msgid "Created on"
+msgstr "Creado el"
+
+#. module: bank_loan
+#: field:bank.loan,currency_id:0 field:bank.loan.concept,currency_id:0
+#: field:res.bank.loan.line,currency_id:0
+msgid "Currency"
+msgstr "Moneda"
+
+#. module: bank_loan
+#: field:bank.loan,display_name:0 field:bank.loan.concept,display_name:0
+#: field:bank.loan.line,display_name:0 field:res.bank.loan.line,display_name:0
+msgid "Display Name"
+msgstr "Nombre a mostrar"
+
+#. module: bank_loan
+#: selection:bank.loan,state:0
+msgid "Draft"
+msgstr "Borrador"
+
+#. module: bank_loan
+#: field:bank.loan,id:0 field:bank.loan.concept,id:0 field:bank.loan.line,id:0
+#: field:res.bank.loan.line,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: bank_loan
+#: field:bank.loan,interest:0
+msgid "Interest"
+msgstr "Interés"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/bank_loan.py:109
+#, python-format
+msgid "Interest must be >= 0!"
+msgstr "¡El Interés debe ser mayor o igual a 0!"
+
+#. module: bank_loan
+#: field:bank.loan,__last_update:0 field:bank.loan.concept,__last_update:0
+#: field:bank.loan.line,__last_update:0
+#: field:res.bank.loan.line,__last_update:0
+msgid "Last Modified on"
+msgstr "Última actualización el"
+
+#. module: bank_loan
+#: field:bank.loan,write_uid:0 field:bank.loan.concept,write_uid:0
+#: field:bank.loan.line,write_uid:0 field:res.bank.loan.line,write_uid:0
+msgid "Last Updated by"
+msgstr "Última actualización por"
+
+#. module: bank_loan
+#: field:bank.loan,write_date:0 field:bank.loan.concept,write_date:0
+#: field:bank.loan.line,write_date:0 field:res.bank.loan.line,write_date:0
+msgid "Last Updated on"
+msgstr "Última actualización el"
+
+#. module: bank_loan
+#: model:ir.model,name:bank_loan.model_bank_loan_line
+msgid "Line of a Bank Loan"
+msgstr "Línea de Préstamo Bancario"
+
+#. module: bank_loan
+#: field:bank.loan,line_ids:0
+msgid "Lines"
+msgstr "Líneas"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/bank_loan.py:121
+#, python-format
+msgid "Lines amount is misconfigured, it can't be more than %s!"
+msgstr ""
+"¡El/Los importe(s) en la(s) línea(s) es incorrecto o está mal configurado!\n"
+"No debe superar: %s"
+
+#. module: bank_loan
+#: model:ir.model,name:bank_loan.model_res_bank_loan_line
+msgid "Lines describing the loans for an specific Bank"
+msgstr "Líneas que resumen los préstamos para un Banco específico"
+
+#. module: bank_loan
+#: field:bank.loan.line,loan_id:0
+msgid "Loan"
+msgstr "Préstamo"
+
+#. module: bank_loan
+#: view:res.bank:bank_loan.view_res_bank_form_inherit_add_loan_line_ids
+#: field:res.bank,loan_line_ids:0
+msgid "Loan Lines"
+msgstr "Préstamos"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/res_bank.py:105
+#: sql_constraint:res.bank.loan.line:0
+#, python-format
+msgid "Loan duplicated!"
+msgstr "¡Préstamo duplicado!"
+
+#. module: bank_loan
+#: view:bank.loan:bank_loan.view_bank_loan_form
+msgid "Maturities"
+msgstr "Vencimientos"
+
+#. module: bank_loan
+#: field:bank.loan,maturity_date:0 field:bank.loan.line,maturity_date:0
+msgid "Maturity Date"
+msgstr "Fecha de Vencimiento"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/bank_loan.py:130
+#, python-format
+msgid "Maturity Date must be >= Rate Type Close Date!"
+msgstr "¡La Fecha de Vencimiento debe ser mayor o igual a la Fecha de Cierre del TC!"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/bank_loan.py:232
+#, python-format
+msgid "Maturity Date must be >= to the Loan Maturity Date (%s)!"
+msgstr "¡La Fecha de Vencimiento debe ser mayor o igual a la Fecha de Vencimiento del Préstamo (%s)!"
+
+#. module: bank_loan
+#: field:bank.loan,nar:0
+msgid "NAR"
+msgstr "TNA"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/bank_loan.py:115
+#, python-format
+msgid "NAR must be >= 0!"
+msgstr "¡TNA debe ser mayor o igual a 0!"
+
+#. module: bank_loan
+#: view:bank.loan.concept:bank_loan.view_bank_loan_concept_form
+#: field:bank.loan.concept,name:0
+msgid "Name"
+msgstr "Nombre"
+
+#. module: bank_loan
+#: field:bank.loan,next_maturity_date:0
+msgid "Next Maturity Date"
+msgstr "Siguiente Fecha de Vencimiento"
+
+#. module: bank_loan
+#: selection:bank.loan,state:0
+msgid "Open"
+msgstr "Abierto"
+
+#. module: bank_loan
+#: field:bank.loan,operation_nbr:0
+msgid "Operation N°"
+msgstr "N° de operación"
+
+#. module: bank_loan
+#: view:bank.loan:bank_loan.view_bank_loan_form
+msgid "Post"
+msgstr "Contabilizar"
+
+#. module: bank_loan
+#: selection:bank.loan,state:0
+msgid "Posted"
+msgstr "Contabilizado"
+
+#. module: bank_loan
+#: view:bank.loan:bank_loan.view_bank_loan_form
+msgid "Rate Type"
+msgstr "Tipo de Cambio"
+
+#. module: bank_loan
+#: field:bank.loan,refund_rate_type:0
+msgid "Rate Type (Refund)"
+msgstr "Tipo de Cambio (Devolución)"
+
+#. module: bank_loan
+#: field:bank.loan,request_rate_type:0
+msgid "Rate Type (Request)"
+msgstr "Tipo de Cambio (Pedido)"
+
+#. module: bank_loan
+#: field:bank.loan,rate_type_date:0
+msgid "Rate Type Close Date"
+msgstr "Fecha de cierre del TC"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/bank_loan.py:91
+#: code:addons/bank_loan/models/bank_loan.py:97
+#, python-format
+msgid "Rate Type must be >= 0!"
+msgstr "¡El Tipo de Cambio debe ser mayor o igual a 0!"
+
+#. module: bank_loan
+#: view:bank.loan:bank_loan.view_bank_loan_form
+msgid "Set to Draft"
+msgstr "Volver a Borrador"
+
+#. module: bank_loan
+#: view:bank.loan:bank_loan.view_bank_loan_form
+msgid "Set to Open"
+msgstr "Abrir Préstamo"
+
+#. module: bank_loan
+#: field:res.bank.loan.line,start_date:0
+msgid "Start Date"
+msgstr "Fecha de Inicio"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/res_bank.py:53
+#, python-format
+msgid "Start Date must be < Stop Date!"
+msgstr "¡Fecha de Inicio debe ser menor a Fecha de Fin!"
+
+#. module: bank_loan
+#: field:bank.loan,state:0
+msgid "State"
+msgstr "Estado"
+
+#. module: bank_loan
+#: field:res.bank.loan.line,stop_date:0
+msgid "Stop Date"
+msgstr "Fecha de Fin"
+
+#. module: bank_loan
+#: field:bank.loan,term_days:0
+msgid "Term"
+msgstr "Plazo"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/bank_loan.py:240
+#: sql_constraint:bank.loan.line:0
+#, python-format
+msgid "The Maturity is duplicated!"
+msgstr "¡El Vencimiento está duplicado!"
+
+#. module: bank_loan
+#: code:addons/bank_loan/models/bank_loan.py:59
+#, python-format
+msgid "This concept already exists!"
+msgstr "¡Este Concepto ya existe!"
diff --git a/models/bank_loan.py b/models/bank_loan.py
index c548314dd8285b433112617e34267424625a6189..86b0b830e8affa33ed4c0808b55ad364d9bd0b9c 100644
--- a/models/bank_loan.py
+++ b/models/bank_loan.py
@@ -32,15 +32,35 @@ class BankLoanConcept(models.Model):
     _name = 'bank.loan.concept'
     _description = 'Bank Loan Concept'
 
-    @api.constrains("name")
+    @api.multi
+    def name_get(self):
+        ret = []
+        for concept in self:
+            name = "%s (%s)" % (concept.name, concept.currency_id.name)
+            ret.append((concept.id, name))
+
+        return ret
+
+    @api.returns("res.currency")
+    def _get_default_currency(self):
+        return self.env.ref("base.USD")
+
+    @api.constrains("name", "currency_id")
     def check_name_uniq(self):
         for concept in self:
-            count = self.env["bank.loan.concept"].search_count([("name", "ilike", concept.name),
-                                                                ("id", "!=", concept.id)])
+            count = self.env["bank.loan.concept"].search_count(
+                [
+                    ("name", "ilike", concept.name),
+                    ("currency_id", "=", concept.currency_id.id),
+                    ("id", "!=", concept.id),
+                ]
+            )
             if count > 0:
                 raise exceptions.ValidationError(_("This concept already exists!"))
 
     name = fields.Char(string='Name', size=256, required=True)
+    currency_id = fields.Many2one('res.currency', string='Currency', required=True,
+                                  default=_get_default_currency)
 
 
 class BankLoan(models.Model):
@@ -48,10 +68,6 @@ class BankLoan(models.Model):
     _description = 'Bank Loan'
     _rec_name = "bank_id"
 
-    @api.returns("res.currency")
-    def _get_default_currency(self):
-        return self.env.ref("base.USD")
-
     @api.multi
     def name_get(self):
         ret = []
@@ -111,12 +127,12 @@ class BankLoan(models.Model):
             rate_type_date = fields.Date.from_string(loan.rate_type_date)
             maturity_date = fields.Date.from_string(loan.maturity_date)
             if maturity_date < rate_type_date:
-                raise exceptions.ValidationError(_("Due Date must be >= Rate Type Close Date!"))
+                err = _("Maturity Date must be >= Rate Type Close Date!")
+                raise exceptions.ValidationError(err)
 
     bank_id = fields.Many2one('res.bank', string='Bank', required=True)
     concept_id = fields.Many2one('bank.loan.concept', string='Concept', required=True)
-    currency_id = fields.Many2one('res.currency', string='Currency', required=True,
-                                  default=_get_default_currency)
+    currency_id = fields.Many2one(related="concept_id.currency_id", store=True)
     operation_nbr = fields.Char(string='Operation N°', size=128)
     total_amount = fields.Float(string='Amount', digits=dp.get_precision('Account'))
     request_rate_type = fields.Float(string='Rate Type (Request)',
@@ -127,9 +143,10 @@ class BankLoan(models.Model):
     nar = fields.Float(string='NAR', digits=dp.get_precision('Account'))
     capital = fields.Float(string='Capital', digits=dp.get_precision('Account'))
     interest = fields.Float(string='Interest', digits=dp.get_precision('Account'))
-    maturity_date = fields.Date(string='Due Date', required=True)
+    maturity_date = fields.Date(string='Maturity Date', required=True)
     term_days = fields.Integer(string='Term', compute="_calc_term_days")
-    next_maturity_date = fields.Date(string='Next Due Date', compute="_calc_next_maturity_date")
+    next_maturity_date = fields.Date(string='Next Maturity Date',
+                                     compute="_calc_next_maturity_date")
     close_date = fields.Date(string='Close Date')
     line_ids = fields.One2many('bank.loan.line', 'loan_id', string='Lines')
     state = fields.Selection(
@@ -212,13 +229,13 @@ class BankLoanLine(models.Model):
             maturity_date = fields.Date.from_string(line.maturity_date)
             loan_maturity_date = fields.Date.from_string(line.loan_id.maturity_date)
             if maturity_date and loan_maturity_date and maturity_date > loan_maturity_date:
-                err = _("Due Date must be >= to the Loan Due Date (%s)!")
+                err = _("Maturity Date must be >= to the Loan Maturity Date (%s)!")
                 raise exceptions.ValidationError(err % line.loan_id.maturity_date)
 
     loan_id = fields.Many2one('bank.loan', string='Loan', required=True, ondelete='cascade')
     amount = fields.Float(string='Amount', digits=dp.get_precision('Account'))
-    maturity_date = fields.Date(string='Due Date', required=True)
+    maturity_date = fields.Date(string='Maturity Date', required=True)
 
     _sql_constraints = [
-        ("uniq_date", "UNIQUE(loan_id, maturity_date)", _("The Due Date is duplicated!"))
+        ("uniq_date", "UNIQUE(loan_id, maturity_date)", _("The Maturity is duplicated!"))
     ]
diff --git a/models/res_bank.py b/models/res_bank.py
index ece6d205fc22c79ed090944da4e9731123e7d270..c9977c05ddf8e2ba7ac742c39803429e7e1f4c5f 100644
--- a/models/res_bank.py
+++ b/models/res_bank.py
@@ -19,7 +19,7 @@
 #
 ##############################################################################
 
-from openerp import api, fields, models
+from openerp import _, api, exceptions, fields, models
 from openerp.addons import decimal_precision as dp
 
 
@@ -37,17 +37,71 @@ class ResBankLoanLine(models.Model):
     def _get_default_currency(self):
         return self.env.ref("base.USD")
 
+    def _get_default_start_date(self):
+        today = fields.Date.from_string(fields.Date.context_today(self))
+        return "%s-01-01" % today.year
+
+    @api.constrains("start_date", "stop_date")
+    def check_dates(self):
+        for line in self:
+            if not (line.start_date and line.stop_date):
+                continue
+
+            start_date = fields.Date.from_string(line.start_date)
+            stop_date = fields.Date.from_string(line.stop_date)
+            if stop_date <= start_date:
+                raise exceptions.ValidationError(_("Start Date must be < Stop Date!"))
+
+    @api.onchange("start_date")
+    def onchange_start_date(self):
+        if not self.start_date:
+            return
+
+        start_date = fields.Date.from_string(self.start_date)
+        self.stop_date = "%s-12-31" % start_date.year
+
     bank_id = fields.Many2one('res.bank', string='Bank', required=True)
-    currency_id = fields.Many2one('res.currency', string='Currency', required=True,
-                                  default=_get_default_currency)
+    currency_id = fields.Many2one(related="concept_id.currency_id", store=True)
+    concept_id = fields.Many2one('bank.loan.concept', string='Concept', required=True)
     amount_to_loan = fields.Float(string='Amount to Loan', digits=dp.get_precision('Account'))
     amount_loaned = fields.Float(string='Amount Loaned', digits=dp.get_precision('Account'),
                                  compute="_calc_loaned_remaining")
     amount_remaining = fields.Float(string='Amount Remaining', digits=dp.get_precision('Account'),
                                     compute="_calc_loaned_remaining")
+    start_date = fields.Date(string='Start Date', required=True, default=_get_default_start_date)
+    stop_date = fields.Date(string='Stop Date', required=True)
 
-    @api.depends("amount_to_loan")
+    @api.depends("amount_to_loan", "concept_id", "currency_id", "start_date", "stop_date")
     def _calc_loaned_remaining(self):
+        query = """
+        SELECT COALESCE(SUM(line.amount), 0)
+        FROM bank_loan_line AS line
+        JOIN bank_loan AS loan
+            ON loan.id = line.loan_id
+        WHERE line.maturity_date <= current_date
+            AND loan.state IN ('open', 'posted')
+            AND loan.bank_id = %s
+            AND line.maturity_date BETWEEN %s AND %s
+            AND loan.concept_id = %s
+            AND loan.currency_id = %s
+        """
         for line in self:
-            line.amount_loaned = 0
-            line.amount_remaining = 0
+            if not (line.amount_to_loan and line.currency_id and line.concept_id and
+                    line.start_date and line.stop_date) or isinstance(line.bank_id.id,
+                                                                      models.NewId):
+                continue
+
+            self.env.cr.execute(query, (line.bank_id.id, line.start_date, line.stop_date,
+                                        line.concept_id.id, line.currency_id.id))
+            amount_loaned = self.env.cr.fetchone()[0]
+
+            line.amount_loaned = amount_loaned
+            line.amount_remaining = line.amount_to_loan - amount_loaned
+
+    _sql_constraints = [
+        (
+            "uniq_dates_bank_concept_curr",
+            "UNIQUE(start_date, stop_date, currency_id, bank_id, concept_id)",
+            _("Loan duplicated!")
+        )
+    ]
diff --git a/views/bank_loan_view.xml b/views/bank_loan_view.xml
index 797fbd1574f708960bc78d3b22f5cbeaeec3e75f..4b35bce4cafe14a3f871c8f864fe5b87b37384de 100644
--- a/views/bank_loan_view.xml
+++ b/views/bank_loan_view.xml
@@ -35,7 +35,7 @@
         <field name="arch" type="xml">
         <form string="Bank Loan">
             <header>
-                <button string="Open" states="draft" type="object" name="button_open" class="oe_highlight"/>
+                <button string="Set to Open" states="draft" type="object" name="button_open" class="oe_highlight"/>
                 <button string="Set to Draft" states="open" type="object" name="button_draft"/>
                 <button string="Post" states="open" type="object" name="button_post" class="oe_highlight"/>
                 <button string="Close" states="posted" type="object" name="button_close"/>
@@ -44,36 +44,37 @@
             <sheet>
                 <h1>
                     <label for="bank_id" class="oe_inline oe_edit_only"/>
-                    <field name="bank_id" class="oe_inline"/>
+                    <field name="bank_id" class="oe_inline" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
                 </h1>
                 <h2>
                     <label for="concept_id" class="oe_inline"/>
-                    <field name="concept_id" class="oe_inline"/>
+                    <field name="concept_id" class="oe_inline" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
                     <label for="total_amount" class="oe_inline"/>
-                    <field name="total_amount" class="oe_inline"/>
+                    <field name="total_amount" class="oe_inline" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
                 </h2>
                 <group col="4" colspan="2" string="Rate Type">
-                    <field name="currency_id"/>
-                    <field name="rate_type_date"/>
-                    <field name="request_rate_type"/>
-                    <field name="nar"/>
-                    <field name="capital"/>
-                    <field name="interest"/>
-                    <field name="refund_rate_type"/>
-                    <field name="term_days"/>
+                    <field name="currency_id" readonly="1"/>
+                    <field name="rate_type_date" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
+                    <field name="request_rate_type" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
+                    <field name="nar" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
+                    <field name="capital" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
+                    <field name="interest" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
+                    <field name="refund_rate_type" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
+                    <field name="term_days" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
                 </group>
                 <group col="4" colspan="2">
-                    <field name="operation_nbr"/>
-                    <field name="maturity_date"/>
-                    <field name="next_maturity_date"/>
+                    <field name="operation_nbr" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
+                    <field name="maturity_date" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
+                    <field name="next_maturity_date" attrs="{'readonly': [('state', 'not in', ('draft',))]}"/>
                     <field name="close_date" readonly="1"/>
                 </group>
                 <notebook colspan="4">
                     <page string="Maturities">
                         <group>
-                            <field name="line_ids" nolabel="1">
+                            <field name="line_ids" nolabel="1"
+                        attrs="{'readonly': [('state', 'not in', ('draft',))]}">
                                 <tree editable="bottom">
-                                    <field name="amount" required="1"/>
+                                    <field name="amount" required="1" sum="Total Amount"/>
                                     <field name="maturity_date"/>
                                 </tree>
                             </field>
@@ -93,24 +94,42 @@
         <field name="arch" type="xml">
         <search string="Bank Loan">
             <field name="bank_id" select="True"/>
+            <field name="concept_id"/>
+            <field name="operation_nbr"/>
+            <field name="total_amount"/>
+            <field name="maturity_date"/>
+            <!--<field name="next_maturity_date"/>-->
+            <field name="close_date"/>
+            <field name="rate_type_date"/>
+            <field name="term_days"/>
+            <filter string="Draft" domain="[('state', '=', 'draft')]" name="filter_by_draft"/>
+            <filter string="Open" domain="[('state', '=', 'open')]" name="filter_by_open"/>
+            <filter string="Posted" domain="[('state', '=', 'posted')]" name="filter_by_posted"/>
+            <filter string="Closed" domain="[('state', '=', 'closed')]" name="filter_by_closed"/>
+            <group expand="0" string="Group By...">
+                <filter string="Concept" context="{'group_by': 'concept_id'}" name="group_by_concept_id"/>
+                <filter string="Bank" context="{'group_by': 'bank_id'}" name="group_by_bank_id"/>
+                <filter string="Maturity Date" context="{'group_by': 'maturity_date'}" name="group_by_maturity_date"/>
+                <filter string="Close Date" context="{'group_by': 'close_date'}" name="group_by_close_date"/>
+                <filter string="Rate Type Close Date" context="{'group_by': 'rate_type_date'}"
+                    name="group_by_rate_type_date"/>
+            </group>
         </search>
         </field>
     </record>
 
     <record model="ir.actions.act_window" id="act_open_bank_loan_view">
-        <field name="name">Bank Loan</field>
+        <field name="name">Bank Loans</field>
         <field name="type">ir.actions.act_window</field>
         <field name="res_model">bank.loan</field>
         <field name="view_type">form</field>
         <field name="view_mode">tree,form</field>
         <field name="search_view_id" ref="view_bank_loan_search"/>
         <field name="domain">[]</field>
-        <field name="context">{}</field>
+        <field name="context">{'search_default_group_by_concept_id': 1}</field>
         <field name="help" type="html">
             <p class="oe_view_nocontent_create">
                 Click to create a new Bank Loan
-            </p><p>
-                Bank Loan
             </p>
         </field>
     </record>
@@ -129,5 +148,40 @@
         <field name="view_id" ref="view_bank_loan_tree"/>
     </record>
 
+    <!-- Concept -->
+
+    <record id="view_bank_loan_concept_tree" model="ir.ui.view">
+        <field name="name">bank.loan.concept.tree</field>
+        <field name="model">bank.loan.concept</field>
+        <field name="type">tree</field>
+        <field name="priority" eval="8"/>
+        <field name="arch" type="xml">
+        <tree string="Bank Loan Concept">
+            <field name="name"/>
+            <field name="currency_id"/>
+        </tree>
+        </field>
+    </record>
+
+    <record id="view_bank_loan_concept_form" model="ir.ui.view">
+        <field name="name">bank.loan.concept.form</field>
+        <field name="model">bank.loan.concept</field>
+        <field name="type">form</field>
+        <field name="priority" eval="8"/>
+        <field name="arch" type="xml">
+        <form string="Bank Loan Concept">
+            <sheet>
+                <h1>
+                    <label for="name" string="Name" class="oe_inline"/>
+                    <field name="name" placeholder="Bank Loan Concept Name" class="oe_inline"/>
+                </h1>
+                <group col="4" colspan="2">
+                    <field name="currency_id"/>
+                </group>
+            </sheet>
+        </form>
+        </field>
+    </record>
+
 </data>
 </openerp>
diff --git a/views/res_bank_view.xml b/views/res_bank_view.xml
index 793b5b7b6412d7506c695f57b490c9d9f0de5eb5..9b05b8023b5b306e9019d0a8b31843673b0ce3f7 100644
--- a/views/res_bank_view.xml
+++ b/views/res_bank_view.xml
@@ -8,15 +8,18 @@
         <field name="inherit_id" ref="base.view_res_bank_form"/>
         <field name="priority" eval="8"/>
         <field name="arch" type="xml">
-            <xpath expr="/form/sheet/group" position="after">
+            <xpath expr="/form/sheet/group[last()]" position="after">
                 <notebook colspan="4">
                     <page string="Loan Lines">
                         <field name="loan_line_ids">
                             <tree editable="bottom">
-                                <field name="currency_id"/>
+                                <field name="currency_id" readonly="1"/>
+                                <field name="concept_id"/>
                                 <field name="amount_to_loan"/>
                                 <field name="amount_loaned"/>
                                 <field name="amount_remaining"/>
+                                <field name="start_date"/>
+                                <field name="stop_date"/>
                             </tree>
                         </field>
                     </page>