#-*- coding: utf-8 -*-
import logging
import time
from datetime import datetime
from dateutil import relativedelta
from openerp.osv import fields, osv, orm
from openerp.tools.translate import _
import openerp.addons.decimal_precision as dp

class hr_contract(orm.Model):
    _name='hr.contract'
    _inherit='hr.contract'

    def _get_contract_years(self, cr, uid, ids, name, arg, context=None):

        res = {}

        for contract in self.browse(cr, uid, ids, context=context):
            today = datetime.today()
            dt = datetime.strptime(contract.date_start, '%Y-%m-%d')
            dt1 = today - dt
            dt2 = dt1.days
            res[contract.id] = (dt2/365)
        return res

    def _get_contract_days(self, cr, uid, ids, name, arg, context=None):

        res = {}
        for contract in self.browse(cr, uid, ids, context=context):
            today = datetime.today()
            dt = datetime.strptime(contract.date_start, '%Y-%m-%d')
            dt1 = today - dt
            dt2 = dt1.days
            res[contract.id] = dt2
        return res

    _columns = {
        'avance_bonificacion_apply': fields.boolean('Aplicar?'),
        'avance_bonificacion_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'avance_bonificacion_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'avance_bonificacion_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'avance_bonificacion_frecuency_number': fields.integer('Numero de Veces'),
        'avance_bonificacion_start_date': fields.date('Fecha Inicial'),
        'avance_bonificacion_end_date': fields.date('Fecha Final'),

        'ahorro_cooperativa_apply': fields.boolean('Aplicar?'),
        'ahorro_cooperativa_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'ahorro_cooperativa_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'ahorro_cooperativa_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'ahorro_cooperativa_frecuency_number': fields.integer('Numero de Veces'),
        'ahorro_cooperativa_start_date': fields.date('Fecha Inicial'),
        'ahorro_cooperativa_end_date': fields.date('Fecha Final'),

        'ajuste_salario_ing_apply': fields.boolean('Aplicar?'),
        'ajuste_salario_ing_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'ajuste_salario_ing_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'ajuste_salario_ing_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'ajuste_salario_ing_frecuency_number': fields.integer('Numero de Veces'),
        'ajuste_salario_ing_start_date': fields.date('Fecha Inicial'),
        'ajuste_salario_ing_end_date': fields.date('Fecha Final'),

        'ajuste_salario_egr_apply': fields.boolean('Aplicar?'),
        'ajuste_salario_egr_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'ajuste_salario_egr_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'ajuste_salario_egr_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'ajuste_salario_egr_frecuency_number': fields.integer('Numero de Veces'),
        'ajuste_salario_egr_start_date': fields.date('Fecha Inicial'),
        'ajuste_salario_egr_end_date': fields.date('Fecha Final'),

        'avance_regalia_apply': fields.boolean('Aplicar?'),
        'avance_regalia_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'avance_regalia_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'avance_regalia_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'avance_regalia_frecuency_number': fields.integer('Numero de Veces'),
        'avance_regalia_start_date': fields.date('Fecha Inicial'),
        'avance_regalia_end_date': fields.date('Fecha Final'),

        'avance_sueldo_apply': fields.boolean('Aplicar?'),
        'avance_sueldo_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'avance_sueldo_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'avance_sueldo_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'avance_sueldo_frecuency_number': fields.integer('Numero de Veces'),
        'avance_sueldo_start_date': fields.date('Fecha Inicial'),
        'avance_sueldo_end_date': fields.date('Fecha Final'),

        'prestamo_awm_apply': fields.boolean('Aplicar?'),
        'prestamo_awm_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'prestamo_awm_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'prestamo_awm_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'prestamo_awm_frecuency_number': fields.integer('Numero de Veces'),
        'prestamo_awm_start_date': fields.date('Fecha Inicial'),
        'prestamo_awm_end_date': fields.date('Fecha Final'),

        
        'prestamos_chc_apply': fields.boolean('Aplicar?'),
        'prestamos_chc_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'prestamos_chc_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'prestamos_chc_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'prestamos_chc_frecuency_number': fields.integer('Numero de Veces'),
        'prestamos_chc_start_date': fields.date('Fecha Inicial'),
        'prestamos_chc_end_date': fields.date('Fecha Final'),

        'comedor_apply': fields.boolean('Aplicar?'),
        'comedor_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'comedor_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'comedor_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'comedor_frecuency_number': fields.integer('Numero de Veces'),
        'comedor_start_date': fields.date('Fecha Inicial'),
        'comedor_end_date': fields.date('Fecha Final'),

        'dieta_apply': fields.boolean('Aplicar?'),
        'dieta_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'dieta_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'dieta_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'dieta_frecuency_number': fields.integer('Numero de Veces'),
        'dieta_start_date': fields.date('Fecha Inicial'),
        'dieta_end_date': fields.date('Fecha Final'),

        'farmacia_apply': fields.boolean('Aplicar?'),
        'farmacia_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'farmacia_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'farmacia_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'farmacia_frecuency_number': fields.integer('Numero de Veces'),
        'farmacia_start_date': fields.date('Fecha Inicial'),
        'farmacia_end_date': fields.date('Fecha Final'),

        'navicoop_apply': fields.boolean('Aplicar?'),
        'navicoop_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'navicoop_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'navicoop_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'navicoop_frecuency_number': fields.integer('Numero de Veces'),
        'navicoop_start_date': fields.date('Fecha Inicial'),
        'navicoop_end_date': fields.date('Fecha Final'),

        'otros_desc_apply': fields.boolean('Aplicar?'),
        'otros_desc_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'otros_desc_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'otros_desc_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'otros_desc_frecuency_number': fields.integer('Numero de Veces'),
        'otros_desc_start_date': fields.date('Fecha Inicial'),
        'otros_desc_end_date': fields.date('Fecha Final'),

        'optica_apply': fields.boolean('Aplicar?'),
        'optica_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'optica_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'optica_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'optica_frecuency_number': fields.integer('Numero de Veces'),
        'optica_start_date': fields.date('Fecha Inicial'),
        'optica_end_date': fields.date('Fecha Final'),

        'prestamo_cooperativa_apply': fields.boolean('Aplicar?'),
        'prestamo_cooperativa_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'prestamo_cooperativa_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'prestamo_cooperativa_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'prestamo_cooperativa_frecuency_number': fields.integer('Numero de Veces'),
        'prestamo_cooperativa_start_date': fields.date('Fecha Inicial'),
        'prestamo_cooperativa_end_date': fields.date('Fecha Final'),
        
        'per_capita_apply': fields.boolean('Aplicar?'),
        'per_capita_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'per_capita_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'per_capita_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'per_capita_frecuency_number': fields.integer('Numero de Veces'),
        'per_capita_start_date': fields.date('Fecha Inicial'),
        'per_capita_end_date': fields.date('Fecha Final'),

        'adicional_tss_apply': fields.boolean('Aplicar?'),
        'adicional_tss_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'adicional_tss_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'adicional_tss_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'adicional_tss_frecuency_number': fields.integer('Numero de Veces'),
        'adicional_tss_start_date': fields.date('Fecha Inicial'),
        'adicional_tss_end_date': fields.date('Fecha Final'),

        'otros_prestamos_apply': fields.boolean('Aplicar?'),
        'otros_prestamos_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'otros_prestamos_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'otros_prestamos_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'otros_prestamos_frecuency_number': fields.integer('Numero de Veces'),
        'otros_prestamos_start_date': fields.date('Fecha Inicial'),
        'otros_prestamos_end_date': fields.date('Fecha Final'),

        'reserva_educativa_apply': fields.boolean('Aplicar?'),
        'reserva_educativa_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'reserva_educativa_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'reserva_educativa_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'reserva_educativa_frecuency_number': fields.integer('Numero de Veces'),
        'reserva_educativa_start_date': fields.date('Fecha Inicial'),
        'reserva_educativa_end_date': fields.date('Fecha Final'),
        
        'reparacion_vehiculo_apply': fields.boolean('Aplicar?'),
        'reparacion_vehiculo_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'reparacion_vehiculo_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'reparacion_vehiculo_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'reparacion_vehiculo_frecuency_number': fields.integer('Numero de Veces'),
        'reparacion_vehiculo_start_date': fields.date('Fecha Inicial'),
        'reparacion_vehiculo_end_date': fields.date('Fecha Final'),
        
        'seguro_medico_apply': fields.boolean('Aplicar?'),
        'seguro_medico_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'seguro_medico_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'seguro_medico_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'seguro_medico_frecuency_number': fields.integer('Numero de Veces'),
        'seguro_medico_start_date': fields.date('Fecha Inicial'),
        'seguro_medico_end_date': fields.date('Fecha Final'),
        
        'tienda_cooperativa_apply': fields.boolean('Aplicar?'),
        'tienda_cooperativa_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'tienda_cooperativa_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'tienda_cooperativa_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'tienda_cooperativa_frecuency_number': fields.integer('Numero de Veces'),
        'tienda_cooperativa_start_date': fields.date('Fecha Inicial'),
        'tienda_cooperativa_end_date': fields.date('Fecha Final'),
        
        'telefono_apply': fields.boolean('Aplicar?'),
        'telefono_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'telefono_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'telefono_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'telefono_frecuency_number': fields.integer('Numero de Veces'),
        'telefono_start_date': fields.date('Fecha Inicial'),
        'telefono_end_date': fields.date('Fecha Final'),


        'uniforme_apply': fields.boolean('Aplicar?'),
        'uniforme_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'uniforme_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'uniforme_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'uniforme_frecuency_number': fields.integer('Numero de Veces'),
        'uniforme_start_date': fields.date('Fecha Inicial'),
        'uniforme_end_date': fields.date('Fecha Final'),


        'ventas_articulos_apply': fields.boolean('Aplicar?'),
        'ventas_articulos_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'ventas_articulos_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'ventas_articulos_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'ventas_articulos_frecuency_number': fields.integer('Numero de Veces'),
        'ventas_articulos_start_date': fields.date('Fecha Inicial'),
        'ventas_articulos_end_date': fields.date('Fecha Final'),

        'desc_vacaciones_apply': fields.boolean('Aplicar?'),
        'desc_vacaciones_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'desc_vacaciones_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'desc_vacaciones_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'desc_vacaciones_frecuency_number': fields.integer('Numero de Veces'),
        'desc_vacaciones_start_date': fields.date('Fecha Inicial'),
        'desc_vacaciones_end_date': fields.date('Fecha Final'),
        
        'bonificacion_apply': fields.boolean('Aplicar?'),
        'bonificacion_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'bonificacion_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'bonificacion_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'bonificacion_frecuency_number': fields.integer('Numero de Veces'),
        'bonificacion_start_date': fields.date('Fecha Inicial'),
        'bonificacion_end_date': fields.date('Fecha Final'),
        
        'desc_por_error_apply': fields.boolean('Aplicar?'),
        'desc_por_error_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'desc_por_error_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'desc_por_error_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'desc_por_error_frecuency_number': fields.integer('Numero de Veces'),
        'desc_por_error_start_date': fields.date('Fecha Inicial'),
        'desc_por_error_end_date': fields.date('Fecha Final'),
        
        'grat_personal_apply': fields.boolean('Aplicar?'),
        'grat_personal_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'grat_personal_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'grat_personal_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'grat_personal_frecuency_number': fields.integer('Numero de Veces'),
        'grat_personal_start_date': fields.date('Fecha Inicial'),
        'grat_personal_end_date': fields.date('Fecha Final'),

        
        'regalia_pascual_apply': fields.boolean('Aplicar?'),
        'regalia_pascual_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'regalia_pascual_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'regalia_pascual_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'regalia_pascual_frecuency_number': fields.integer('Numero de Veces'),
        'regalia_pascual_start_date': fields.date('Fecha Inicial'),
        'regalia_pascual_end_date': fields.date('Fecha Final'),
        
        'retro_salario_apply': fields.boolean('Aplicar?'),
        'retro_salario_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'retro_salario_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'retro_salario_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'retro_salario_frecuency_number': fields.integer('Numero de Veces'),
        'retro_salario_start_date': fields.date('Fecha Inicial'),
        'retro_salario_end_date': fields.date('Fecha Final'),

        'vacaciones_apply': fields.boolean('Aplicar?'),
        'vacaciones_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'vacaciones_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'vacaciones_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'vacaciones_frecuency_number': fields.integer('Numero de Veces'),
        'vacaciones_start_date': fields.date('Fecha Inicial'),
        'vacaciones_end_date': fields.date('Fecha Final'),
        
        'preaviso_apply': fields.boolean('Aplicar?'),
        'preaviso_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'preaviso_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'preaviso_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'preaviso_frecuency_number': fields.integer('Numero de Veces'),
        'preaviso_start_date': fields.date('Fecha Inicial'),
        'preaviso_end_date': fields.date('Fecha Final'),
        
        'cesantia_apply': fields.boolean('Aplicar?'),
        'cesantia_discount_amount': fields.float('Monto', digits_compute=dp.get_precision('Payroll')),
        'cesantia_frecuency_type': fields.selection((('fixed', 'Fijo'),
                                            ('variable', 'Variable')), 'Tipo de Frecuencia'),
        'cesantia_apply_on': fields.selection((('1', 'Primera Quincena'),
                                      ('2', 'Segunda Quincena'),
                                      ('3', 'Primera y Segunda Quincena')), 'Aplicar en'),
        'cesantia_frecuency_number': fields.integer('Numero de Veces'),
        'cesantia_start_date': fields.date('Fecha Inicial'),
        'cesantia_end_date': fields.date('Fecha Final'),


    }

    _defaults = {
        'avance_bonificacion_frecuency_type' : 'fixed',
        'ahorro_cooperativa_frecuency_type' : 'fixed',
        'ajuste_salario_egr_frecuency_type' : 'fixed',
        'avance_regalia_frecuency_type' : 'fixed',
        'avance_sueldo_frecuency_type' : 'fixed',
        'prestamo_awm_frecuency_type' : 'fixed',
        'prestamos_chc_frecuency_type' : 'fixed',
        'comedor_frecuency_type' : 'fixed',
        'farmacia_frecuency_type' : 'fixed',
        'navicoop_frecuency_type' : 'fixed',
        'otros_desc_frecuency_type' : 'fixed',
        'optica_frecuency_type' : 'fixed',
        'prestamo_cooperativa_frecuency_type' : 'fixed',
        'per_capita_frecuency_type' : 'fixed',
        'adicional_tss_frecuency_type' : 'fixed',
        'otros_prestamos_frecuency_type' : 'fixed',
        'reserva_educativa_frecuency_type' : 'fixed',
        'reparacion_vehiculo_frecuency_type' : 'fixed',
        'seguro_medico_frecuency_type' : 'fixed',
        'tienda_cooperativa_frecuency_type' : 'fixed',
        'telefono_frecuency_type' : 'fixed',
        'uniforme_frecuency_type' : 'fixed',
        'ventas_articulos_frecuency_type' : 'fixed',
        'desc_vacaciones_frecuency_type' : 'fixed',
        'ajuste_salario_ing_frecuency_type' : 'fixed',
        'bonificacion_frecuency_type' : 'fixed',
        'desc_por_error_frecuency_type' : 'fixed',
        'dieta_frecuency_type' : 'fixed',
        'grat_personal_frecuency_type' : 'fixed',
        'regalia_pascual_frecuency_type' : 'fixed',
        'retro_salario_frecuency_type' : 'fixed',
        'vacaciones_frecuency_type' : 'fixed',
        'preaviso_frecuency_type' : 'fixed',
        'cesantia_frecuency_type' : 'fixed',

    }
