|
@@ -6,6 +6,9 @@
|
|
|
|
|
|
openerp.PayslipUtility = openerp.Widget.extend({
|
|
|
template: 'payslip_add.FaultsWidget',
|
|
|
+ row_id_select: undefined,
|
|
|
+ workedDays: [],
|
|
|
+
|
|
|
/* init */
|
|
|
init: function (parent) {
|
|
|
this._super(parent);
|
|
@@ -23,9 +26,10 @@
|
|
|
});
|
|
|
// Edit/ unlink
|
|
|
editFaults.click(function() {
|
|
|
+ self.fectchUpdateFaults();
|
|
|
});
|
|
|
// Update
|
|
|
- refreshFaults.click(function(){
|
|
|
+ refreshFaults.click(function() {
|
|
|
self.fectchRecomputeSheet();
|
|
|
})
|
|
|
},
|
|
@@ -44,10 +48,10 @@
|
|
|
$('.modal-backdrop').remove();
|
|
|
},
|
|
|
/* ---------------------------------------------------------------------
|
|
|
- * Description: Recalcular faltas de funcionario
|
|
|
- * -------------------------------------------------------------------*/
|
|
|
- /* Description: Función Inicial para recalcular las faltas*/
|
|
|
- fectchRecomputeSheet: function() {
|
|
|
+ ** Description: Recalcular faltas de funcionario
|
|
|
+ ** -------------------------------------------------------------------*/
|
|
|
+ /* Description: Función Inicial para recalcular las faltas*/
|
|
|
+ fectchRecomputeSheet: function() {
|
|
|
var self= this;
|
|
|
self.$el.find('.refresh-faults').attr("disabled", true);
|
|
|
self.recomputeSheet().then(function(results) {
|
|
@@ -57,8 +61,8 @@
|
|
|
self.reloadLine()
|
|
|
});
|
|
|
},
|
|
|
- /* Description: Función para recalcular las faltas */
|
|
|
- recomputeSheet: function(){
|
|
|
+ /* Description: Función para recalcular las faltas */
|
|
|
+ recomputeSheet: function(){
|
|
|
var self = this;
|
|
|
var defer = $.Deferred();
|
|
|
var recomputePayslip = new openerp.web.Model('hr.payslip');
|
|
@@ -72,8 +76,8 @@
|
|
|
return defer;
|
|
|
},
|
|
|
/* ---------------------------------------------------------------------
|
|
|
- * Description: Crear Faltas
|
|
|
- * -------------------------------------------------------------------*/
|
|
|
+ ** Description: Crear Faltas
|
|
|
+ ** -------------------------------------------------------------------*/
|
|
|
/* Description: Función Inicial Add Faltas */
|
|
|
fectchAddFaults: function() {
|
|
|
var self = this;
|
|
@@ -148,8 +152,170 @@
|
|
|
return defer;
|
|
|
},
|
|
|
/* ---------------------------------------------------------------------
|
|
|
- * Description: Editar/Remover Faltas
|
|
|
- * -------------------------------------------------------------------*/
|
|
|
+ ** Description: Editar/Remover Faltas
|
|
|
+ ** -------------------------------------------------------------------*/
|
|
|
+ /* Description: Funcion Inicial Modify/Unlink Faltas*/
|
|
|
+ fectchUpdateFaults: function() {
|
|
|
+ var self = this;
|
|
|
+
|
|
|
+ self.fectchWorkedDays().then(function(workedDays) {
|
|
|
+ return workedDays;
|
|
|
+ }).then(function(workedDays) {
|
|
|
+ self.workedDays = workedDays;
|
|
|
+ return self.showPayslipModifyFaults();
|
|
|
+ }).then(function(results){
|
|
|
+ return self.recomputeSheet();
|
|
|
+ }).then(function(){
|
|
|
+ return self.reloadLine()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /* Description : Consultar hr.payslip.worked_days */
|
|
|
+ fectchWorkedDays: function() {
|
|
|
+ var self = this;
|
|
|
+ var defer = $.Deferred();
|
|
|
+
|
|
|
+ var fields = ['id', 'name', 'code','number_of_days', 'number_of_hours', 'payslip_id', 'contract_id'];
|
|
|
+ var domain = [['payslip_id', '=', self.id],['code', '=', 'FALTAS']];
|
|
|
+ var worker_days = new openerp.web.Model('hr.payslip.worked_days');
|
|
|
+
|
|
|
+ worker_days.query(fields).filter(domain).all().then(function(results) {
|
|
|
+ defer.resolve(results);
|
|
|
+ });
|
|
|
+
|
|
|
+ return defer;
|
|
|
+ },
|
|
|
+ /* Description: */
|
|
|
+ showPayslipModifyFaults: function() {
|
|
|
+ var self = this;
|
|
|
+ var defer =$.Deferred();
|
|
|
+ var row_modify = null;
|
|
|
+ var results = true;
|
|
|
+
|
|
|
+ var modal = QWeb.render('EiruPayslipModifyFaults',{
|
|
|
+ workedDays: self.workedDays
|
|
|
+ });
|
|
|
+
|
|
|
+ $('.openerp_webclient_container').after(modal);
|
|
|
+ $('.expired-account-modal').modal();
|
|
|
+
|
|
|
+ $('.expired-account-modal').find('.modify-faults').attr("disabled", true);
|
|
|
+ /* Close modal */
|
|
|
+ $('.expired-account-modal').on('hidden.bs.modal', function (e) {
|
|
|
+ results = true;
|
|
|
+ defer.resolve(results)
|
|
|
+ self.removeModal(e);
|
|
|
+ });
|
|
|
+ /* Eliminar */
|
|
|
+ var unlink_faults= $('.expired-account-modal').find('.unlink-faults')
|
|
|
+ unlink_faults.click(function(e){
|
|
|
+ var unlink_row = parseInt($(e.target).closest('td').closest('tr').children()[0].textContent);
|
|
|
+ $(e.target).closest('td').closest('tr').remove()
|
|
|
+
|
|
|
+ self.unlink_faults_payslip(unlink_row).then(function(results) {
|
|
|
+ defer.resolve(results);
|
|
|
+ })
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
+ /* Modificar*/
|
|
|
+ var contenido = $('.expired-account-modal').find('.table-tbody').find('tr');
|
|
|
+ contenido.click(function (e) {
|
|
|
+ row_modify = $(e.target);
|
|
|
+ if (($(e.target).index() === 3) || ($(e.target).index() === 0))
|
|
|
+ return
|
|
|
+
|
|
|
+ $(contenido).removeClass('table-row-select');
|
|
|
+ $(e.target).closest('tr').addClass('table-row-select');
|
|
|
+
|
|
|
+ self.row_id_select = parseInt($(e.target).closest('tr').children()[0].textContent);
|
|
|
+
|
|
|
+ var descrip = $(e.target).closest('tr').children()[1].textContent;
|
|
|
+ var worked_days = $(e.target).closest('tr').children()[2].textContent;
|
|
|
+
|
|
|
+ $('.expired-account-modal').find('.payslip-details-modify').val(descrip.trim())
|
|
|
+ $('.expired-account-modal').find('.payslip-number-days-modify').val(parseInt(worked_days))
|
|
|
+ $('.expired-account-modal').find('.modify-faults').removeAttr("disabled");
|
|
|
+ });
|
|
|
+
|
|
|
+ /* Click boton Modificar */
|
|
|
+ var modify = $('.expired-account-modal').find('.modify-faults');
|
|
|
+ modify.click(function(e){
|
|
|
+ var descrip = $('.expired-account-modal').find('.payslip-details-modify').val()
|
|
|
+ var number = $('.expired-account-modal').find('.payslip-number-days-modify').val()
|
|
|
+
|
|
|
+ if (!descrip){
|
|
|
+ openerp.web.notification.do_warn("Atención","Definir un motivo de la falta .");
|
|
|
+ $('.expired-account-modal').find('.payslip-details-modify').css('border-color','red');
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+ $('.expired-account-modal').find('.payslip-details-modify').css('border-color','#ccc');
|
|
|
+ }
|
|
|
+ if (number <= 0){
|
|
|
+ openerp.web.notification.do_warn("Atención","Días no trabajado, debe ser mayor que 0.");
|
|
|
+ $('.expired-account-modal').find('.payslip-number-days-modify').css('border-color','red');
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+ $('.expired-account-modal').find('.payslip-number-days-modify').css('border-color','#ccc');
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ self.write_payslip_worked(self.row_id_select, descrip, number).then(function(results) {
|
|
|
+ defer.resolve(results);
|
|
|
+ })
|
|
|
+
|
|
|
+ /* Actualizar en el Grid */
|
|
|
+ row_modify.closest('tr').children()[1].textContent = descrip
|
|
|
+ row_modify.closest('tr').children()[2].textContent = number
|
|
|
+
|
|
|
+ $('.expired-account-modal').find('.payslip-details-modify').val("")
|
|
|
+ $('.expired-account-modal').find('.payslip-number-days-modify').val(0)
|
|
|
+
|
|
|
+ $('.expired-account-modal').find('.modify-faults').attr("disabled", true);
|
|
|
+ })
|
|
|
+
|
|
|
+ return defer
|
|
|
+ },
|
|
|
+ /* Description: Eliminar Falta*/
|
|
|
+ unlink_faults_payslip: function(id) {
|
|
|
+ var self = this;
|
|
|
+ var defer = $.Deferred();
|
|
|
+
|
|
|
+ var worked_days = new openerp.web.Model('hr.payslip');
|
|
|
+ worked_days.call('unlink_payslip_worked',
|
|
|
+ [
|
|
|
+ {
|
|
|
+ id: self.id,
|
|
|
+ worked_id: id
|
|
|
+ }
|
|
|
+ ],{
|
|
|
+ context: new openerp.web.CompoundContext()
|
|
|
+ }).then(function(results) {
|
|
|
+ defer.resolve(results);
|
|
|
+ });
|
|
|
+ return defer;
|
|
|
+ },
|
|
|
+ /* Actualizar worked_days */
|
|
|
+ write_payslip_worked: function(id, name, number_of_days) {
|
|
|
+ var self = this;
|
|
|
+ var defer = $.Deferred();
|
|
|
+
|
|
|
+ var worked_days = new openerp.web.Model('hr.payslip');
|
|
|
+ worked_days.call('write_payslip_worked',
|
|
|
+ [
|
|
|
+ {
|
|
|
+ id: self.id,
|
|
|
+ worked_id: id,
|
|
|
+ name: name,
|
|
|
+ days: number_of_days
|
|
|
+ }
|
|
|
+ ],{
|
|
|
+ context: new openerp.web.CompoundContext()
|
|
|
+ }).then(function(results) {
|
|
|
+ defer.resolve(results);
|
|
|
+ });
|
|
|
+ return defer;
|
|
|
+ },
|
|
|
+
|
|
|
|
|
|
});
|
|
|
|
|
@@ -183,4 +349,5 @@
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
})();
|