Example #1
0
 def __init__(self,
              mes,
              anio,
              empresa,
              trabajador=0,
              esnomina=True,
              esfiniquito=False,
              esnominapextra=False):
     """
     Constructor
     """
     self.mes = mes
     self.anio = anio
     self.dia = ultimodiames(mes, anio)
     self.fecha = str(self.anio) + "-" + str(self.mes) + "-" + str(self.dia)
     self.empresa = empresa
     self.es_finiquito = esfiniquito
     self.es_nomina = esnomina
     self.es_nominapextra = esnominapextra
     locale.setlocale(locale.LC_ALL, 'es_ES.UTF-8')
     self.estemes = time.strftime(
         "%B", time.strptime(str(self.mes) + ',' + str(self.anio), '%m,%Y'))
     self.trabajador_id = trabajador
     self.SqlNom = SqlNominas()
     self.cabecera = Cabecera(self.empresa, self.mes, self.anio,
                              self.trabajador_id)
     print "*********** ALTA NOMINA **************"
     print 'Nomina:', self.es_nomina, '         Finiquito:', self.es_finiquito
     self.nominas_empresa()
Example #2
0
    def periodo_it(self, anio, mes, acumulado = False):
        """
        Calcula el perido de una baja por IT en vigor respecto de las fechas del
        contrato.

        Devuelve una tupla con la fecha de baja y la fecha de alta
        """
        anio = int(anio)
        mes = int(mes)
        if not acumulado:
            d1 = datetime.date(anio, mes, 1)
        else:
            d1 = self.baja_fecha
        d2 = datetime.date(anio, mes, ultimodiames(mes, anio))
        f1 = self.baja_fecha
        if self.alta_fecha is None:
            f2 = d2
        else:
            f2 = self.alta_fecha
            if f2 > d2:
                f2 = d2
        if d1 <= f2 <= d2:
            if f1 < d1:
                f1 = d1
        dato = (f1, f2)
        return dato
Example #3
0
 def ac_cantidad_mes(self):
     anio = self.nomina.fecha_anio
     mes = self.nomina.fecha_mes
     valor = 0
     if self.nomina.contrato.contrato.es_tiempo_completo and self.es_importe_mensual:
         valor = float(self.nomina.dias_cotizados()) / float(ultimodiames(mes, anio))
         valor = round(valor, 2)
         self.ac_campo('imp_cuantia', valor)
     return valor
Example #4
0
 def ac_cantidad_mes(self):
     anio = self.nomina.fecha_anio
     mes = self.nomina.fecha_mes
     valor = 0
     if self.nomina.contrato.contrato.es_tiempo_completo and self.es_importe_mensual:
         valor = float(self.nomina.dias_cotizados()) / float(
             ultimodiames(mes, anio))
         valor = round(valor, 2)
         self.ac_campo('imp_cuantia', valor)
     return valor
Example #5
0
 def __init__(self, empresa, mes, anio, esnomina=True, esfiniquito=False, esnominapextra=False):
     self.empresa = empresa
     self.dia = ultimodiames(mes, anio)
     self.mes = mes
     self.anio = anio
     self.nomina = SqlNominas(0)
     self.NomDev = Nomina_Devengo
     self.num_nominas = Contrato(0).contratos_activos_mes(self.empresa, self.anio, self.mes)
     self.fecha = str(self.anio) + "-" + str(self.mes) + "-" + str(self.dia)
     locale.setlocale(locale.LC_ALL, 'es_ES.UTF-8')
     self.estemes = time.strftime("%B", time.strptime(str(self.mes) + ',' + str(self.anio), '%m,%Y'))
     self.esnomina = esnomina
     self.esfiniquito = esfiniquito
     self.esnominapextra = esnominapextra
     self.borrarnominas = NomBorrar(self.empresa, self.mes, self.anio, 0, self.esnomina, self.esfiniquito,
                                    self.esnominapextra)
     print "Empieza el calculo ..."
Example #6
0
 def __init__(self, mes, anio, empresa, trabajador=0, esnomina=True, esfiniquito=False, esnominapextra=False):
     """
     Constructor
     """
     self.mes = mes
     self.anio = anio
     self.dia = ultimodiames(mes, anio)
     self.fecha = str(self.anio) + "-" + str(self.mes) + "-" + str(self.dia)
     self.empresa = empresa
     self.es_finiquito = esfiniquito
     self.es_nomina = esnomina
     self.es_nominapextra = esnominapextra
     locale.setlocale(locale.LC_ALL, 'es_ES.UTF-8')
     self.estemes = time.strftime("%B", time.strptime(str(self.mes) + ',' + str(self.anio), '%m,%Y'))
     self.trabajador_id = trabajador
     self.SqlNom = SqlNominas()
     self.cabecera = Cabecera(self.empresa, self.mes, self.anio, self.trabajador_id)
     print "*********** ALTA NOMINA **************"
     print 'Nomina:', self.es_nomina, '         Finiquito:', self.es_finiquito
     self.nominas_empresa()
Example #7
0
    def periodo_nomina(self, anio, mes):
        """
        Calcula el perido de una nomina en vigor respecto de las fechas del
        contrato.

        Devuelve una tupla con la fecha inicial y la final
        """
        f2 = None
        anio = int(anio)
        mes = int(mes)
        d1 = datetime.date(anio, mes, 1)
        d2 = datetime.date(anio, mes, ultimodiames(mes, anio))
        f1 = self.inicio_fecha
        if self.final_fecha is None:
            f2 = d2
        else:
            f2 = self.final_fecha
            if f2 > d2:
                f2 = d2
        if d1 <= f2 <= d2:
            if f1 < d1:
                f1 = d1
        dato = (f1, f2)
        return dato
Example #8
0
    def periodo_nomina(self, anio, mes):
        """
        Calcula el perido de una nomina en vigor respecto de las fechas del
        contrato.

        Devuelve una tupla con la fecha inicial y la final
        """
        f2 = None
        anio = int(anio)
        mes = int(mes)
        d1 = datetime.date(anio, mes, 1)
        d2 = datetime.date(anio, mes, ultimodiames(mes, anio))
        f1 = self.inicio_fecha
        if self.final_fecha is None:
            f2 = d2
        else:
            f2 = self.final_fecha
            if f2 > d2:
                f2 = d2
        if d1 <= f2 <= d2:
            if f1 < d1:
                f1 = d1
        dato = (f1, f2)
        return dato
Example #9
0
 def nolaboral(self):
     """
     Calcula el número de fines de semana y festivos entre las fechas introducias y
     devuelve los valores de (sab, dom, fes)
     """
     sab = 0
     dom = 0
     fes = 0
     for xanio in range(self.desdeanio, self.hastaanio + 1):
         if xanio < self.hastaanio and xanio == self.desdeanio:
             for xmes in range(self.desdemes, 12 + 1):
                 if xmes == self.desdemes:
                     sab = sab + self.diasemana_delmes(
                         xanio, xmes, self.desdedia,
                         ultimodiames(xmes, xanio), 5)
                     dom = dom + self.diasemana_delmes(
                         xanio, xmes, self.desdedia,
                         ultimodiames(xmes, xanio), 6)
                     fes = fes + self.festivosdelmes(
                         self.calendario_id, xanio, xmes, self.desdedia,
                         self.hastadia)
                 else:
                     sab = sab + self.diasemana_delmes(
                         xanio, xmes, 1, ultimodiames(xmes, xanio), 5)
                     dom = dom + self.diasemana_delmes(
                         xanio, xmes, 1, ultimodiames(xmes, xanio), 6)
                     fes = fes + self.festivosdelmes(
                         self.calendario_id, xanio, xmes, 1,
                         ultimodiames(xmes, xanio))
         elif self.hastaanio > xanio > self.desdeanio:
             for xmes in range(1, 12 + 1):
                 sab = sab + self.diasemana_delmes(
                     xanio, xmes, 1, ultimodiames(xmes, xanio), 5)
                 dom = dom + self.diasemana_delmes(
                     xanio, xmes, 1, ultimodiames(xmes, xanio), 6)
                 fes = fes + self.festivosdelmes(self.calendario_id, xanio,
                                                 xmes, 1,
                                                 ultimodiames(xmes, xanio))
         elif xanio == self.hastaanio and xanio > self.desdeanio:
             for xmes in range(1, self.hastames + 1):
                 if xmes == self.hastames:
                     sab = sab + self.diasemana_delmes(
                         xanio, xmes, 1, self.hastadia, 5)
                     dom = dom + self.diasemana_delmes(
                         xanio, xmes, 1, self.hastadia, 6)
                     fes = fes + self.festivosdelmes(
                         self.calendario_id, xanio, xmes, 1, self.hastadia)
                 else:
                     sab = sab + self.diasemana_delmes(
                         xanio, xmes, 1, ultimodiames(xmes, xanio), 5)
                     dom = dom + self.diasemana_delmes(
                         xanio, xmes, 1, ultimodiames(xmes, xanio), 6)
                     fes = fes + self.festivosdelmes(
                         self.calendario_id, xanio, xmes, 1,
                         ultimodiames(xmes, xanio))
         elif xanio == self.hastaanio and xanio == self.desdeanio:
             for xmes in range(self.desdemes, self.hastames + 1):
                 if xmes == self.desdemes and xmes < self.hastames:
                     sab = sab + self.diasemana_delmes(
                         xanio, xmes, self.desdedia,
                         ultimodiames(xmes, xanio), 5)
                     dom = dom + self.diasemana_delmes(
                         xanio, xmes, self.desdedia,
                         ultimodiames(xmes, xanio), 6)
                     fes = fes + self.festivosdelmes(
                         self.calendario_id, xanio, xmes, self.desdedia,
                         ultimodiames(xmes, xanio))
                 elif self.desdemes < xmes < self.hastames:
                     sab = sab + self.diasemana_delmes(
                         xanio, xmes, 1, ultimodiames(xmes, xanio), 5)
                     dom = dom + self.diasemana_delmes(
                         xanio, xmes, 1, ultimodiames(xmes, xanio), 6)
                     fes = fes + self.festivosdelmes(
                         self.calendario_id, xanio, xmes, 1,
                         ultimodiames(xmes, xanio))
                 elif xmes > self.desdemes and xmes == self.hastames:
                     sab = sab + self.diasemana_delmes(
                         xanio, xmes, 1, self.hastadia, 5)
                     dom = dom + self.diasemana_delmes(
                         xanio, xmes, 1, self.hastadia, 6)
                     fes = fes + self.festivosdelmes(
                         self.calendario_id, xanio, xmes, 1, self.hastadia)
                 elif xmes == self.desdemes and xmes == self.hastames:
                     sab = sab + self.diasemana_delmes(
                         xanio, xmes, self.desdedia, self.hastadia, 5)
                     dom = dom + self.diasemana_delmes(
                         xanio, xmes, self.desdedia, self.hastadia, 6)
                     fes = fes + self.festivosdelmes(
                         self.calendario_id, xanio, xmes, self.desdedia,
                         self.hastadia)
     self.totaldomingos = dom
     self.totalsabados = sab
     self.totalfestivos = fes
     self.diastotales = (self.ultimo - self.primero).days + 1
     self.totalefectivos = self.diastotales - self.totalsabados - self.totaldomingos - self.totalfestivos
     return sab, dom, fes
Example #10
0
 def nolaboral(self):
     """
     Calcula el número de fines de semana y festivos entre las fechas introducias y
     devuelve los valores de (sab, dom, fes)
     """
     sab = 0
     dom = 0
     fes = 0
     for xanio in range(self.desdeanio, self.hastaanio + 1):
         if xanio < self.hastaanio and xanio == self.desdeanio:
             for xmes in range(self.desdemes, 12 + 1):
                 if xmes == self.desdemes:
                     sab = sab + self.diasemana_delmes(xanio, xmes, self.desdedia,
                                              ultimodiames(xmes, xanio), 5)
                     dom = dom + self.diasemana_delmes(xanio, xmes, self.desdedia,
                                              ultimodiames(xmes, xanio), 6)
                     fes = fes + self.festivosdelmes(self.calendario_id, xanio,
                                             xmes, self.desdedia, self.hastadia)
                 else :
                     sab = sab + self.diasemana_delmes(xanio, xmes, 1,
                                              ultimodiames(xmes, xanio), 5)
                     dom = dom + self.diasemana_delmes(xanio, xmes, 1,
                                              ultimodiames(xmes, xanio), 6)
                     fes = fes + self.festivosdelmes(self.calendario_id,xanio, xmes, 1,
                                              ultimodiames(xmes, xanio))
         elif self.hastaanio > xanio > self.desdeanio:
             for xmes in range(1,12+1):
                 sab = sab + self.diasemana_delmes(xanio, xmes,
                                                1, ultimodiames(xmes, xanio), 5)
                 dom = dom + self.diasemana_delmes(xanio, xmes,
                                                1, ultimodiames(xmes, xanio), 6)
                 fes = fes + self.festivosdelmes(self.calendario_id, xanio, xmes,
                                                 1, ultimodiames(xmes, xanio))
         elif xanio == self.hastaanio and xanio > self.desdeanio:
             for xmes in range(1, self.hastames + 1):
                 if xmes == self.hastames:
                     sab = sab + self.diasemana_delmes(xanio, xmes, 1, self.hastadia, 5)
                     dom = dom + self.diasemana_delmes(xanio, xmes, 1, self.hastadia, 6)
                     fes = fes + self.festivosdelmes(self.calendario_id, xanio,
                                                     xmes, 1, self.hastadia)
                 else:
                     sab = sab + self.diasemana_delmes(xanio, xmes, 1,
                                              ultimodiames(xmes, xanio), 5)
                     dom = dom + self.diasemana_delmes(xanio, xmes, 1,
                                              ultimodiames(xmes, xanio), 6)
                     fes = fes + self.festivosdelmes(self.calendario_id, xanio,
                                                     xmes, 1, ultimodiames(xmes, xanio))
         elif xanio == self.hastaanio and xanio == self.desdeanio:
             for xmes in range(self.desdemes, self.hastames + 1):
                 if xmes == self.desdemes and xmes < self.hastames:
                     sab = sab + self.diasemana_delmes(xanio, xmes, self.desdedia,
                                                    ultimodiames(xmes, xanio), 5)
                     dom = dom + self.diasemana_delmes(xanio, xmes, self.desdedia,
                                                     ultimodiames(xmes, xanio), 6)
                     fes = fes + self.festivosdelmes(self.calendario_id, xanio,
                                                     xmes, self.desdedia,
                                                     ultimodiames(xmes, xanio))
                 elif self.desdemes < xmes < self.hastames:
                     sab = sab + self.diasemana_delmes(xanio, xmes, 1,
                                                    ultimodiames(xmes, xanio), 5)
                     dom = dom + self.diasemana_delmes(xanio, xmes, 1,
                                                     ultimodiames(xmes, xanio), 6)
                     fes = fes + self.festivosdelmes(self.calendario_id, xanio, xmes,
                                                     1, ultimodiames(xmes, xanio))
                 elif xmes > self.desdemes and xmes == self.hastames:
                     sab = sab + self.diasemana_delmes(xanio, xmes, 1, self.hastadia, 5)
                     dom = dom + self.diasemana_delmes(xanio, xmes, 1, self.hastadia, 6)
                     fes = fes + self.festivosdelmes(self.calendario_id, xanio, xmes,
                                                     1, self.hastadia)
                 elif xmes == self.desdemes and xmes == self.hastames:
                     sab = sab + self.diasemana_delmes(xanio, xmes, self.desdedia,
                                                    self.hastadia, 5)
                     dom = dom + self.diasemana_delmes(xanio, xmes, self.desdedia,
                                                     self.hastadia, 6)
                     fes = fes + self.festivosdelmes(self.calendario_id, xanio, xmes, self.desdedia,
                                                     self.hastadia)
     self.totaldomingos = dom
     self.totalsabados = sab
     self.totalfestivos = fes
     self.diastotales = (self.ultimo - self.primero).days + 1
     self.totalefectivos = self.diastotales - self.totalsabados - self.totaldomingos - self.totalfestivos
     return sab,dom, fes