Selaa lähdekoodia

[FIX] Carga de la pagina

adrielso 6 vuotta sitten
vanhempi
commit
0de6bef219

+ 175 - 20
model/payslip_faults.py

@@ -1,11 +1,44 @@
 # -*- coding: utf-8 -*-
-
 from openerp import api, fields, models
 from openerp.exceptions import except_orm
+from datetime import datetime
+from pytz import timezone
+
+DATE_FORMAT = '%Y-%m-%d'
 
 class HrPayslip(models.Model):
     _inherit = 'hr.payslip'
-    #Recalcular las lineas de la nomina
+
+    '''
+        GET Statement
+    '''
+    @api.model
+    def get_statement_available(self):
+        '''
+            Obtener las caja abierta/nueva  del usuario
+        '''
+        BankStatement = []
+        for statement in self.env['account.bank.statement'].search([('state','!=','confirm'),('user_id','=',self.env.user.id)]):
+
+            if (statement.journal_id.type == 'cash' and statement.state =='draft'):
+                continue
+
+            BankStatement.append({
+                'id': statement.id,
+                'name': statement.name,
+                'journalID': statement.journal_id.id,
+                'userId': statement.user_id.id,
+                'date': statement.date,
+                'createDate': statement.create_date,
+                'periodId': statement.period_id.id,
+                'state': statement.state,
+                'journalType': statement.journal_id.type
+            })
+
+        return BankStatement
+    '''
+        Recalcular las lineas de la nomina
+    '''
     @api.model
     def recompute_sheet(self, values):
         payslip = self.env['hr.payslip'].browse(values)
@@ -80,7 +113,10 @@ class HrPayslip(models.Model):
             line_commission.unlink()
 
         return True if payslip else False
-    # Crear nueva falta
+
+    '''
+        Crear nueva falta
+    '''
     @api.model
     def join_payslip_faults(self, values):
         payslip = self.env['hr.payslip'].browse(values['id'])
@@ -101,14 +137,20 @@ class HrPayslip(models.Model):
         recompute_sheet = self.recompute_sheet(values['id'])
 
         return True if recompute_sheet else False
-    # Eliminar falta
+
+    '''
+        Eliminar falta
+    '''
     @api.model
     def unlink_payslip_worked(self, values):
         worked_days = self.env['hr.payslip.worked_days'].search([('payslip_id', '=', values['id']),('id', '=', values['worked_id'])])
         unlink_work = worked_days.unlink()
 
         return True if unlink_work else False
-    # Modificar Falta
+
+    '''
+        Modificar Falta
+    '''
     @api.model
     def write_payslip_worked(self, values):
         worked_days = self.env['hr.payslip.worked_days'].search([('payslip_id', '=', values['id']),('id', '=', values['worked_id'])])
@@ -122,33 +164,142 @@ class HrPayslip(models.Model):
 
         return True if worked_days else False
 
-    # Crear Adelanto/comision
+    '''
+        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)
+
+    '''
+        check_module Installed
+    '''
+    def check_module(self, module_name):
+        '''
+            Método para verificar si los modulo están instalado
+            :param module_name : Nombre del moduloself.
+            :return:  True 'Modulo instalado', False 'no instalado'
+        '''
+        module = self.env['ir.module.module'].search([('name', '=', module_name), ('state', '=', 'installed')])
+        return len(module) != 0
+
+    '''
+        Create payslip input
+    '''
+    def cretae_eiru_payslip_input(self, values):
+        return self.env['hr.payslip.input'].create(values)
+
+    '''
+        Crear Adelanto/comision
+    '''
     @api.model
     def create_payslip_input(self,values):
+        date_server = self.get_server_datetime()
+        resUser = self.env.user.id
+        '''
+        Values[
+            id
+            salaryRule
+            details
+            amount
+            journal
+            statementId
+            statementConfigId
+        ]
+        '''
+        # import web_pdb; web_pdb.set_trace()
         payslip = self.env['hr.payslip'].browse(values['id'])
-        payslip_input = self.env['hr.payslip.input']
+        if (not payslip):
+            return False
 
         input_line = {
             'name': values['details'],
-            'code': values['salary_rule'],
-            'amount': values['ammount_input'],
+            'code': values['salaryRule'],
+            'amount': values['amount'],
             'contract_id': payslip.contract_id.id,
             'sequence': 10,
             'payslip_id': payslip.id
         }
+        ## Create line
+        inputPayslip = self.cretae_eiru_payslip_input(input_line)
 
-        input_payslip = payslip_input.create(input_line)
+        # input_payslip = payslip_input.create(input_line)
 
-        if (input_payslip) and (values['salary_rule'] == 'ADL'):
-            value_statement = {
-                'id_imput': input_payslip.id,
-                'journal_id': values['journal'],
-                'journal_ref': values['journal_ref']
-            }
+        if (inputPayslip) and (values['salaryRule'] == 'ADL'):
+            statementId = None
+            if (self.check_module('eiru_account_bank_statement_utility')):
+                statementConfig = self.env['account.bank.statement.config'].browse(values['statementConfigId'])
+                if (statementConfig):
+                    if (statementConfig.import_statement_payslip == 'manual_import'):
+                        statementId = values['statementId']
+
+
+            # valueStatement = {
+            #     'imputID': InputPayslip.id,
+            #     'journalId': values['journal'],
+            #     'statementId': statementId
+            # }
+            statementBank = self.create_eiru_bank_statement(values['journal'], statementId, date_server, resUser)
+            statementBankLine = self.create_eiru_bank_statement_line(date_server, statementBank, inputPayslip.id,payslip.id)
+
+        return  True
+
+    def create_eiru_bank_statement(self, JournalId, statementId, date_server, resUser):
+        accountJournal = self.env['account.journal'].browse(JournalId)
+        period = self.env['account.period'].search([('date_start', '<=', date_server),('date_stop', '>=', date_server)])
+
+        domain = [('journal_id', '=', JournalId),('user_id', '=', resUser)]
+        if (statementId):
+            domain.append(('id', '=', statementId))
+        else:
+            domain.append(('date', '=', date_server))
+
+        bank_statement = self.env['account.bank.statement'].search(domain)
+
+        bank = {
+            'journal_id': accountJournal.id,
+            'period_id': period.id,
+            'date': date_server,
+            'user_id': resUser,
+            'state': 'open' if accountJournal.type == 'cash' else 'draft',
+
+        }
+        bankStatement = bank_statement
+
+        if bank_statement:
+            if len(bank_statement) != 1:
+                bankStatement = bank_statement[len(bank_statement) -1]
+
+            bankStatement.write({'state': 'open' if accountJournal.type == 'cash' else 'draft'})
+        else:
+            bankStatement = bank_statement.create(bank)
 
-            self.bank_statement_import(value_statement)
+        return bankStatement
+
+    def create_eiru_bank_statement_line(self, dateServer, statement, payslipInputID, payslipId):
+        payslip_input = self.env['hr.payslip.input'].browse(payslipInputID)
+        payslip = self.env['hr.payslip'].browse(payslipId)
+
+        bank_statement_line = {
+            'date' : dateServer,
+            'statement_id' : statement.id,
+            'journal_id': statement.journal_id.id,
+            'amount': payslip_input.amount,
+            'account_id': statement.journal_id.internal_account_id.id,
+            'ref': payslip_input.code,
+            'name': payslip_input.name,
+            'partner_id': payslip.employee_id.address_home_id.id,
+            'note': payslip_input.id,
+        }
+        statementLine = self.env['account.bank.statement.line'].create(bank_statement_line)
 
-        return True if input_payslip else  False
+        return statementLine
 
     @api.model
     def bank_statement_import(self, values):
@@ -196,7 +347,9 @@ class HrPayslip(models.Model):
 
         return True if statement_line else False
 
-    # Eliminar Comision
+    '''
+        Eliminar Comision
+    '''
     @api.model
     def unlink_payslip_input(self,values):
         payslip_input =self.env['hr.payslip.input'].search([('id', '=', values['input_id']),('payslip_id', '=', values['id'])])
@@ -204,7 +357,9 @@ class HrPayslip(models.Model):
 
         return True if payslip_input else False
 
-    # Actualizar Comision
+    '''
+        Actualizar Comision
+    '''
     @api.model
     def write_payslip_input(self, values):
         paylip_input = self.env['hr.payslip.input'].search([('payslip_id', '=', values['id']),('id', '=', values['input_id'])])

+ 37 - 14
static/src/css/style.css

@@ -1,25 +1,48 @@
-.detallis-employee-label {
-    float: left;
-    width: 130px;
+.advancement-employee-label {
+    width: 150px;
     height: 30px;
-    padding-bottom: 8px;
-    font-size: 13px;
+    padding-top: 5px;
+    padding-bottom: 5px;
+    font-size: 17px;
 }
-.detallis-employee-input {
-    width: calc(100% - 130px);
-    color: #ccc;
+.advancement-employee-input {
+    width: calc(100% - 150px);
+    height: 30px;
+    padding-top: 5px;
+    padding-bottom: 5px;
+    float: right;
 }
-.detallis-employee-separator {
-    margin-top: 10px;
-    margin-bottom: 5px;
+.advancement-input {
+    width: 100%;
+    height: 30px;
+    font-size: 14pt;
 }
-.detallis-employee-input.number {
+.input-number {
     text-align: right;
     padding-right: 20px;
 }
-.faults-input {
-    width: 100%;
+.advancement-separator-hr {
+    border: 0px;
+    margin-top: 5px;
+    margin-bottom: 5px;
 }
+.statement-open {
+    display: none;
+}
+.is-advancement {
+    display: none;
+}
+/* .detallis-employee-separator {
+    margin-top: 10px;
+    margin-bottom: 5px;
+} */
+/* .detallis-employee-input.number {
+    text-align: right;
+    padding-right: 20px;
+} */
+/* .faults-input {
+    width: 100%;
+} */
 .payslip-footer {
     text-align: right !important;
     padding-right: 30px;

+ 203 - 76
static/src/js/payslip_advancement.js

@@ -18,6 +18,10 @@
         payslipInput: [],
         accountJournal: [],
         statementLine: [],
+        statementAvailable: [],
+        /* Config */
+        statementConfig: [],
+        eiruAccountBankUtatementUtility: [],
         /* init */
         init: function (parent) {
             this._super(parent);
@@ -66,6 +70,26 @@
         reloadLine: function() {
             openerp.parentInstance.reload();
         },
+        /* Verificar modulo instalados */
+        fetchVerifyModule: function(module) {
+            if (!module)
+                return [];
+            var moduleModule =new openerp.web.Model('ir.module.module');
+            var fields = ['id', 'name', 'state'];
+            var domain = [['name', '=', module], ['state', '=', 'installed']];
+            return moduleModule.query(fields).filter(domain).all();
+        },
+        /* statement Config */
+        fetchStatementConfig: function() {
+            var self = this;
+            if (!self.eiruAccountBankUtatementUtility.length)
+                return [];
+
+            var fields = ['id','name', 'active', 'import_statement_payslip'];
+            var domain = [['active', '=', true]];
+            var statementConfig = new openerp.web.Model('account.bank.statement.config');
+            return statementConfig.query(fields).filter(domain).all();
+        },
         /* Description: Función para recalcular las faltas */
         recomputeSheet: function() {
              var self = this;
@@ -79,6 +103,11 @@
              });
 
              return defer;
+             // var self = this;
+             // var recomputePayslip = new openerp.web.Model('hr.payslip');
+             // return recomputePayslip.call('recompute_sheet',[ self.id ], {
+             //         context: new openerp.web.CompoundContext()
+             // });
          },
         /* Description: Función para remover el modal */
         removeModal: function() {
@@ -97,6 +126,14 @@
             var resCurrecy = new openerp.web.Model('res.currency');
             return resCurrecy.query(fields).filter(domain).all();
         },
+        /* Get statement Available*/
+        fetchStatementAvailable: function() {
+            var self = this;
+            var statementAvailable = new openerp.web.Model('hr.payslip');
+            return statementAvailable.call('get_statement_available',{
+                    context: new openerp.web.CompoundContext()
+            });
+        },
         /* Description: Filtar moneda de la compania */
         getCurrencyCompany: function(id) {
             var self = this;
@@ -104,6 +141,13 @@
                 return item.id === id;
             });
          },
+         /* GET statement JournalId*/
+         getStatementeJournal: function(journalId) {
+             var self = this;
+             return _.filter(self.statementAvailable, function(item){
+                 return item.journalID === journalId;
+             });
+         },
         /* Description: destroy objects*/
         destroyObjects: function() {
             var self = this;
@@ -116,10 +160,14 @@
             self.resCurrency = [];
             self.payslipInput =[];
         },
-        /* ---------------------------------------------------------------------
-        ** Description : Crear Adealnto/ comision de Funcionario
-        ** -------------------------------------------------------------------*/
-        /* Description: Funcion Inicial Crear Comicion/Adelanto */
+        /*******************************************************************************************
+        Crear Adealnto / comision de Funcionario
+             _       _            _       _               ____                _     _
+            / \   __| | ___  __ _| |_ __ | |_ ___        / ___|___  _ __ ___ (_)___(_) ___  _ __
+           / _ \ / _` |/ _ \/ _` | | '_ \| __/ _ \ _____| |   / _ \| '_ ` _ \| / __| |/ _ \| '_ \
+          / ___ \ (_| |  __/ (_| | | | | | || (_) |_____| |__| (_) | | | | | | \__ \ | (_) | | | |
+         /_/   \_\__,_|\___|\__,_|_|_| |_|\__\___/       \____\___/|_| |_| |_|_|___/_|\___/|_| |_|
+        ********************************************************************************************/
         fetchAddAdvancement: function() {
             var self = this;
             self.fetchPayslip().then(function(hrPayslip) {
@@ -141,6 +189,15 @@
                 return self.fetchJournal();
             }).then(function(accountJournal) {
                 self.accountJournal = accountJournal;
+                return self.fetchVerifyModule('eiru_account_bank_statement_utility');
+            }).then(function(eiruAccountBankUtatementUtility) {
+                self.eiruAccountBankUtatementUtility= eiruAccountBankUtatementUtility;
+                return self.fetchStatementConfig();
+            }).then(function(statementConfig) {
+                self.statementConfig= statementConfig;
+                return self.fetchStatementAvailable();
+            }).then(function(statementAvailable) {
+                self.statementAvailable = statementAvailable;
                 return self.showPayslipAddAdvancement();
             }).then(function() {
                 return self.recomputeSheet();
@@ -179,111 +236,181 @@
         /* Description: Modal crear Adealnto/ comision de Funcionario */
         showPayslipAddAdvancement: function() {
             var self = this;
-            var payslipLine = self.payslipLine.shift();
-            var hrPayslip = self.hrPayslip.shift();
             var defer = $.Deferred()
-            var company = self.resCompany.shift();
+            var results = true;
+            var payslipLine = self.payslipLine[0];
+            var hrPayslip = self.hrPayslip[0];
+            var company = self.resCompany[0];
             var currency = self.getCurrencyCompany(company.currency_id[0]).shift();
             var amount_Adl = 0;
+            var salaryRule = self.salaryRule;
+            var journal = self.accountJournal;
+
+            if (!!salaryRule){
+                salaryRule.unshift({
+                    'code': '',
+                    'name': ''
+                });
+            }
+            if (!!journal){
+                journal.unshift({
+                    'id':'',
+                    'name':'',
+                });
+            }
             var employeData = [
                 {
                     'employe_name': hrPayslip.employee_id[1],
                     'salari': accounting.formatMoney(payslipLine.amount, currency.symbol,currency.decimal_places, currency.thousands_separator, currency.decimal_separator)
                 }
             ];
+
             var modalAdvancement = QWeb.render('EiruPayslipAddAdvancement',{
                 employeData: employeData,
-                salaryRule: self.salaryRule,
+                salaryRule: salaryRule,
                 journal: self.accountJournal
             });
-
             $('.openerp_webclient_container').after(modalAdvancement);
             $('.expired-account-modal').modal();
 
-            /* Close modal */
-            $('.expired-account-modal').on('hidden.bs.modal', function (e) {
-                defer.resolve(true);
-                self.removeModal(e);
-            });
-
-            var salary_rule = $('.expired-account-modal').find('.salary-rule');
+            /* Variable */
+            var salaryRule = $('.expired-account-modal').find('.salary-rule');
             var details = $('.expired-account-modal').find('.advancement-details');
-            var ammount_input = $('.expired-account-modal').find('.advancement-amount');
+            var ammountInput = $('.expired-account-modal').find('.advancement-amount');
             var addAdvancement = $('.expired-account-modal').find('.add-advancement');
-            var current_journal = $('.expired-account-modal').find('.current-journal');
-            var journal_ref = $('.expired-account-modal').find('.journal-ref');
-
-            salary_rule.change(function(){
-                if (salary_rule.val() !== 'ADL'){
-                    current_journal.attr("disabled", true);
-                    current_journal.css("color", '#cfcfcf');
-
-                    journal_ref.attr("disabled", true);
-                } else {
-                    current_journal.removeAttr("disabled");
-                    current_journal.css("color", '#4c4c4c');
-                    journal_ref.removeAttr("disabled");
+            var journalSelected = $('.expired-account-modal').find('.journal-selected');
+            var statementSelected = $('.expired-account-modal').find('.statement-selected');
+
+            /* Type Operation */
+            salaryRule.change(function() {
+                $('.expired-account-modal').find('.is-advancement').css('display','none');
+                $('.expired-account-modal').find('.statement-open').css('display','none');
+                statementSelected.empty();
+                if (salaryRule.val() === 'ADL')
+                    $('.expired-account-modal').find('.is-advancement').css('display','flex');
+            });
+            /*Journal Selected */
+            journalSelected.change(function(e) {
+                statementSelected.empty();
+                $('.expired-account-modal').find('.statement-open').css('display','none');
+                if (!!journalSelected.val() && !!self.eiruAccountBankUtatementUtility.length && !!self.statementConfig.length) {
+                    if (self.statementConfig[0].import_statement_payslip === 'manual_import') {
+                        var statement = self.getStatementeJournal(parseInt(journalSelected.val()));
+                        if (!!statement.length) {
+                            $('.expired-account-modal').find('.statement-open').css('display','flex');
+                            statementSelected.append('<option value=""></option>');
+                            _.each(statement, function(item) {
+                                statementSelected.append('<option value="' + item.id + '">' + item.name+" - "+moment(item.date).format("DD-MM-YYYY")+ '</option>');
+                            });
+                        }
+                    }
                 }
-            })
-
+            });
+            /* Imputn amount */
+            ammountInput.keyup(function() {
+                amount_Adl = parseInt(accounting.unformat( ammountInput.val(),','));
+                ammountInput.val(accounting.formatMoney((amount_Adl), currency.symbol,currency.decimal_places, currency.thousands_separator, currency.decimal_separator));
+            });
+            /* button Guardar */
             addAdvancement.click(function(e){
-                /* Operacion */
-                var amount = parseInt(accounting.unformat(ammount_input.val(),','));
-                if (!salary_rule.val()) {
+                var amount = parseInt(accounting.unformat(ammountInput.val(),','));
+                /* Type Operacion */
+                if (!salaryRule.val()) {
                     openerp.web.notification.do_warn("Atención","Seleccione el tipo de operación.");
-                    salary_rule.css('border-color','red');
-                    return;
-                }
-                salary_rule.css('border-color','#ccc');
-                /* Detalles */
-                if (!details.val()) {
-                    openerp.web.notification.do_warn("Atención","Defina una descripción para la operación.");
-                    details.css('border-color','red');
+                    salaryRule.css('border-color','red');
+                    salaryRule.focus();
                     return;
                 }
-                details.css('border-color','#ccc');
-                /* Importe */
+                salaryRule.css('border-color','#ccc');
+
+                /* amount */
                 if (amount <= 0) {
                     openerp.web.notification.do_warn("Atención","El importe de la operación no debe ser  meno o igual 0 (cero).");
-                    ammount_input.css('border-color','red');
+                    ammountInput.css('border-color','red');
+                    ammountInput.focus();
                     return;
                 }
-                ammount_input.css('border-color','#ccc');
-                var payslip = new openerp.web.Model('hr.payslip');
-                if (amount > payslipLine.amount && salary_rule.val() === "ADL"){
+                if (amount > payslipLine.amount && salaryRule.val() === "ADL"){
                     openerp.web.notification.do_warn("Atención","El importe del adelanto no puede superar el sueldo neto,\n Importe permitido "+ accounting.formatMoney(payslipLine.amount, currency.symbol,currency.decimal_places, currency.thousands_separator, currency.decimal_separator));
-                    ammount_input.focus();
+                    ammountInput.css('border-color','red');
+                    ammountInput.focus();
                     return;
                 }
+                ammountInput.css('border-color','#ccc');
 
-                if (salary_rule.val() === "ADL") {
+                if (salaryRule.val() === "ADL") {
                     amount = (amount * -1);
+                    /* Journal */
+                    if (!journalSelected.val()){
+                        openerp.web.notification.do_warn("Atención","Seleccione el método de pago.");
+                        journalSelected.css('border-color','red');
+                        journalSelected.focus();
+                        return;
+                    }
+                    journalSelected.css('border-color','#ccc');
+                    /* statement */
+                    if (!!self.eiruAccountBankUtatementUtility.length && !!self.statementConfig.length) {
+                        if (self.statementConfig[0].import_statement_payslip === 'manual_import') {
+                            var statement = self.getStatementeJournal(parseInt(journalSelected.val()));
+                            if (!!statement.length) {
+                                if (!statementSelected.val()){
+                                    openerp.web.notification.do_warn("Atención","Seleccione una caja para continuar.");
+                                    statementSelected.css('border-color','red');
+                                    statementSelected.focus();
+                                    return;
+                                }
+                                statementSelected.css('border-color','#ccc');
+                            }
+                        }
+                    }
+                }
+                /* Detalles */
+                if (!details.val()) {
+                    openerp.web.notification.do_warn("Atención","Defina una descripción para la operación.");
+                    details.css('border-color','red');
+                    details.focus();
+                    return;
                 }
+                details.css('border-color','#ccc');
 
-                payslip.call('create_payslip_input',
-                [
-                    {
-                        id: self.id,
-                        salary_rule: salary_rule.val(),
-                        details: details.val(),
-                        ammount_input: amount,
-                        journal: current_journal.val(),
-                        journal_ref: journal_ref.val()
-                    }
-                ],{
-                    context: new openerp.web.CompoundContext()
-                }).then(function(results) {
-                    defer.resolve(results)
+                values = {
+                    'id': parseInt(self.id),
+                    'salaryRule': salaryRule.val(),
+                    'details': details.val(),
+                    'amount': amount,
+                    'journal': parseInt(journalSelected.val()),
+                    'statementId': !!statementSelected.val() ? parseInt(statementSelected.val()) : '',
+                    'statementConfigId': !!self.statementConfig.length ? self.statementConfig[0].id : '',
+                };
+
+                self.createPayslipInput(values).then(function(resultsPayslip){
+                    return resultsPayslip;
+                }).then(function(resultsPayslip){
+                    self.removeModal(e);
+                    defer.resolve(resultsPayslip);
+                        // results = resultsPayslip;
                 });
-                self.removeModal(e);
+
+                // defer.resolve(results);
+                // console.log(defer);
+                return defer;
             });
-            ammount_input.keyup(function() {
-                amount_Adl = parseInt(accounting.unformat( ammount_input.val(),','));
-                ammount_input.val(accounting.formatMoney((amount_Adl), currency.symbol,currency.decimal_places, currency.thousands_separator, currency.decimal_separator));
+            /* Close modal */
+            $('.expired-account-modal').on('hidden.bs.modal', function (e) {
+                results = false;
+                defer.resolve(results);
+                self.removeModal(e);
             });
-
             return defer;
         },
+        /* Crear Adelanto - comisiones */
+        createPayslipInput: function(values) {
+            var payslip = new openerp.web.Model('hr.payslip');
+            return payslip.call('create_payslip_input',[values],{
+                context: new openerp.web.CompoundContext()
+            });
+        },
+
         /* ---------------------------------------------------------------------
         ** Description: Recalcular Nominas
         ** -------------------------------------------------------------------*/
@@ -923,12 +1050,12 @@
             var advancement_details = $('.expired-account-modal').find('.advancement-details');
             var advancement_amount = $('.expired-account-modal').find('.advancement-amount');
             var current_journal = $('.expired-account-modal').find('.current-journal');
-            var journal_ref = $('.expired-account-modal').find('.journal-ref');
+            // var journal_ref = $('.expired-account-modal').find('.journal-ref');
             var advancement_export = $('.expired-account-modal').find('.advancement-export');
             var tableRow = $('.expired-account-modal').find('.table-tbody').find('tr');
             // Deshabilitar Campos
             current_journal.attr("disabled", true);
-            journal_ref.attr("disabled", true);
+            // journal_ref.attr("disabled", true);
             advancement_export.attr("disabled", true);
             /* Seleccionar  fila */
             tableRow.click(function (e) {
@@ -942,7 +1069,7 @@
                 self.row_id_select = parseInt($(e.target).closest('tr').children()[0].textContent);
                 // Habilitar Campos
                 current_journal.removeAttr("disabled");
-                journal_ref.removeAttr("disabled");
+                // journal_ref.removeAttr("disabled");
                 advancement_export.removeAttr("disabled");
                 current_journal.focus();
             });
@@ -963,10 +1090,10 @@
                     row_export.closest('td').closest('tr').remove();
 
                     current_journal.attr("disabled", true);
-                    journal_ref.attr("disabled", true);
+                    // journal_ref.attr("disabled", true);
                     advancement_export.attr("disabled", true);
 
-                    journal_ref.val('');
+                    // journal_ref.val('');
                     current_journal.val('');
 
                     advancement_details.val('');
@@ -985,7 +1112,7 @@
                 {
                     'id_imput': id_imput,
                     'journal_id': journal_id,
-                    'journal_ref': journal_ref
+                    // 'journal_ref': journal_ref
                 }
             ],{
                 context: new openerp.web.CompoundContext()

+ 93 - 28
static/src/xml/modal/modal_payslip_add_advancement.xml

@@ -13,31 +13,96 @@
                     </div>
                     <!-- Body -->
                     <div class="modal-body">
-                        <!-- Adicionar Falta-->
-                        <div>
-                            <div class="row" t-foreach="employeData" t-as="employee">
-                                <div class="col-xs-6">
-                                    <label class="detallis-employee-label">Funcionario</label>
-                                    <input class="detallis-employee-input" readonly="readonly" t-attf-value="{{ employee.employe_name }}"></input>
+                        <div class="row" t-foreach="employeData" t-as="employee">
+                            <div class="col-xs-6">
+                                <label class="advancement-employee-label">Funcionario</label>
+                                <div class="advancement-employee-input">
+                                    <input class="advancement-input" readonly="readonly" t-attf-value="{{ employee.employe_name }}"></input>
                                 </div>
-                                <div class="col-xs-6">
-                                    <label class="detallis-employee-label">Sueldo neto</label>
-                                    <input class="detallis-employee-input number" readonly="readonly"  t-attf-value="{{ employee.salari }}"></input>
+                            </div>
+                            <div class="col-xs-6">
+                                <label class="advancement-employee-label">Sueldo neto</label>
+                                <div class="advancement-employee-input">
+                                    <input class="advancement-input input-number" readonly="readonly"  t-attf-value="{{ employee.salari }}"></input>
                                 </div>
                             </div>
-                            <hr class="detallis-employee-separator"/>
+                        </div>
 
-                            <div class="row">
-                                <div class="col-xs-2">
-                                    <label class="detallis-employee-label">Tipo de Operación</label>
+                        <hr class="advancement-separator-hr"/>
+                        <div class="row">
+                            <div class="col-xs-6">
+                                <label class="advancement-employee-label">Tipo de Operación</label>
+                                <div class="advancement-employee-input">
+                                    <select class="advancement-input salary-rule">
+                                        <t t-foreach="salaryRule" t-as="salary">
+                                            <option t-attf-value="{{ salary_value.code }}" >
+                                                <t t-esc="salary_value.name"/>
+                                            </option>
+                                        </t>
+                                    </select>
                                 </div>
-                                <div class="col-xs-7">
-                                    <label class="detallis-employee-label">Descripción</label>
+                            </div>
+                            <div class="col-xs-6">
+                                <label class="advancement-employee-label">Importe</label>
+                                <div class="advancement-employee-input">
+                                    <input class="advancement-input input-number advancement-amount" type="text" ></input>
                                 </div>
-                                <div class="col-xs-3">
-                                    <label class="detallis-employee-label">Importe</label>
+                            </div>
+                        </div>
+
+                        <hr class="advancement-separator-hr"/>
+                        <div class="row">
+                            <div class="col-xs-6 is-advancement">
+                                <label class="advancement-employee-label">Método de pago:</label>
+                                <div class="advancement-employee-input">
+                                    <select class=" advancement-input journal-selected">
+                                        <t t-foreach="journal" t-as="journal">
+                                            <option t-attf-value="{{ journal_value.id }}" >
+                                                <t t-esc="journal_value.name"/>
+                                            </option>
+                                        </t>
+                                    </select>
                                 </div>
-                                <div class="col-xs-2">
+                            </div>
+                            <div class="col-xs-6 statement-open">
+                                <label class="advancement-employee-label">Caja</label>
+                                <div class="advancement-employee-input">
+                                    <select class=" advancement-input statement-selected">
+                                    </select>
+                                </div>
+                            </div>
+                        </div>
+
+                        <hr class="advancement-separator-hr "/>
+                        <div class="row">
+                            <div class="col-xs-12">
+                                <label class="advancement-employee-label">Descripción</label>
+                                <div class="advancement-employee-input">
+                                    <input class="advancement-input advancement-details" autofocus="autofocus" ></input>
+                                </div>
+                            </div>
+                        </div>
+
+
+                        <!-- <div class="row" >
+                            <div class="col-xs-6 statement-open">
+                                <label class="label-descrip labe-input">Referencia de pago: </label>
+                                <input type="text" class="journal-ref"></input>
+                            </div>
+                        </div> -->
+                            <!-- <hr class="advancement-separators"/> -->
+
+                            <!-- <div class="row"> -->
+                                <!-- <div class="col-xs-2">
+                                    <label class="detallis-employee-label">Tipo de Operación</label>
+                                </div> -->
+                                <!-- <div class="col-xs-7">
+                                    <label class="detallis-employee-label">Descripción</label>
+                                </div> -->
+                                <!-- <div class="col-xs-3">
+                                    <label class="detallis-employee-label">Importe</label>
+                                </div> -->
+                                <!-- <div class="col-xs-2">
                                     <select class="salary-rule faults-input">
                                         <t t-foreach="salaryRule" t-as="salary">
                                             <option t-attf-value="{{ salary_value.code }}" >
@@ -45,16 +110,16 @@
                                             </option>
                                         </t>
                                     </select>
-                                </div>
-                                <div class="col-xs-7 ">
+                                </div> -->
+                                <!-- <div class="col-xs-7 ">
                                     <input class="faults-input advancement-details" autofocus="autofocus" ></input>
-                                </div>
-                                <div class="col-xs-3 ">
+                                </div> -->
+                                <!-- <div class="col-xs-3 ">
                                     <input class="faults-input advancement-amount" type="text" ></input>
-                                </div>
-                            </div>
-                            <hr class="detallis-employee-separator"/>
-                            <div class="row">
+                                </div> -->
+                            <!-- </div> -->
+                            <!-- <hr class="advancement-separators"/> -->
+                            <!-- <div class="row">
                                 <div class="col-xs-6">
                                     <label class="label-descrip labe-input">Método de pago: </label>
                                     <select class="current-journal">
@@ -69,9 +134,9 @@
                                     <label class="label-descrip labe-input">Referencia de pago: </label>
                                     <input type="text" class="journal-ref"></input>
                                 </div>
-                            </div>
+                            </div> -->
 
-                        </div>
+                        <!-- </div> -->
                     </div>
                     <!-- Pie de Pagina -->
                     <div class="modal-footer payslip-footer">