浏览代码

[ADD] Eliminar transferencia

adrielso 6 年之前
父节点
当前提交
5d1bd74717

+ 1 - 0
models/__init__.py

@@ -3,3 +3,4 @@ import account_bank_statement_config
 import account_bank_statement_type
 import account_bank_statement_utility
 import account_bank_statement
+import cash_box_transfer

+ 6 - 1
models/account_bank_statement_config.py

@@ -9,14 +9,19 @@ class accountBankStatementConfig(models.Model):
     ## Forma de Importar Pagso en caja Ventas/compras/RRHH
     import_statement_payments = fields.Selection([('automatic_import', 'Automático'),('manual_import','Manual')],'Importar pagos en caja',default='automatic_import',help='Tipo de importar los pago en caja', required=True)
     import_statement_payslip = fields.Selection([('automatic_import', 'Automático'),('manual_import','Manual')],'Importar pagos de RRHH en caja',default='automatic_import',help='Tipo de importar los pago en caja', required=True)
+
     ## TRANSFERENCIA
     transfer_user_ids = fields.Many2many('res.users', 'statement_config_transfer_user', 'account_bank_statement_config_id','res_users_id', string='statement_transfer_user')
     transfer_statement_ids = fields.Many2many('account.bank.statement.type', 'statement_config_transfer_statement', 'account_bank_statement_config_id', 'account_bank_statement_type_id', string="statement_config_transfer_statement")
-    transfer_negative_amount = fields.Boolean('transfer_negative_amount', default=True, help="Permitir transferencia sin saldo en caja")
+    transfer_negative_amount = fields.Boolean('transfer_negative_amount', default=False, help="Permitir transferencia sin saldo en caja")
+    delete_transfer_user_ids = fields.Many2many('res.users', 'statement_config_deleted_transfer_user', 'account_bank_statement_config_id','res_users_id', string='statement_delete_transfer_user')
+
     ## Poner Dinero
     input_cash_box_user_id = fields.Many2many('res.users', 'statement_config_input_user', 'account_bank_statement_config_id', 'res_users_id', string='statement_input_user')
     input_cash_box_statement_ids = fields.Many2many('account.bank.statement.type', 'statement_config_input_statement', 'account_bank_statement_config_id', 'account_bank_statement_type_id', string="statement_config_input_statement")
+
     ## Sacar Dinero
     output_cash_box_user_id = fields.Many2many('res.users', 'statement_config_output_user', 'account_bank_statement_config_id', 'res_users_id', string='statement_output_user')
     output_cash_box_statement_ids = fields.Many2many('account.bank.statement.type', 'statement_config_output_statement', 'account_bank_statement_config_id', 'account_bank_statement_type_id', string="statement_config_output_statement")
+
     ## Importar Cajas

+ 50 - 3
models/account_bank_statement_utility.py

@@ -114,6 +114,31 @@ class AccountBankStatementUtility(models.Model):
             'name': user.name
         } for user in self.env.user]
 
+    @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 [{
+            'name': transfer.name,
+            'amount': transfer.amount,
+            'ref': transfer.ref,
+            'date': transfer.date,
+            'outputStatement': {
+                'id': transfer.output_statement.id,
+                'name': transfer.output_statement.name,
+                'state': transfer.output_statement.state,
+            },
+            'inputStatement': {
+                'id': transfer.input_statement.id,
+                'name': transfer.input_statement.name,
+                'state': transfer.input_statement.state,
+            }
+        #     input_line
+        #     output_line
+        #     input_statement
+        #     output_statement
+        }for transfer in self.env['cash.box.transfer'].search([('output_statement.id','=',id)])]
 
     '''       _____                     __
              |_   _| __ __ _ _ __  ___ / _| ___ _ __ ___
@@ -143,12 +168,30 @@ class AccountBankStatementUtility(models.Model):
             'amount': amount ,
             'ref': ref,
             'account_id': statement.journal_id.internal_account_id.id,
-            'journal_id': statement.journal_id.id
+            'journal_id': statement.journal_id.id,
+            'is_deleted': True
         }
 
         line = self.env['account.bank.statement.line'].create(statementLine)
         return line
 
+
+    '''
+        Create cash box transfer
+    '''
+    def _create_cash_box_transfer(self, ref, amount, lineInput, lineOutput):
+        cash = {
+            'name': "TRANSFERENCIA %s a %s" %((lineOutput.statement_id.name),(lineInput.statement_id.name)),
+            'amount': amount,
+            'ref': ref,
+            'input_line': lineInput.id,
+            'output_line': lineOutput.id,
+            'input_statement': lineInput.statement_id.id,
+            'output_statement': lineOutput.statement_id.id,
+            'date': lineOutput.date
+        }
+        return self.env['cash.box.transfer'].create(cash)
+
     '''
         Create Line statement Transfer
     '''
@@ -174,8 +217,12 @@ class AccountBankStatementUtility(models.Model):
 
         # input
         name = "TRANSFERENCIA/"+str(statementOrigin.name)
-        statementOutput = self._create_statement_line_transfer(statementDestiny, name, abs(values['amountTransfer']), values['refTransfer'])
-        if (not statementOutput):
+        statementInput = self._create_statement_line_transfer(statementDestiny, name, abs(values['amountTransfer']), values['refTransfer'])
+        if (not statementInput):
+            return False
+
+        cash_box_transfer = self._create_cash_box_transfer(values['refTransfer'], abs(values['amountTransfer']), statementInput, statementOutput)
+        if (not cash_box_transfer):
             return False
 
         return True

+ 31 - 0
models/cash_box_transfer.py

@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+from openerp import models, fields, tools, api
+import openerp.addons.decimal_precision as dp
+from openerp.osv import osv
+from openerp.tools.translate import _
+
+class cash_box_transfer(models.Model):
+    _name = "cash.box.transfer"
+
+    name = fields.Char('name', required=True)
+    amount = fields.Float('Amount', digits_compute=dp.get_precision('Account'), required=True)
+    ref = fields.Char('Ref')
+    date = fields.Date()
+    ##### 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')
+    ##### statement
+    input_statement = fields.Many2one('account.bank.statement', 'Bank statement input')
+    output_statement = fields.Many2one('account.bank.statement', 'Bank statement Output')
+
+
+class account_bank_statement_line_deleted(models.Model):
+    _inherit = 'account.bank.statement.line'
+
+    is_deleted = fields.Boolean('is deleted', default=False)
+
+    @api.multi
+    def unlink(self):
+        if (self.is_deleted):
+            raise osv.except_osv(('Atencion!'), ('No puedes eliminar el ítem de la caja.'))
+        return super(account_bank_statement_line_deleted, self).unlink()

+ 1 - 0
security/ir.model.access.csv

@@ -1,3 +1,4 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
 access_bank_statement_config,account.bank.statement.config,model_account_bank_statement_config,account.group_account_user,1,1,1,1
 access_bank_statement_type,account.bank.statement.type,model_account_bank_statement_type,account.group_account_user,1,1,1,1
+access_cash_box_transfer,cash.box.transfer,model_cash_box_transfer,account.group_account_user,1,1,1,1

+ 86 - 7
static/src/css/style.css

@@ -32,7 +32,6 @@
 .statement-radio-label{
     font-size: 17px;
 }
-
 .statement-input-labe {
     width: 150px;
     height: 35px;
@@ -70,12 +69,6 @@
     border: 1px solid #ccc;
     background: #e3e3e3;
 }
-
-
-
-
-
-
 /*Modal ( Pie de Pagina / Button)*/
 .statement-utility-footer {
     padding-top: 10px;
@@ -86,3 +79,89 @@
     width: 130px;
     height: 35px;
 }
+
+/*table*/
+.transfer-deleted-table{
+    margin-top: 0px !important;
+}
+.expired-account-modal  .modal-head-wrapper-statement-transfer {
+    width: 100%;
+}
+.expired-account-modal .modal-item-statement-transfer {
+    width: 100%;
+    height: 110px;
+    overflow-y: auto;
+}
+.expired-account-modal .transfer-deleted-table table tbody tr {
+    height: 35px;
+}
+.expired-account-modal .transfer-deleted-table table thead tr {
+    height: 40px !important;
+}
+/*id*/
+.expired-account-modal .transfer-deleted-table table tbody tr td:nth-child(1){
+    display: none;
+}
+.expired-account-modal .transfer-deleted-table table thead tr th:nth-child(1){
+    display: none;
+}
+/* Date */
+.expired-account-modal .transfer-deleted-table table tbody tr td:nth-child(2){
+    width: 110px ;
+    font-size: 12pt;
+    text-align: left;
+    padding-left: 10px;
+    padding-top: 8px;
+}
+.expired-account-modal .transfer-deleted-table table thead tr th:nth-child(2){
+    width: 110px;
+    padding-right: 10px;
+    text-align: left;
+    font-size: 14pt;
+    font-weight: bold;
+}
+/* statement origin */
+.expired-account-modal .transfer-deleted-table table tbody tr td:nth-child(3){
+    width: 284px ;
+    padding-right: 10px;
+    text-align: left;
+    font-size: 12pt;
+    padding-top: 8px;
+}
+.expired-account-modal .transfer-deleted-table table thead tr th:nth-child(3){
+    width: 284px;
+    padding-right: 10px;
+    text-align: left;
+    font-size: 14pt;
+    font-weight: bold;
+}
+/* statement distine */
+.expired-account-modal .transfer-deleted-table table tbody tr td:nth-child(4){
+    width: 284px ;
+    padding-right: 10px;
+    text-align: left;
+    font-size: 12pt;
+    padding-top: 8px;
+}
+.expired-account-modal .transfer-deleted-table table thead tr th:nth-child(4){
+    width: 284px;
+    padding-right: 10px;
+    text-align: left;
+    font-size: 14pt;
+    font-weight: bold;
+}
+/* date-Maturity */
+.expired-account-modal .transfer-deleted-table table tbody tr td:nth-child(5){
+    width: 160px ;
+    padding-right: 10px;
+    text-align: right;
+    font-size: 12pt;
+    padding-top: 8px;
+}
+.expired-account-modal .transfer-deleted-table table thead tr th:nth-child(5){
+    width: 160px;
+    padding-right: 10px;
+    text-align: center;
+    font-size: 14pt;
+    font-weight: bold;
+}

+ 10 - 1
static/src/js/eiru_statement_transfer.js

@@ -89,7 +89,16 @@
                 return self.fetchGetUserLogin();
             }).then(function(resUser) {
                 self.resUser = resUser;
-                if (!!self.statementConfig.length && !!self.resUser.length && !!self.bankStatement.length) {
+                if (!self.statementConfig.length){
+                    instanceWeb.notification.do_warn("Atencion", "No fue posible localizar las configuración de las caja.");
+                    return  false;
+                }
+                if (!self.resUser.length) {
+                    instanceWeb.notification.do_warn("Atencion", "No fue posible localizar el usuario.");
+                    return  false;
+                }
+                // if (!!self.statementConfig.length && !!self.resUser.length && !!self.bankStatement.length) {
+                if (!!self.bankStatement.length) {
                     var statementConfig = self.statementConfig[0];
                     var resUser = self.resUser[0];
                     var statementUser = self.bankStatement[0];

+ 380 - 0
static/src/js/eiru_statement_transfer_deleted.js

@@ -0,0 +1,380 @@
+(function() {
+
+    openerp.widgetInstanceStatementTransferDeleted = null;
+    openerp.parentInstanceStatementTransferDeleted = {};
+    var QWeb = openerp.web.qweb;
+    var instanceWeb = openerp.web;
+
+    openerp.EiruStatementTransferDeleted = openerp.Widget.extend({
+        template: 'EiruStatementUtility.TransferDeleted',
+        id: undefined,
+        buttons: undefined,
+        bankStatement: [],
+        accountJournal :[],
+        statementOpen: [],
+        /** config */
+        statementConfig: [],
+        resUser: [],
+        statementUser: [],
+        /* init */
+        init: function(parent) {
+            this._super(parent);
+            this.buttons = parent.$buttons;
+        },
+
+        /* start */
+        start: function () {
+            var self = this
+            this.$el.click(function() {
+                self.fetchInitial();
+            });
+            self.buttons.click(function(e) {
+                /* C (Crear) */
+                if (e.target.accessKey === 'C')
+                    self.$el.css('display','none');
+                /* E (Editar) */
+                if (e.target.accessKey === 'E')
+                    self.$el.css('display','none');
+                /* S (Guarrdar) */
+                if (e.target.accessKey === 'S')
+                    self.$el.css('display','flex');
+                /* D (Cancelar) */
+                if (e.target.accessKey === 'D')
+                    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');
+            return bankStatementUser.call('eiru_transfers_get_user', {
+                context: new instanceWeb.CompoundContext()
+            });
+        },
+        /* statement Config */
+        fetchStatementConfigTransfer: function() {
+            var fields = ['id', 'name', 'delete_transfer_user_ids'];
+            var domain = [['active', '=', true]];
+            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;
+            self.fetchBankStatement(self.id).then(function(bankStatement) {
+                return bankStatement;
+            }).then(function(bankStatement) {
+                self.bankStatement = bankStatement;
+                return self.fetchStatementConfigTransfer();
+            }).then(function(statementConfig){
+                self.statementConfig = statementConfig;
+                return self.fetchGetUserLogin();
+            }).then(function(resUser) {
+                self.resUser = resUser;
+                if (!self.statementConfig.length){
+                    instanceWeb.notification.do_warn("Atencion", "No fue posible localizar las configuración de las cajas.");
+                    return  false;
+                }
+                if (!self.resUser.length){
+                    instanceWeb.notification.do_warn("Atencion", "No fue posible localizar el usuario.");
+                    return  false;
+                }
+                if (!self.bankStatement.length) {
+                    instanceWeb.notification.do_warn("Atencion", "No fue posible localizar el usuario.");
+                    return  false;
+                }
+
+                if (!(_.contains(self.statementConfig[0].delete_transfer_user_ids, self.resUser[0].id))){
+                    instanceWeb.notification.do_warn("Atencion", "El usuario no tiene autorización para eliminar las transferencia.");
+                    return false;
+                }
+                self.fetchCashBoxTransfer(self.id).then(function(cashBoxTransfer){
+                    return cashBoxTransfer;
+                }).then(function(cashBoxTransfer){
+                    self.cashBoxTransfer = cashBoxTransfer;
+                    console.log(cashBoxTransfer);
+                })
+                // 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 */
+        fetchBankStatement: function(id) {
+            var bankStatement = new instanceWeb.Model('account.bank.statement');
+            return bankStatement.call('get_account_bank_statement_utility',[id], {
+                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');
+            return cashBoxTransfer.call('eiru_transfers_get_chas_box_transfer',[id], {
+                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()
+        //     });
+        // },
+
+        /*Modal  Transfer */
+        showModalTransfer: function() {
+            var self = this;
+            var defer =$.Deferred();
+            var results = true;
+        //     var accountJournal =  self.accountJournal;
+        //
+        //     accountJournal.unshift({'name': '', 'id': ''});
+
+            var modal = QWeb.render('ModalStatementUtility.TransferDeleted');
+
+            $('.openerp_webclient_container').after(modal);
+            $('.expired-account-modal').modal();
+
+
+        //     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);
+        //
+        //     });
+
+            /* Click Cerrar */
+            $('.expired-account-modal').on('hidden.bs.modal', function(e) {
+                results = false;
+                defer.resolve(results);
+                self.removeModal(e);
+            });
+
+            return defer;
+        },
+    });
+
+    if (openerp.web && openerp.web.FormView) {
+        openerp.web.FormView.include({
+            load_record: function(record) {
+                this._super.apply(this, arguments);
+
+                if (this.model !== 'account.bank.statement')
+                    return;
+
+                openerp.parentInstanceStatementTransferDeleted = this;
+
+                if (openerp.widgetInstanceStatementTransferDeleted) {
+                    openerp.widgetInstanceStatementTransferDeleted.updateId(record.id);
+                    if (this.$el.find('.button-statement-transfer-deleted').length !== 0 )
+                        return ;
+                }
+
+
+                if (this.$el.find('.button-statement-transfer-deleted').length !== 0 )
+                    return;
+
+                openerp.widgetInstanceStatementTransferDeleted = new openerp.EiruStatementTransferDeleted(this);
+                var element =this.$el.find('.oe_form').find('.eiru-statement-utility');
+
+                openerp.widgetInstanceStatementTransferDeleted.appendTo(element[0]);
+                openerp.widgetInstanceStatementTransferDeleted.updateId(record.id);
+            }
+        });
+    }
+})();

+ 8 - 0
static/src/xml/eiru_statement_transfer_deleted.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<templates xml:space="preserve">
+    <t t-name="EiruStatementUtility.TransferDeleted">
+        <button class="button-statement-transfer-deleted eiru-statement-button oe_button oe_form_button oe_highlight">
+            <span>Eliminar Transf.</span>
+        </button>
+  </t>
+</templates>

+ 110 - 0
static/src/xml/modal/modal_statement_transfer_deleted.xml

@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template xml:space="preserve">
+    <t t-name="ModalStatementUtility.TransferDeleted">
+        <div class="modal in expired-account-modal" tabindex="-1" role="dialog">
+            <div class="modal-dialog modal-lg" role="document">
+                <div class="modal-content openerp">
+                    <div class="modal-header paymnets-invoice-header">
+                        <button type="button" class="close" data-dismiss="modal" aria-label="Close" aria-hidden="true">×</button>
+                        <h3 class="modal-title">Eliminar Transferencia</h3>
+                    </div>
+                    <!-- 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">
+                                    <thead >
+                                        <tr class="oe_list_header_columns"  >
+                                            <th class="oe_list_header_char oe_sortable"></th>
+                                            <th class="oe_list_header_char oe_sortable">Fecha</th>
+                                            <th class="oe_list_header_char oe_sortable">Caja Origen</th>
+                                            <th class="oe_list_header_char oe_sortable">Caja Destino</th>
+                                            <th class="oe_list_header_char oe_sortable">Valor</th>
+                                        </tr>
+                                    </thead>
+                                </table>
+                            </div>
+                            <div class="modal-item-statement-transfer">
+                                <table class="oe_list_content">
+                                    <tbody class="table-tbody">
+                                        <tr>
+                                        <!-- <tr t-foreach="moveLine" t-as="line"> -->
+                                            <td>
+                                                <!-- <t t-esc="line_value.id"/> -->
+                                            </td>
+                                            <td>
+                                                <span>25/06/2018</span>
+                                                <!-- <input type="checkbox" class="select-move-payments"></input> -->
+                                            </td>
+                                            <td>
+                                                <span>EFPYG/2018/0054</span>
+                                                <!-- <t t-esc="line_value.dateMaturity"/> -->
+                                            </td>
+                                            <td>
+                                                <span>EFPYG/2018/0054</span>
+                                                <!-- <t t-esc="line_value.debitFormat"/> -->
+                                            </td>
+                                            <td>
+                                                <span>$12.100.267.999</span>
+                                                <!-- <t t-esc="line_value.residualFormat"/> -->
+                                            </td>
+                                        </tr>
+                                    </tbody>
+                                </table>
+                            </div>
+                        </div>
+                        <div class="row">
+                            <div class="col-xs-6">
+                                <label class="statement-input-labe">Caja Origin</label>
+                                <div class="statement-input-group">
+                                    <input type="text" class="form-control statement-input-number input-letters" readonly="readonly"></input>
+                                </div>
+                            </div>
+                            <div class="col-xs-6">
+                                <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>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="row">
+                            <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>
+                                </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">
+                                        <span class="input-group-text"></span>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+
+                        <div class="row">
+                            <div class="col-xs-12">
+                                <label class="statement-input-labe">Motivo</label>
+                                <div class="statement-input-group">
+                                    <input type="text" class="form-control statement-input-number input-letters ref-transfer-deleted"></input>
+                                </div>
+                            </div>
+                        </div>
+
+                    </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_link dismmis-modal statement-utility-button" data-dismiss="modal">Salir</button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </t>
+</template>

+ 13 - 7
views/account_bank_statemente_config.xml

@@ -40,28 +40,34 @@
                         </page>
                         <!-- Transferencia -->
                         <page string="Transferencia de valores">
-                            <separator string="Permitir transferencia entre cajas"/>
+                            <separator string="Transferencia de cajas"/>
 
                             <div class="openerp oe_form oe_form_field">
-                                <span class="oe_form_text_content"></span>
+                                <span class="oe_form_text_content">Permite a los usuarios a realizar transferencia de valores para otras cajas.</span>
                             </div>
 
                             <group col="2">
-                                <group style="margin: 0px">
+                                <group style="margin: 0px" string="Cajas permitidas ">
                                     <label for="transfer_statement_ids" string="Tipos de caja permitidas" style="width: 200px"></label>
                                     <field name="transfer_statement_ids" widget="many2many_checkboxes" nolabel="1"/>
                                 </group>
-                                <group style="margin: 0px">
+                                <group style="margin: 0px" string="Usuarios permitidos ">
                                     <label for="transfer_user_ids" string="Usuarios permitidos" style="width: 200px"></label>
                                     <field name="transfer_user_ids" class="oe_inline"  widget="many2many_tags" options="{'no_create': True}" nolabel="1"/>
                                 </group>
                             </group>
-                            <group>
-                                <group>
-                                    <label for="transfer_negative_amount" string="Permitir Transferir sin saldo" style="width: 200px"></label>
+
+                            <group col='2'>
+                                <group string="Transferencia sin saldo en caja">
+                                    <label for="transfer_negative_amount" string="Permitir transferencia sin saldo" style="width: 200px"></label>
                                     <field name="transfer_negative_amount" class="oe_inline" nolabel="1"/>
                                 </group>
+                                <group string="Eliminar transferencia">
+                                    <label for="delete_transfer_user_ids" string="Usuarios permitidos" style="width: 200px"></label>
+                                    <field name="delete_transfer_user_ids" class="oe_inline"  widget="many2many_tags" options="{'no_create': True}" nolabel="1"/>
+                                </group>
                             </group>
+                            
                         </page>
                         <!-- Sacar Dinero -->
                         <page string="Sacar dinero">

+ 1 - 0
views/template.xml

@@ -4,6 +4,7 @@
             <xpath expr="." position="inside">
                 <link rel="stylesheet" href="/eiru_account_bank_statement_utility/static/src/css/style.css"/>
                 <script type="text/javascript" src="/eiru_account_bank_statement_utility/static/src/js/eiru_statement_transfer.js"/>
+                <script type="text/javascript" src="/eiru_account_bank_statement_utility/static/src/js/eiru_statement_transfer_deleted.js"/>
                 <!-- <script type="text/javascript" src="/eiru_account_bank_statement_utility/static/src/js/import_statement.js"/> -->
             </xpath>
         </template>