Kaynağa Gözat

Eliminar transferencia terminado

adrielso 6 yıl önce
ebeveyn
işleme
77e8880169

+ 1 - 1
models/__init__.py

@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 import account_bank_statement_config
 import account_bank_statement_type
-import account_bank_statement_utility
+import account_bank_statement_transfer
 import account_bank_statement
 import cash_box_transfer

+ 173 - 8
models/account_bank_statement_utility.py → models/account_bank_statement_transfer.py

@@ -1,5 +1,9 @@
 # -*- coding: utf-8 -*-
 from openerp import models, fields, tools, api
+from datetime import datetime
+from pytz import timezone
+
+DATE_FORMAT = '%Y-%m-%d'
 
 class AccountBankStatementUtility(models.Model):
     _inherit = 'account.bank.statement'
@@ -116,10 +120,8 @@ class AccountBankStatementUtility(models.Model):
 
     @api.model
     def eiru_transfers_get_chas_box_transfer(self, id):
-        print("\n\neiru_transfers_get_chas_box_transfer\n\n")
-        # import web_pdb; web_pdb.set_trace()
-        # statement = self._get_statement_transfer(id)
         return [{
+            'id': transfer.id,
             'name': transfer.name,
             'amount': transfer.amount,
             'ref': transfer.ref,
@@ -127,18 +129,40 @@ class AccountBankStatementUtility(models.Model):
             'outputStatement': {
                 'id': transfer.output_statement.id,
                 'name': transfer.output_statement.name,
+                'typeJournal': transfer.output_statement.journal_id.type,
                 'state': transfer.output_statement.state,
+                'date': transfer.output_statement.date,
+                'userId': transfer.output_statement.user_id.id,
+                'currency': {
+                    'symbol': transfer.output_statement.currency.symbol,
+                    'thousandsSeparator': transfer.output_statement.currency.thousands_separator,
+                    'decimalSeparator': transfer.output_statement.currency.decimal_separator,
+                    'decimalPlaces': transfer.output_statement.currency.decimal_places,
+                }
             },
             'inputStatement': {
                 'id': transfer.input_statement.id,
                 'name': transfer.input_statement.name,
                 'state': transfer.input_statement.state,
+                'typeJournal': transfer.input_statement.journal_id.type,
+                'date': transfer.input_statement.date,
+                'userId': transfer.input_statement.user_id.id,
+                'currency': {
+                    'symbol': transfer.input_statement.currency.symbol,
+                    'thousandsSeparator': transfer.input_statement.currency.thousands_separator,
+                    'decimalSeparator': transfer.input_statement.currency.decimal_separator,
+                    'decimalPlaces': transfer.input_statement.currency.decimal_places,
+                }
+            },
+            'outputLine': {
+                'id': transfer.output_line.id,
+                'statementID': transfer.output_line.statement_id.id,
+            },
+            'inputLine': {
+                'id': transfer.input_line.id,
+                'statementID': transfer.input_line.statement_id.id,
             }
-        #     input_line
-        #     output_line
-        #     input_statement
-        #     output_statement
-        }for transfer in self.env['cash.box.transfer'].search([('output_statement.id','=',id)])]
+        } for transfer in self.env['cash.box.transfer'].search(['|', ('output_statement.id','=',id), ('input_statement.id','=',id)])]
 
     '''       _____                     __
              |_   _| __ __ _ _ __  ___ / _| ___ _ __ ___
@@ -226,3 +250,144 @@ class AccountBankStatementUtility(models.Model):
             return False
 
         return True
+
+    '''
+          _   _       _ _       _      _____                     __
+         | | | |_ __ | (_)_ __ | | __ |_   _| __ __ _ _ __  ___ / _| ___ _ __
+         | | | | '_ \| | | '_ \| |/ /   | || '__/ _` | '_ \/ __| |_ / _ \ '__|
+         | |_| | | | | | | | | |   <    | || | | (_| | | | \__ \  _|  __/ |
+          \___/|_| |_|_|_|_| |_|_|\_\   |_||_|  \__,_|_| |_|___/_|  \___|_|
+    '''
+    '''
+        Get Cash Box Transfer
+    '''
+    def _get_cash_box_transfer(self, id):
+        return self.env['cash.box.transfer'].browse(id)
+
+    '''
+        Get timezone
+    '''
+    def get_timezone(self):
+        tz_name = self._context.get('tz') or self.env.user.tz
+        return timezone(tz_name)
+
+    '''
+        Get server date
+    '''
+    def get_server_datetime(self):
+        return datetime.now(self.get_timezone()).strftime(DATE_FORMAT)
+
+    '''
+        Get Statement Line
+    '''
+    def _get_statement_Line(self, id):
+        return self.env['account.bank.statement.line'].browse(id)
+
+    '''
+        writer Line Statement
+    '''
+    def _write_statement_line_transfer(self, line):
+        return line.write({
+            'is_deleted': False
+        })
+
+    '''
+        Unlink Line Statement
+    '''
+    def _unlink_statement_line_transfer(self, line):
+        return line.unlink()
+
+    '''
+        Write cash box transfer
+    '''
+    def _write_cash_box_transfer(self, transfer, message, user):
+        return transfer.write({
+            'message_deleted': message,
+            'active': False,
+            'write_uid': user.id
+        })
+
+    '''
+        unlink Initial
+    '''
+    @api.model
+    def unlink_transfer(self, values):
+        ### user
+        user = self.env.user
+        ### date server
+        date_server = self.get_server_datetime()
+        ### account Statement
+        statement = self._get_statement_transfer(values['statementId'])
+        if (not statement):
+            return {
+                'state' : False,
+                'message': "No se pudo completar la operación."
+            }
+
+        ### Transferencia
+        cashBoxTransfer =  self._get_cash_box_transfer(values['transferId'])
+        if (not cashBoxTransfer):
+            return {
+                'state' : False,
+                'message': "No se pudo completar la operación."
+            }
+
+        ### Line output
+        lineOutput = self._get_statement_Line(cashBoxTransfer.output_line.id)
+        if (not lineOutput):
+            return {
+                'state' : False,
+                'message': "No se pudo completar la operación."
+            }
+
+        if (lineOutput.statement_id.state == 'confirm'):
+            return {
+                'state' : False,
+                'message': "No se pudo completar la operación, por que la caja de origen ya fue cerrada"
+            }
+
+        ### Line Input
+        lineInput = self._get_statement_Line(cashBoxTransfer.input_line.id)
+        if (not lineInput):
+            return {
+                'state' : False,
+                'message': "No se pudo completar la operación."
+            }
+
+        if (lineInput.statement_id.state == 'confirm'):
+            return {
+                'state' : False,
+                'message': "No se pudo completar la operación por que la caja destino ya fue cerrada"
+            }
+
+        ## updtae
+        writeOutput = self._write_statement_line_transfer(lineOutput)
+        ## unlink
+        unlinkOutpu = self._unlink_statement_line_transfer(lineOutput)
+        if (not unlinkOutpu):
+            return {
+                'state' : False,
+                'message': "No se pudo completar la operación, error al eliminar la transferencia"
+            }
+        ## Update
+        writeInput = self._write_statement_line_transfer(lineInput)
+        ## Unlink
+        unlinkInput = self._unlink_statement_line_transfer(lineInput)
+        if (not unlinkInput):
+            return {
+                'state' : False,
+                'message': "No se pudo completar la operación, error al eliminar la transferencia"
+            }
+
+        message = values['comment']+" \nEliminado por la caja "+str(statement.name)+" y por Usuario "+str(user.name)+" en "+str(date_server)
+
+        writeTransfer = self._write_cash_box_transfer(cashBoxTransfer, message, user)
+        if (not writeTransfer):
+            return {
+                'state' : False,
+                'message': "No se pudo completar la operación"
+            }
+
+        return { 'state': True,
+                'message': 'Operación realizada con éxito'
+        }

+ 2 - 0
models/cash_box_transfer.py

@@ -11,6 +11,8 @@ class cash_box_transfer(models.Model):
     amount = fields.Float('Amount', digits_compute=dp.get_precision('Account'), required=True)
     ref = fields.Char('Ref')
     date = fields.Date()
+    message_deleted = fields.Text('Message Deleted')
+    active = fields.Boolean('Active', default=True)
     ##### statement line
     input_line = fields.Many2one('account.bank.statement.line', 'Bank statement line Input')
     output_line = fields.Many2one('account.bank.statement.line', 'Bank statement line Output')

+ 4 - 0
static/src/css/style.css

@@ -80,10 +80,14 @@
     height: 35px;
 }
 
+
 /*table*/
 .transfer-deleted-table{
     margin-top: 0px !important;
 }
+.expired-account-modal .table-row-select {
+     background: #d4e2f3  !important;
+}
 .expired-account-modal  .modal-head-wrapper-statement-transfer {
     width: 100%;
 }

+ 130 - 210
static/src/js/eiru_statement_transfer_deleted.js

@@ -10,18 +10,14 @@
         id: undefined,
         buttons: undefined,
         bankStatement: [],
-        accountJournal :[],
-        statementOpen: [],
-        /** config */
-        statementConfig: [],
         resUser: [],
-        statementUser: [],
+        statementConfig: [],
+        cashBoxTransfer: [],
         /* init */
         init: function(parent) {
             this._super(parent);
             this.buttons = parent.$buttons;
         },
-
         /* start */
         start: function () {
             var self = this
@@ -43,24 +39,20 @@
                     self.$el.css('display','flex');
             });
         },
-
         /* Actualizar Id de la visat actual  */
         updateId: function(id) {
             var self = this;
             self.id = id;
         },
-
         /* Reload Page*/
         reloadPage: function() {
              openerp.parentInstanceStatementTransferDeleted.reload();
         },
-
         /* Description: Función para remover el modal */
         removeModal: function() {
             $('.expired-account-modal').remove();
             $('.modal-backdrop').remove();
         },
-
         /*Get User*/
         fetchGetUserLogin: function(){
             var bankStatementUser = new instanceWeb.Model('account.bank.statement');
@@ -75,7 +67,6 @@
             var statementConfig = new openerp.web.Model('account.bank.statement.config');
             return statementConfig.query(fields).filter(domain).all();
         },
-
         /* Método inicial */
         fetchInitial: function() {
             var self = this;
@@ -110,45 +101,12 @@
                     return cashBoxTransfer;
                 }).then(function(cashBoxTransfer){
                     self.cashBoxTransfer = cashBoxTransfer;
-                    console.log(cashBoxTransfer);
+                    if (!self.cashBoxTransfer.length) {
+                        instanceWeb.notification.do_warn("Atencion", "La caja no tiene ninguna transferencia.");
+                        return false;
+                    }
+                    return self.showModalTransfer();
                 })
-                // delete_transfer_user_ids
-            //         var statementConfig = self.statementConfig[0];
-            //         var resUser = self.resUser[0];
-            //         var statementUser = self.bankStatement[0];
-            //         /*  Verificar si el tipo caja tiene permiso para la transferencia */
-            //         if (!(_.contains(statementConfig.transfer_statement_ids, statementUser.typeStatement))) {
-            //             instanceWeb.notification.do_warn("Atencion", "El tipo caja no tiene permiso para realizar transferencia.");
-            //             return  false;
-            //         }
-            //         /* Verificar si el usuario tiene permiso para la transferencia*/
-            //         if (!(_.contains(statementConfig.transfer_user_ids, resUser.id))) {
-            //             instanceWeb.notification.do_warn("Atencion", "El usuario no tiene permiso para realizar transferencia.");
-            //             return false;
-            //         }
-            //     }
-            //
-            //     if (self.bankStatement[0].amount <= 0) {
-            //         if (!self.statementConfig.length){
-            //             instanceWeb.notification.do_warn("Atencion", "La caja seleccionada no tiene saldo disponible.");
-            //             return false;
-            //         }
-            //         if (!self.statementConfig[0].transfer_negative_amount){
-            //             instanceWeb.notification.do_warn("Atencion", "La caja seleccionada no tiene saldo disponible.");
-            //             return false;
-            //         }
-            //     }
-            //     self.fetchAccountJournal(self.id).then(function(accountJournal) {
-            //         return accountJournal;
-            //     }).then(function(accountJournal) {
-            //         self.accountJournal = accountJournal;
-            //         if (!accountJournal[0].statementJournal.length){
-            //             instanceWeb.notification.do_warn("Atencion", "No tienes ninguna caja abierta.");
-            //             return false;
-            //         }
-
-                // return self.showModalTransfer();
-                // });
             });
         },
         /* Account bank Statement */
@@ -158,15 +116,6 @@
                 context: new instanceWeb.CompoundContext()
             });
         },
-        // /* Account Journal*/
-        // fetchAccountJournal: function(id) {
-        //     var accountJournal = new instanceWeb.Model('account.bank.statement');
-        //     return accountJournal.call('get_account_journal_utility',[id], {
-        //         context: new instanceWeb.CompoundContext()
-        //     });
-        // },
-
-
         /* cash_box_transfer*/
         fetchCashBoxTransfer: function(id) {
             var cashBoxTransfer = new instanceWeb.Model('account.bank.statement');
@@ -174,169 +123,133 @@
                 context: new instanceWeb.CompoundContext()
             });
         },
-
-        // /* Get statement Journal */
-        // getStatementJournal(id) {
-        //     var self = this;
-        //     var journal = _.filter(self.accountJournal, function(item) {
-        //         return  item.id === id ;
-        //     });
-        //     return _.flatten(_.map(journal, function(map) {
-        //         return map.statementJournal;
-        //     }));
-        // },
-        // /* Save Statement transfer */
-        // statementCompletTransfers: function(values) {
-        //     var bankStatementTransfer = new instanceWeb.Model('account.bank.statement');
-        //     return bankStatementTransfer.call('statement_complet_transfers',[values], {
-        //         context: new instanceWeb.CompoundContext()
-        //     });
-        // },
-
+        /*filter line transfer selected*/
+        filterRowTransfer: function(id){
+            var self = this;
+            return _.filter(self.cashBoxTransfer, function(item){
+                return item.id === id;
+            });
+        },
         /*Modal  Transfer */
         showModalTransfer: function() {
             var self = this;
             var defer =$.Deferred();
             var results = true;
-        //     var accountJournal =  self.accountJournal;
-        //
-        //     accountJournal.unshift({'name': '', 'id': ''});
+            var rowSelected = [];
 
-            var modal = QWeb.render('ModalStatementUtility.TransferDeleted');
+            var modal = QWeb.render('ModalStatementUtility.TransferDeleted',{
+                cashBoxTransfer: self.cashBoxTransfer
+            });
 
             $('.openerp_webclient_container').after(modal);
             $('.expired-account-modal').modal();
 
+            var statementOutput = $('.expired-account-modal').find('.statement-output');
+            var statementInput = $('.expired-account-modal').find('.statement-input');
+            var transferRef = $('.expired-account-modal').find('.transfer-ref');
+            var transferAmount = $('.expired-account-modal').find('.transfer-amount');
+            var transferAmountSymbol = $('.expired-account-modal').find('.transfer-amount-symbol');
+            var refTransferDeleted = $('.expired-account-modal').find('.ref-transfer-deleted');
+            /* Table */
+            var tableRow = $('.expired-account-modal').find('.table-tbody').find('tr');
+            var buttonDeleted = $('.expired-account-modal').find('.button-deleted')
+
+            buttonDeleted.attr("disabled", true);
+            refTransferDeleted.attr("disabled", true);
+
+            /* Seleccionar  fila */
+            tableRow.click(function (e) {
+                row_export = $(e.target);
+
+                buttonDeleted.attr("disabled", true);
+                refTransferDeleted.attr("disabled", true);
+                tableRow.removeClass('table-row-select');
+                $(e.target).closest('tr').addClass('table-row-select');
+
+                var idRow = parseInt(($(e.target).closest('tr').children()[0].textContent).trim())
+                rowSelected = self.filterRowTransfer(idRow).shift();
+
+                statementOutput.val('')
+                statementInput.val('')
+                transferRef.val('')
+                transferAmount.val(0)
+                transferAmountSymbol.text("")
+                refTransferDeleted.val('')
+
+                if (!rowSelected){
+                    tableRow.removeClass('table-row-select');
+                    return false;
+                }
+
+                if ( rowSelected.outputStatement.typeJournal === 'cash' ) {
+                    if (rowSelected.outputStatement.state !== 'open') {
+                        instanceWeb.notification.do_warn("Atencion", "No podes continuar con esa operación, la caja origen no esta abierta");
+                        tableRow.removeClass('table-row-select');
+                        return false;
+                    }
+                    if (rowSelected.inputStatement.state !== 'open')  {
+                        instanceWeb.notification.do_warn("Atencion", "No podes continuar con esa operación, la caja destino no esta abierta");
+                        tableRow.removeClass('table-row-select');
+                        return false;
+                    }
+                }
+
+                if ( rowSelected.outputStatement.typeJournal === 'bank' ){
+                    if (rowSelected.outputStatement.state === 'confirm'){
+                        instanceWeb.notification.do_warn("Atencion", "No podes continuar con esa operación, la caja origen no esta abierta");
+                        tableRow.removeClass('table-row-select');
+                        return false;
+                    }
+                    if (rowSelected.inputStatement.state === 'confirm') {
+                        instanceWeb.notification.do_warn("Atencion", "No podes continuar con esa operación, la caja destino no esta abierta");
+                        tableRow.removeClass('table-row-select');
+                        return false;
+                    }
+                }
 
-        //     var statementAmount = $('.expired-account-modal').find('.statement-amount');
-        //     var statementAmountSymbol = $('.expired-account-modal').find('.statement-amount-symbol');
-        //     var selectedJournal = $('.expired-account-modal').find('.selected-Journal');
-        //     var statementOpen = $('.expired-account-modal').find('.statement-open-selected');
-        //     var amountTransfer = $('.expired-account-modal').find('.amount-transfer');
-        //     var amountTransferSymbol = $('.expired-account-modal').find('.amount-transfer-symbol');
-        //     var refTransfer = $('.expired-account-modal').find('.ref-transfer');
-        //     /* Button */
-        //     var buttonSave = $('.expired-account-modal').find('.button-save');
-        //     var currency = self.bankStatement[0].currencystatement;
-        //
-        //     /* Monto */
-        //     statementAmount.val(accounting.formatNumber(self.bankStatement[0].amount, currency.decimalPlaces, currency.thousandsSeparator, currency.decimalSeparator));
-        //     /* Symbol */
-        //     statementAmountSymbol.text(currency.symbol);
-        //     amountTransferSymbol.text(currency.symbol);
-        //     /*select Journal */
-        //     selectedJournal.focus();
-        //     selectedJournal.change(function(e) {
-        //     statementOpen.empty();
-        //
-        //         var statementJournal = self.getStatementJournal(parseInt(selectedJournal.val()));
-        //         if (!!statementJournal.length)
-        //             statementOpen.append('<option value=""></option>');
-        //
-        //         _.each(statementJournal, function(item) {
-        //             statementOpen.append('<option value="' + item.id + '">' + item.statementname + '</option>');
-        //         });
-        //     });
-        //
-        //     /* amountTransfer.keyup*/
-        //     amountTransfer.keyup(function(e) {
-        //         var amount = accounting.unformat(amountTransfer.val(),currency.decimalSeparator);
-        //         amountTransfer.val(accounting.formatNumber(amount,0, currency.thousandsSeparator, currency.decimalSeparator));
-        //         amountTransfer.css('border-color','#ccc');
-        //
-        //         if (e.keyCode === 13)
-        //             refTransfer.focus();
-        //     });
-        //     /* amountTransfer. focusout*/
-        //     amountTransfer.focusout(function(e) {
-        //         var amountAvailable = accounting.unformat(statementAmount.val(),currency.decimalSeparator);
-        //         var amount = Math.abs(accounting.unformat(amountTransfer.val(),currency.decimalSeparator));
-        //
-        //         if (amountAvailable < amount && !self.statementConfig[0].transfer_negative_amount) {
-        //             instanceWeb.notification.do_warn("Atencion", "El valor a transferir supera el saldo disponible de la caja .");
-        //             amountTransfer.css('border-color','red');
-        //             amountTransfer.focus();
-        //             return false;
-        //         }
-        //
-        //         amountTransfer.val(accounting.formatNumber( amount,currency.decimalPlaces, currency.thousandsSeparator, currency.decimalSeparator));
-        //     });
-        //
-        //     /*Click buttonSave*/
-        //     buttonSave.click(function(e){
-        //         var amountAvailable = accounting.unformat(statementAmount.val(),currency.decimalSeparator);
-        //         var amount = accounting.unformat(amountTransfer.val(),currency.decimalSeparator);
-        //
-        //         /* Journal */
-        //         if (!selectedJournal.val()) {
-        //             instanceWeb.notification.do_warn("Atencion", "Debes seleccionar un tipo de pago para continuar.");
-        //             selectedJournal.css('border-color','red');
-        //             selectedJournal.focus();
-        //             return false;
-        //         }
-        //         selectedJournal.css('border-color','#ccc');
-        //         /* Statement Open */
-        //         if (!statementOpen.val()) {
-        //             instanceWeb.notification.do_warn("Atencion", "Debes seleccionar la caja donde vas a transferir.");
-        //             statementOpen.css('border-color','red');
-        //             statementOpen.focus();
-        //             return false;
-        //         }
-        //         statementOpen.css('border-color','#ccc');
-        //
-        //         /* ammount transfer*/
-        //         if (amount <= 0) {
-        //             instanceWeb.notification.do_warn("Atencion", "El valor a transferir debe ser mayor a cero.");
-        //             amountTransfer.css('border-color','red');
-        //             amountTransfer.focus();
-        //             return false;
-        //         }
-        //
-        //         if (amountAvailable < amount) {
-        //             if (!self.statementConfig.length){
-        //                 instanceWeb.notification.do_warn("Atencion", "El valor a transferir supera el saldo disponible de la caja .");
-        //                 amountTransfer.css('border-color','red');
-        //                 amountTransfer.focus();
-        //                 return false;
-        //             }
-        //             if (!self.statementConfig[0].transfer_negative_amount){
-        //                 instanceWeb.notification.do_warn("Atencion", "El valor a transferir supera el saldo disponible de la caja .");
-        //                 amountTransfer.css('border-color','red');
-        //                 amountTransfer.focus();
-        //                 return false;
-        //             }
-        //         }
-        //         amountTransfer.css('border-color','#ccc');
-        //         /* Ref transfer */
-        //         if (!refTransfer.val()) {
-        //             instanceWeb.notification.do_warn("Atencion", "Debes de ingresar un motivo para la transferencia.");
-        //             refTransfer.css('border-color','red');
-        //             refTransfer.focus();
-        //             return false;
-        //         }
-        //         refTransfer.css('border-color','#ccc');
-        //
-        //         statementTransfer = {
-        //             'statementOriginId': self.bankStatement[0].id,
-        //             'statementDestinyId': parseInt(statementOpen.val()),
-        //             'amountTransfer': amount,
-        //             'refTransfer': refTransfer.val().trim(),
-        //             'journalID': parseInt(selectedJournal.val())
-        //         }
-        //
-        //         /* Save Payments */
-        //         self.statementCompletTransfers(statementTransfer).then(function(resultsTransfer) {
-        //             return resultsTransfer;
-        //         }).then(function(resultsTransfer) {
-        //             self.reloadPage();
-        //             self.removeModal(e);
-        //             if (!resultsTransfer)
-        //                 results = false;
-        //         });
-        //
-        //         defer.resolve(results);
-        //
-        //     });
+                statementOutput.val(rowSelected.outputStatement.name)
+                statementInput.val(rowSelected.inputStatement.name)
+                transferRef.val(rowSelected.ref)
+                transferAmount.val(accounting.formatNumber(rowSelected.amount, rowSelected.outputStatement.currency.decimalPlaces, rowSelected.outputStatement.currency.thousandsSeparator,rowSelected.outputStatement.currency.decimalSeparator))
+                transferAmountSymbol.text(rowSelected.outputStatement.currency.symbol)
+                refTransferDeleted.val('')
+                buttonDeleted.removeAttr("disabled");
+                refTransferDeleted.removeAttr("disabled");
+                refTransferDeleted.focus();
+            });
+
+            buttonDeleted.click(function(e) {
+                if (!refTransferDeleted.val()) {
+                    instanceWeb.notification.do_warn("Atencion", "Debes ingresar un motivo para continuar.");
+                    refTransferDeleted.css('border-color','red');
+                    refTransferDeleted.focus();
+                    return false;
+                }
+                refTransferDeleted.css('border-color','#ccc');
+
+                if (!rowSelected){
+                    instanceWeb.notification.do_warn("Atencion", "Debes seleccionar una transferencia para continuar.");
+                    tableRow.focus()
+                    return false;
+                }
+
+                var unlinkTransfer ={
+                    'statementId': self.id,
+                    'transferId': rowSelected.id,
+                    'comment': !!refTransferDeleted.val() ? refTransferDeleted.val() : ''
+                }
+
+                self.unlinkTransfer(unlinkTransfer).then(function(transfer){
+                    return transfer;
+                }).then(function(transfer){
+                    self.reloadPage();
+                    self.removeModal(e);
+                    if (!transfer)
+                        results = false;
+                })
+
+                defer.resolve(results);
+            });
 
             /* Click Cerrar */
             $('.expired-account-modal').on('hidden.bs.modal', function(e) {
@@ -347,6 +260,13 @@
 
             return defer;
         },
+        /* Unlink transfer */
+        unlinkTransfer: function(values){
+            var bankStatementTransfer = new instanceWeb.Model('account.bank.statement');
+            return bankStatementTransfer.call('unlink_transfer',[values], {
+                context: new instanceWeb.CompoundContext()
+            });
+        },
     });
 
     if (openerp.web && openerp.web.FormView) {

+ 26 - 20
static/src/xml/modal/modal_statement_transfer_deleted.xml

@@ -11,7 +11,6 @@
                     <!-- Body -->
                     <div class="modal-body">
                         <!-- table -->
-                        <!-- Table -->
                         <div class=" oe_view_manager_body transfer-deleted-table">
                             <div class="modal-head-wrapper-statement-transfer">
                                 <table class="oe_list_content">
@@ -29,26 +28,33 @@
                             <div class="modal-item-statement-transfer">
                                 <table class="oe_list_content">
                                     <tbody class="table-tbody">
-                                        <tr>
-                                        <!-- <tr t-foreach="moveLine" t-as="line"> -->
+                                        <tr t-foreach="cashBoxTransfer" t-as="line">
                                             <td>
-                                                <!-- <t t-esc="line_value.id"/> -->
+                                                <t t-esc="line_value.id"/>
                                             </td>
                                             <td>
-                                                <span>25/06/2018</span>
-                                                <!-- <input type="checkbox" class="select-move-payments"></input> -->
+                                                <t t-set="date" t-value="line_value.date"/>
+                                                <t t-js="ctx">
+                                                    ctx.date = moment(ctx.date).format("DD-MM-YYYY");
+                                                </t>
+                                                <t t-esc="date"/>
                                             </td>
                                             <td>
-                                                <span>EFPYG/2018/0054</span>
-                                                <!-- <t t-esc="line_value.dateMaturity"/> -->
+                                                <t t-esc="line_value.outputStatement.name"/>
                                             </td>
                                             <td>
-                                                <span>EFPYG/2018/0054</span>
-                                                <!-- <t t-esc="line_value.debitFormat"/> -->
+                                                <t t-esc="line_value.inputStatement.name"/>
                                             </td>
                                             <td>
-                                                <span>$12.100.267.999</span>
-                                                <!-- <t t-esc="line_value.residualFormat"/> -->
+                                                <t t-set="monto" t-value="line_value.amount"/>
+                                                <t t-set="decimalSeparator" t-value="line_value.outputStatement.currency.decimalSeparator"/>
+                                                <t t-set="thousandsSeparator" t-value="line_value.outputStatement.currency.thousandsSeparator"/>
+                                                <t t-set="decimalPlaces" t-value="line_value.outputStatement.currency.decimalPlaces"/>
+                                                <t t-set="symbol" t-value="line_value.outputStatement.currency.symbol"/>
+                                                <t t-js="ctx">
+                                                    ctx.monto = accounting.formatMoney(ctx.monto, ctx.symbol,ctx.decimalPlaces,ctx.thousandsSeparator,ctx.decimalSeparator);
+                                                </t>
+                                                <t t-esc="monto"/>
                                             </td>
                                         </tr>
                                     </tbody>
@@ -57,15 +63,15 @@
                         </div>
                         <div class="row">
                             <div class="col-xs-6">
-                                <label class="statement-input-labe">Caja Origin</label>
+                                <label class="statement-input-labe">Caja Origen</label>
                                 <div class="statement-input-group">
-                                    <input type="text" class="form-control statement-input-number input-letters" readonly="readonly"></input>
+                                    <input type="text" class="form-control statement-input-number input-letters statement-output" readonly="readonly"></input>
                                 </div>
                             </div>
                             <div class="col-xs-6">
-                                <label class="statement-input-labe">Caja destino</label>
+                                <label class="statement-input-labe">Caja Destino</label>
                                 <div class="statement-input-group">
-                                    <input type="text" class="form-control statement-input-number input-letters" readonly="readonly"></input>
+                                    <input type="text" class="form-control statement-input-number input-letters statement-input" readonly="readonly"></input>
                                 </div>
                             </div>
                         </div>
@@ -74,14 +80,14 @@
                             <div class="col-xs-6">
                                 <label class="statement-input-labe">Referencia</label>
                                 <div class="statement-input-group">
-                                    <input type="text" class="form-control statement-input-number input-letters" readonly="readonly"></input>
+                                    <input type="text" class="form-control statement-input-number input-letters transfer-ref" readonly="readonly"></input>
                                 </div>
                             </div>
                             <div class="col-xs-6">
                                 <label class="statement-input-labe">Monto</label>
                                 <div class="statement-input-group">
-                                    <input type="text" class="form-control statement-input-number statement-amount" readonly="readonly" value="0"></input>
-                                    <div class="statement-input-symbol statement-amount-symbol">
+                                    <input type="text" class="form-control statement-input-number transfer-amount" readonly="readonly" value="0"></input>
+                                    <div class="statement-input-symbol transfer-amount-symbol">
                                         <span class="input-group-text"></span>
                                     </div>
                                 </div>
@@ -100,7 +106,7 @@
                     </div>
                     <!-- Pie de Pagina -->
                     <div class="modal-footer statement-utility-footer">
-                        <button type="button" class="oe_button oe_form_button oe_highlight statement-utility-button button-save">Guardar</button>
+                        <button type="button" class="oe_button oe_form_button oe_highlight statement-utility-button button-deleted">Guardar</button>
                         <button type="button" class="oe_button oe_form_button oe_link dismmis-modal statement-utility-button" data-dismiss="modal">Salir</button>
                     </div>
                 </div>