Browse Source

[ADD] Configuraciones de permiso y transferencia

adrielso 6 years ago
parent
commit
11cfcbbba0

+ 1 - 1
__openerp__.py

@@ -12,9 +12,9 @@
     'data': [
         'views/template.xml',
         'security/ir.model.access.csv',
+        'views/account_bank_statement_type.xml',
         'views/eiru_statement_utility.xml',
         'views/import_statement.xml',
-        'views/account_bank_statement_type.xml',
         'views/account_bank_statemente_config.xml',
     ],
     'qweb': [

+ 89 - 66
models/account_bank_statement.py

@@ -4,77 +4,100 @@ from openerp import models, fields, tools, api
 class AccountBankStatement(models.Model):
     _inherit = 'account.bank.statement'
 
-    type_statement = fields.Selection([('normal', 'Normal'),('general', 'General')],'Tipo de Caja ', default="normal", help="Tipo de caja")
-
     @api.model
-    def get_statement_point_of_sale(self, id):
-        accountStatement = self.env['account.bank.statement'].browse(id)
-        decimal_precision = self.env['decimal.precision'].precision_get('Account')
-        if (not accountStatement):
-            return False
-
-        statementPointOfSale = self._get_statement_point_of_sale(accountStatement)
-        if (not statementPointOfSale):
-            return False
-
-        statementLine = []
-
-        for line in statementPointOfSale:
-            lineStatement = self.env['account.bank.statement.line'].search([('name', '=', line['name'])])
-            if (not lineStatement):
-                amount = line['amount']
+    def _default_type_statement(self):
+        typeStatement =  self.env['account.bank.statement.type'].search([('is_default', '=', True)],limit=1)
+        return typeStatement.id if (typeStatement) else ''
 
-                statementLine.append([0, False, {
-                    'name': line['name'],
-                    'ref' : 'Responsable/'+line['userName'],
-                    'amount': round(float(amount), decimal_precision),
-                    'journal_id': accountStatement.journal_id.id,
-                    'account_id': accountStatement.journal_id.internal_account_id.id,
-                    'statement_id': accountStatement.id,
-                    'date': line['date'],
-                }])
+    type_statement = fields.Many2one('account.bank.statement.type', string='Tipo de Caja', ondelete='restrict')
 
-        line = []
+    _defaults = {
+        'type_statement': _default_type_statement,
+    }
 
-        if (not statementLine):
-            return False
-
-        line = accountStatement.write({'line_ids': statementLine})
-        if (not line):
+    @api.model
+    def update_statement_type_defualt(self):
+        type =  self.env['account.bank.statement.type'].search([('is_default', '=', True)],limit=1)
+        statement = self.env['account.bank.statement'].search([('type_statement', '=', False)])
+        if (not statement):
             return False
 
-        return len(statementLine)
-
-    '''
-        Get Account Bank Statement Point of Sale
-    '''
-    def _get_statement_point_of_sale(self, statement):
-        statementPoint = self.env['account.bank.statement'].search([
-                                                                    ('date','=',statement.date),
-                                                                    ('journal_id.id', '=',statement.journal_id.id),
-                                                                    ('period_id.id', '=', statement.period_id.id),
-                                                                    ('type_statement', '=', 'normal'),
-                                                                    ('state', '=', 'confirm')], order='id')
-        pointSatatement = []
-        for statementP in statementPoint:
-            amount = 0.0
-            for line in statementP.line_ids:
-                amount += line.amount
-
-            if (statementP.balance_start > 0):
-                amount += statementP.balance_start
+        for statementUpdate in statement:
+            statementUpdate.write({
+                'type_statement': type.id
+            })
 
-            if (amount > 0):
-                pointSatatement.append({
-                    'name': statementP.name,
-                    'date': statementP.date,
-                    'journalId': statementP.journal_id.id,
-                    'periodId': statementP.period_id.id,
-                    'userId': statementP.user_id.id,
-                    'userName': statementP.user_id.name,
-                    'posSessionId': statementP.pos_session_id.id,
-                    'posSessionName': statementP.pos_session_id.name,
-                    'amount': amount
-                })
 
-        return pointSatatement
+    # @api.model
+    # def get_statement_point_of_sale(self, id):
+    #     accountStatement = self.env['account.bank.statement'].browse(id)
+    #     decimal_precision = self.env['decimal.precision'].precision_get('Account')
+    #     if (not accountStatement):
+    #         return False
+    #
+    #     statementPointOfSale = self._get_statement_point_of_sale(accountStatement)
+    #     if (not statementPointOfSale):
+    #         return False
+    #
+    #     statementLine = []
+    #
+    #     for line in statementPointOfSale:
+    #         lineStatement = self.env['account.bank.statement.line'].search([('name', '=', line['name'])])
+    #         if (not lineStatement):
+    #             amount = line['amount']
+    #
+    #             statementLine.append([0, False, {
+    #                 'name': line['name'],
+    #                 'ref' : 'Responsable/'+line['userName'],
+    #                 'amount': round(float(amount), decimal_precision),
+    #                 'journal_id': accountStatement.journal_id.id,
+    #                 'account_id': accountStatement.journal_id.internal_account_id.id,
+    #                 'statement_id': accountStatement.id,
+    #                 'date': line['date'],
+    #             }])
+    #
+    #     line = []
+    #
+    #     if (not statementLine):
+    #         return False
+    #
+    #     line = accountStatement.write({'line_ids': statementLine})
+    #     if (not line):
+    #         return False
+    #
+    #     return len(statementLine)
+    #
+    # '''
+    #     Get Account Bank Statement Point of Sale
+    # '''
+    # def _get_statement_point_of_sale(self, statement):
+    #     statementPoint = self.env['account.bank.statement'].search([
+    #                                                                 ('date','=',statement.date),
+    #                                                                 ('journal_id.id', '=',statement.journal_id.id),
+    #                                                                 ('period_id.id', '=', statement.period_id.id),
+    #                                                                 ('type_statement', '=', 'normal'),
+    #                                                                 ('state', '=', 'confirm')], order='id')
+    #     pointSatatement = []
+    #
+    #     for statementP in statementPoint:
+    #         amount = 0.0
+    #         for line in statementP.line_ids:
+    #             amount += line.amount
+    #
+    #         if (statementP.balance_start > 0):
+    #             amount += statementP.balance_start
+    #
+    #         if (amount != 0):
+    #             pointSatatement.append({
+    #                 'name': statementP.name,
+    #                 'date': statementP.date,
+    #                 'journalId': statementP.journal_id.id,
+    #                 'periodId': statementP.period_id.id,
+    #                 'userId': statementP.user_id.id,
+    #                 'userName': statementP.user_id.name,
+    #                 # 'posSessionId': statementP.pos_session_id.id,
+    #                 # 'posSessionName': statementP.pos_session_id.name,
+    #                 'amount': amount
+    #             })
+    #
+    #     return pointSatatement

+ 8 - 2
models/account_bank_statement_config.py

@@ -6,11 +6,17 @@ class accountBankStatementConfig(models.Model):
 
     name = fields.Char('Name', required=True, default="Configuración Cajas")
     active = fields.Boolean('Active', default=True)
+    ## 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')
-    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')
-    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')
     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")
+    ## 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

+ 5 - 3
models/account_bank_statement_type.py

@@ -8,18 +8,20 @@ class accountBankStatementType(models.Model):
     active = fields.Boolean('Active', default=True)
     code = fields.Char('Code', size=32, required=True, select=True)
     comment = fields.Text('Description')
+    is_default = fields.Boolean('default')
+
 
     @api.model
     def createDefaultState(self):
         typeStatement = [
-                {'name': 'Caja Chica', 'active': True, 'code': 'CHICA', 'comment': 'La caja chica es la caja que manipularan los cajeros durante un periodo de tiempo definido.'},
-                {'name':'Caja General', 'active':True, 'code': 'GENERAL', 'comment': 'La caja generar sera manipulado por el gerente, y centralizara todo los movimiento de las caja chicas.'}
+                {'name': 'Caja Chica', 'active': True, 'code': 'CHICA', 'comment': 'La caja chica es la caja que manipularan los cajeros durante un periodo de tiempo definido.', 'is_default': True},
+                {'name':'Caja General', 'active':True, 'code': 'GENERAL', 'comment': 'La caja generar sera manipulado por el gerente, y centralizara todo los movimiento de las caja chicas.','is_default': False}
         ]
 
         for typeSt in typeStatement:
             statementType = self.env['account.bank.statement.type'].search([('code', '=', typeSt['code'])])
 
-            types = {'name': typeSt['name'], 'active': typeSt['active'], 'code': typeSt['code'], 'comment': typeSt['comment']}
+            types = {'name': typeSt['name'], 'active': typeSt['active'], 'code': typeSt['code'], 'comment': typeSt['comment'], 'is_default': typeSt['is_default']}
 
             if (not statementType):
                 statementType.create(types)

+ 17 - 4
models/account_bank_statement_utility.py

@@ -37,8 +37,8 @@ class AccountBankStatementUtility(models.Model):
             'periodId': bankStatement.period_id.id,
             'userId': bankStatement.user_id.id,
             'userName': bankStatement.user_id.name,
-            'posSessionName': bankStatement.pos_session_id.name,
-            'typeStatement': bankStatement.type_statement,
+            'typeStatement': bankStatement.type_statement.id,
+            'typeStatementName': bankStatement.type_statement.name,
             'state': bankStatement.state,
             'amount': amount,
             'currencystatement': {
@@ -66,7 +66,8 @@ class AccountBankStatementUtility(models.Model):
         journalUtility = []
         for journal in accountJournal:
 
-            domainStatment = [('id','!=',bankStatement.id),('journal_id','in',[journal.id]),('date','=',bankStatement.date),('period_id','=',bankStatement.period_id.id)]
+            domainStatment = [('id','!=',bankStatement.id),('journal_id','in',[journal.id])]
+            # domainStatment = [('id','!=',bankStatement.id) ,('journal_id','in',[journal.id]),('date','=',bankStatement.date),('period_id','=',bankStatement.period_id.id)]
 
             if (journal.type == 'cash'):
                 domainStatment.append(('state','=', 'open'))
@@ -83,7 +84,8 @@ class AccountBankStatementUtility(models.Model):
                         'id': statementOpen.id,
                         'journalId': statementOpen.journal_id.id,
                         'date': statementOpen.date,
-                        'typeStatement': statementOpen.type_statement,
+                        'typeStatementId': statementOpen.type_statement.id,
+                        'typeStatementName': statementOpen.type_statement.name,
                         'userId': statementOpen.user_id.id,
                         'userName': statementOpen.user_id.name,
                         'name': statementOpen.name,
@@ -102,6 +104,17 @@ class AccountBankStatementUtility(models.Model):
 
         return journalUtility
 
+    '''
+        Get User Login
+    '''
+    @api.model
+    def eiru_transfers_get_user(self):
+        return  [{
+            'id': user.id,
+            'name': user.name
+        } for user in self.env.user]
+
+
     '''       _____                     __
              |_   _| __ __ _ _ __  ___ / _| ___ _ __ ___
                | || '__/ _` | '_ \/ __| |_ / _ \ '__/ __|

+ 75 - 16
static/src/js/eiru_statement_transfer.js

@@ -12,15 +12,19 @@
         bankStatement: [],
         accountJournal :[],
         statementOpen: [],
-
+        /** config */
+        statementConfig: [],
+        resUser: [],
+        statementUser: [],
         /* init */
         init: function(parent) {
             this._super(parent);
             this.buttons = parent.$buttons;
         },
+
         /* start */
         start: function () {
-            var self = this;
+            var self = this
             this.$el.click(function() {
                 self.fetchInitial();
             });
@@ -39,42 +43,87 @@
                     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.parentInstanceStatementTransfer.reload();
         },
+
         /* Description: Función para remover el modal */
         removeModal: function() {
             $('.expired-account-modal').remove();
             $('.modal-backdrop').remove();
         },
-        /* Método inicial  */
+
+        /*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','transfer_user_ids','transfer_statement_ids','transfer_negative_amount'];
+            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;
-                if (!bankStatement || !bankStatement.length)
-                    return false;
+                return self.fetchStatementConfigTransfer();
+            }).then(function(statementConfig){
+                self.statementConfig = statementConfig;
+                return self.fetchGetUserLogin();
+            }).then(function(resUser) {
+                self.resUser = resUser;
+                if (!!self.statementConfig.length && !!self.resUser.length && !!self.bankStatement.length) {
+                    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 (bankStatement[0].amount <= 0) {
-                    instanceWeb.notification.do_warn("Atencion", "La caja seleccionada no tiene saldo disponible.");
-                    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 chica abierta.");
+                        instanceWeb.notification.do_warn("Atencion", "No tienes ninguna caja abierta.");
                         return false;
                     }
+
                     return self.showModalTransfer();
                 });
             });
@@ -130,7 +179,7 @@
             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');
+            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');
@@ -169,14 +218,15 @@
             /* amountTransfer. focusout*/
             amountTransfer.focusout(function(e) {
                 var amountAvailable = accounting.unformat(statementAmount.val(),currency.decimalSeparator);
-                var amount = accounting.unformat(amountTransfer.val(),currency.decimalSeparator);
+                var amount = Math.abs(accounting.unformat(amountTransfer.val(),currency.decimalSeparator));
 
-                if (amountAvailable < amount) {
+                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));
             });
 
@@ -209,11 +259,20 @@
                     amountTransfer.focus();
                     return false;
                 }
+
                 if (amountAvailable < 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;
+                    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 */

+ 1 - 23
static/src/xml/modal/modal_statement_transfer.xml

@@ -4,34 +4,12 @@
         <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="widget-content widget-loading-payments">
-                        <i class='fa fa-cog fa-spin fa-3x fa-fw'></i>
-                    </div> -->
-                    <!-- title  -->
                     <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">Transferencia de valores</h3>
                     </div>
                     <!-- Body -->
                     <div class="modal-body">
-                        <!-- Forma de Transferencia [Transferencia - Poner dinero - Sacar Dinero ] -->
-                        <!-- <div class="row">
-                             <h3 class="from-title-h3">Forma de Transferencia</h3>
-                        </div>
-                        <div class="row">
-                            <div class="col-xs-4 transfer-check">
-                                <input type='checkbox' class="transfer"></input>
-                                <label class="statement-radio-label">Transferencia</label>
-                            </div>
-                            <div class="col-xs-4 transfer-check">
-                                <input type="checkbox" class="add-money"></input>
-                                <label class="statement-radio-label">Poner dinero</label>
-                            </div>
-                            <div class="col-xs-4 transfer-check">
-                                <input type="checkbox" class="retire-money"></input>
-                                <label class="statement-radio-label">Sacar dinero</label>
-                            </div>
-                        </div> -->
 
                         <div class="row">
                             <h3 class="from-title-h3">Transferencia de caja</h3>
@@ -65,7 +43,7 @@
                             <div class="col-xs-6">
                                 <label class="statement-input-labe">Caja a Transferir: </label>
                                 <div class="statement-input-group">
-                                    <select class="statement-input-number statement-open">
+                                    <select class="statement-input-number statement-open-selected">
                                     </select>
                                 </div>
                             </div>

+ 84 - 36
views/account_bank_statemente_config.xml

@@ -14,47 +14,95 @@
                             </h1>
                         </div>
                     </group>
-                    <!-- import statement payments -->
-                    <group string="Importar pagos en caja" col="2">
-                        <group style="margin: 0px">
-                            <field name="import_statement_payments" string="Forma de importar pagos en caja" style="width: 200px"/>
-                        </group>
-                        <group style="margin: 0px">
-                            <field name="import_statement_payslip" string="Forma de importar pagos de Nominas en caja" style="width: 200px"/>
-                        </group>
-                    </group>
                     <group col="2">
                         <group>
                             <field name="active" string="Activo"/>
                         </group>
                     </group>
-                    <!-- Transferencia  -->
-                    <group string="Permitir transferencia entre cajas" col="2">
-                        <group style="margin: 0px">
-                            <field name="transfer_statement_ids" widget="many2many_checkboxes" string="Tipos de caja permitidas"/>
-                        </group>
-                        <group style="margin: 0px">
-                            <field name="transfer_user_ids" class="oe_inline" string="Usuarios permitidos" widget="many2many_tags" options="{'no_create': True}"/>
-                        </group>
-                    </group>
-                    <!-- Sacar Dinero  -->
-                    <group string="Permitir sacar dinero" col="2">
-                        <group style="margin: 0px">
-                            <field name="output_cash_box_statement_ids" widget="many2many_checkboxes" string="Tipos de caja permitidas"/>
-                        </group>
-                        <group style="margin: 0px">
-                            <field name="output_cash_box_user_id" string="Usuarios permitidos" widget="many2many_tags" options="{'no_create': True}"/>
-                        </group>
-                    </group>
-                    <!-- poner dinero  -->
-                    <group string="Permitir poner dinero" col="2">
-                        <group style="margin: 0px">
-                            <field name="input_cash_box_statement_ids" widget="many2many_checkboxes" string="Tipos de caja permitidas"/>
-                        </group>
-                        <group style="margin: 0px">
-                            <field name="input_cash_box_user_id" string="Usuarios permitidos" widget="many2many_tags" options="{'no_create': True}"/>
-                        </group>
-                    </group>
+
+                    <notebook>
+                        <!-- Pagos && RRHH -->
+                        <page string="Importar pagos &amp; RRHH en caja">
+                            <separator string="Forma de importar pagos en caja"/>
+
+                            <div class="openerp oe_form oe_form_field">
+                                <span class="oe_form_text_content"></span>
+                            </div>
+
+                            <group style="margin: 0px">
+                                <label for="import_statement_payments" string="Pagos ventas/compras/gastos" style="width: 200px"></label>
+                                <field name="import_statement_payments"  style="width: 200px" nolabel="1" />
+                            </group>
+                            <group style="margin: 0px">
+                                <label for="import_statement_payslip" string="Pagos de nominas" style="width: 200px"></label>
+                                <field name="import_statement_payslip"  style="width: 200px" nolabel="1"/>
+                            </group>
+                        </page>
+                        <!-- Transferencia -->
+                        <page string="Transferencia de valores">
+                            <separator string="Permitir transferencia entre cajas"/>
+
+                            <div class="openerp oe_form oe_form_field">
+                                <span class="oe_form_text_content"></span>
+                            </div>
+
+                            <group col="2">
+                                <group style="margin: 0px">
+                                    <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">
+                                    <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>
+                                    <field name="transfer_negative_amount" class="oe_inline" nolabel="1"/>
+                                </group>
+                            </group>
+                        </page>
+                        <!-- Sacar Dinero -->
+                        <page string="Sacar dinero">
+                            <separator string="Permitir sacar dinero"/>
+
+                            <div class="openerp oe_form oe_form_field">
+                                <span class="oe_form_text_content"></span>
+                            </div>
+
+                            <group col="2">
+                                <group style="margin: 0px">
+                                    <label for="output_cash_box_statement_ids" string="Tipos de caja permitidas" style="width: 200px"></label>
+                                    <field name="output_cash_box_statement_ids" widget="many2many_checkboxes" nolabel="1"/>
+                                </group>
+                                <group style="margin: 0px">
+                                    <label for="output_cash_box_user_id" string="Usuarios permitidos" style="width: 200px"></label>
+                                    <field name="output_cash_box_user_id" widget="many2many_tags" options="{'no_create': True}" nolabel="1"/>
+                                </group>
+                            </group>
+
+                        </page>
+                        <!-- Poner Dinero -->
+                        <page string="Poner dinero">
+                            <separator string="Permitir poner dinero"/>
+
+                            <div class="openerp oe_form oe_form_field">
+                                <span class="oe_form_text_content"></span>
+                            </div>
+
+                            <group col="2">
+                                <group style="margin: 0px">
+                                    <label for="input_cash_box_statement_ids" string="Tipos de caja permitidas" style="width: 200px"></label>
+                                    <field name="input_cash_box_statement_ids" widget="many2many_checkboxes"  nolabel="1"/>
+                                </group>
+                                <group style="margin: 0px">
+                                    <label for="input_cash_box_user_id" string="Usuarios permitidos" style="width: 200px"></label>
+                                    <field name="input_cash_box_user_id" widget="many2many_tags" options="{'no_create': True}" nolabel="1"/>
+                                </group>
+                            </group>
+                        </page>
+                    </notebook>
                 </form>
             </field>
         </record>

+ 1 - 0
views/import_statement.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <openerp>
 	<data>
+		<function model="account.bank.statement" name="update_statement_type_defualt"/>
 		<!-- Registros de caja -->
         <record id="eiru_import_statement_cash" model="ir.ui.view">
             <field name="name">eiru.import.statement.cash</field>

+ 1 - 1
views/template.xml

@@ -4,7 +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/import_statement.js"/>
+                <!-- <script type="text/javascript" src="/eiru_account_bank_statement_utility/static/src/js/import_statement.js"/> -->
             </xpath>
         </template>
     </data>