예제 #1
0
 def actualiza_fecha(self):
     self.fecha = self.periodos[1].strftime('%Y-%m-%d')
     print self.fecha
     sql = ('Update nominas '
            'set fecha = ' + "'" + unicode(self.fecha) + "' " +
            'where idnomina = ' + unicode(self.id) + ' ')
     select_sql(sql)
예제 #2
0
 def ac_campo(self, campo, valor):
     sql = ("Update "
            "    nomina_devengos "
            "Set " + campo + "= " + unicode(valor) + " "
            "Where "
            "    idnomina_devengo = " + unicode(self.id) + " ")
     select_sql(sql)
예제 #3
0
 def ac_campo(self, campo, valor):
     sql = ("UPDATE "
            "nominas "
            "SET " + campo + " = " + unicode(valor) + " "
            "WHERE "
            "idnomina = " + unicode(self.nomina_id) + " ")
     select_sql(sql)
예제 #4
0
 def ac_campo(self, campo, valor):
     sql = ("UPDATE "
                 "nominas "
            "SET " +
                 campo + " = " + unicode(valor) + " "
            "WHERE "
                 "idnomina = " + unicode(self.nomina_id) + " ")
     select_sql(sql)
예제 #5
0
 def ac_aporta_trabajador(self):
     sql = ('UPDATE '
            '    nominas '
            'SET '
            '    imp_aportatrab =  ' + str(self.costes.total_aportacion) +
            ' '
            'WHERE '
            '    idnomina = %s')
     select_sql((sql, (self.nomina_id)))
예제 #6
0
 def actualiza_fecha(self):
     self.fecha = self.periodos[1].strftime('%Y-%m-%d')
     print self.fecha
     sql = ('Update nominas '
            'set fecha = ' + "'" + unicode(self.fecha) +
            "' " +
            'where idnomina = ' + unicode(self.id) +
            ' ')
     select_sql(sql)
예제 #7
0
 def ac_aporta_trabajador(self):
     sql = ('UPDATE '
            '    nominas '
            'SET '
            '    imp_aportatrab =  ' + str(self.costes.total_aportacion) +
            ' '
            'WHERE '
            '    idnomina = %s')
     select_sql((sql, (self.nomina_id)))
예제 #8
0
 def ac_campo(self, campo, valor):
     sql = ("Update "
            "    nomina_devengos "
            "Set " +
            campo + "= " + unicode(valor) +
            " "
            "Where "
            "    idnomina_devengo = " + unicode(self.id) + " ")
     select_sql(sql)
예제 #9
0
 def calc_liquido(self, nomina):
     # ------------ Calculo Total Liquido
     self.nomina(nomina)
     self.liquido = self.nomina.actualiza_liquido(nomina)
     if self.liquido == 0:
         sql = ("UPDATE nominas "
                "SET liquido = imp_totdev - tot_deducir "
                "WHERE idnomina = %s ")
         select_sql((sql, (nomina)))
예제 #10
0
    def dias_efectivos_tpo_parcial(self):
        sql = (
            "select "
            "    count(*) "
            "from "
            "    emp_tpo_parcial "
            "        left join "
            "            nominas "
            "            on emp_tpo_parcial.idemp_contrato = nominas.idemp_contratos "
            "where "
            "    month(emp_tpo_parcial.fecha) = %s "
            "    and year(emp_tpo_parcial.fecha) = %s "
            "    and nominas.idnomina = %s "
            "    and horas > 0")
        dias = select_sql((sql, (self.fecha_mes, self.fecha_anio, self.id)))[0]

        if dias == 0:
            desdedia = int(
                self.contrato.periodo_nomina(self.fecha_anio,
                                             self.fecha_mes)[0].day)
            hastadia = int(
                self.contrato.periodo_nomina(self.fecha_anio,
                                             self.fecha_mes)[1].day)
            cal = self.cta_cot.calendario
            try:
                sql = (
                    "select (lunes>0) * " + str(
                        cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                             desdedia, hastadia, 0)) +
                    " + (martes >0) * " + str(
                        cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                             desdedia, hastadia, 1)) +
                    " + (miercoles>0) * " + str(
                        cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                             desdedia, hastadia, 2)) +
                    " + (jueves>0) * " + str(
                        cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                             desdedia, hastadia, 3)) +
                    " + (viernes>0) * " + str(
                        cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                             desdedia, hastadia, 4)) +
                    " + (sabado>0) * " + str(
                        cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                             desdedia, hastadia, 5)) +
                    " + (domingo>0) * " + str(
                        cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                             desdedia, hastadia, 6)) + " "
                    "from emp_tpo_parcial "
                    "left join nominas "
                    "on emp_tpo_parcial.idemp_contrato = nominas.idemp_contratos "
                    "where nominas.idnomina = %s ")
                dias = select_sql((sql, (self.id)))[0]
            except:
                dias = 0
        print "    Dias_Efectivos tiempo parcial", dias
        return dias
예제 #11
0
 def actualiza_ppextra(self):
     valor = self.devengo_ppextra()
     sql = ('Update '
            '    nominas '
            'Set '
            '    base_ppextra = ' + unicode(valor) + ' '
            'Where '
            '    idnomina = ' + unicode(self.id) + ' ')
     select_sql(sql)
     self.base_ppextra = self.dato_nomina('base_ppextra')
예제 #12
0
 def ac_importe_emp_devengo(self):
     sql = ("Update "
            "    nomina_devengos A "
            "        inner join "
            "            emp_devengos B "
            "            on A.idemp_devengo = B.idemp_devengo "
            "Set "
            "    A.importe = B.importe "
            "Where "
            "    A.idnomina_devengo = " + unicode(self.id) + " ")
     select_sql(sql)
예제 #13
0
 def ac_importe_emp_devengo(self):
     sql = ("Update "
            "    nomina_devengos A "
            "        inner join "
            "            emp_devengos B "
            "            on A.idemp_devengo = B.idemp_devengo "
            "Set "
            "    A.importe = B.importe "
            "Where "
            "    A.idnomina_devengo = " + unicode(self.id) + " ")
     select_sql(sql)
예제 #14
0
 def actualiza_liquido(self, nomina):
     sql = ("select emp_contratos.neto from emp_contratos "
            "inner join nominas "
            "on nominas.idemp_contratos = emp_contratos.idemp_contratos "
            "where nominas.idnomina = %s;")
     liquido = select_sql((sql, (nomina)))[0]
     sql = ("update nominas "
            "set liquido = %s "
            "where nominas.idnomina = %s")
     select_sql((sql, (liquido, nomina)))
     return liquido
예제 #15
0
 def borrar_nomina(self):
     sql = ("Delete "
            "    nominas, nomina_devengos "
            "From "
            "    nominas "
            "        inner join "
            "            nomina_devengos "
            "            on nominas.idnomina = nomina_devengos.idnomina "
            "Where "
            "    nominas.idnomina = " + unicode(self.id) + " ")
     select_sql(sql)
예제 #16
0
 def actualiza_liquido(self, nomina):
     sql = ("select emp_contratos.neto from emp_contratos "
            "inner join nominas "
            "on nominas.idemp_contratos = emp_contratos.idemp_contratos "
            "where nominas.idnomina = %s;")
     liquido = select_sql((sql, (nomina)))[0]
     sql = ("update nominas "
            "set liquido = %s "
            "where nominas.idnomina = %s")
     select_sql((sql, (liquido, nomina)))
     return liquido
예제 #17
0
 def borrar_nomina(self):
     sql = ("Delete "
            "    nominas, nomina_devengos "
            "From "
            "    nominas "
            "        inner join "
            "            nomina_devengos "
            "            on nominas.idnomina = nomina_devengos.idnomina "
            "Where "
            "    nominas.idnomina = " + unicode(self.id) + " ")
     select_sql(sql)
예제 #18
0
 def siguiente(self):
     dato = self.valor
     sql = ("Select " + self.id + " from " + self.tabla + " where " +
            self.id + " >= %s order by " + self.id + " ASC limit 2")
     if dato == "":
         dato = select_sql((sql, self.valor), 1)[0][0]
     else:
         try:
             dato = select_sql((sql, self.valor), 1)[1][0]
         except:
             pass
     return dato
예제 #19
0
 def dato_contratoextincion(self):
     sql = ('Update '
            '    emp_contratos_vacaciones '
            'Set '
            '    dias_disfrutados = %s '
            'Where '
            '    idemp_contrato_vacaciones = ' + unicode(self.id) + ' '
            '    and ejercicio = ' + unicode(self.anio) + ' ')
     if self.dias_disfrutados is not None:
         select_sql((sql, (self.dias_disfrutados + 1)))
     else:
         select_sql((sql, (0)))
예제 #20
0
 def anterior(self):
     dato = self.valor
     sql = ("Select " + self.id + " from " + self.tabla + " where " +
            self.id + " <= %s order by " + self.id + " desc limit 2")
     if dato == "":
         dato = select_sql((sql, self.valor), 1)[0][0]
     else:
         try:
             dato = select_sql((sql, self.valor), 1)[1][0]
         except:
             pass
     return dato
예제 #21
0
 def actualiza_ppextra(self):
     valor = self.devengo_ppextra()
     sql = ('Update '
            '    nominas '
            'Set '
            '    base_ppextra = ' + unicode(valor) +
            ' '
            'Where '
            '    idnomina = ' + unicode(self.id) +
            ' ')
     select_sql(sql)
     self.base_ppextra = self.dato_nomina('base_ppextra')
예제 #22
0
 def dato_contratoextincion(self):
     sql = ('Update '
             '    emp_contratos_vacaciones '
             'Set '
             '    dias_disfrutados = %s '
             'Where '
             '    idemp_contrato_vacaciones = ' + unicode(self.id) + ' '
             '    and ejercicio = ' + unicode(self.anio) + ' ')
     if self.dias_disfrutados is not None:
         select_sql((sql, (self.dias_disfrutados + 1)))
     else:
         select_sql((sql, (0)))
예제 #23
0
 def siguiente(self):
     dato = self.valor
     sql = ("Select " + self.id + " from " + self.tabla +
            " where " + self.id +
            " >= %s order by " + self.id + " ASC limit 2")
     if dato == "":
         dato = select_sql((sql, self.valor), 1)[0][0]
     else:
         try:
             dato = select_sql((sql, self.valor), 1)[1][0]
         except:
             pass
     return dato
예제 #24
0
 def anterior(self):
     dato = self.valor
     sql = ("Select " + self.id + " from " + self.tabla +
            " where " + self.id +
            " <= %s order by " + self.id + " desc limit 2")
     if dato == "":
         dato = select_sql((sql, self.valor), 1)[0][0]
     else:
         try:
             dato = select_sql((sql, self.valor), 1)[1][0]
         except:
             pass
     return dato
예제 #25
0
 def horas_cotizadas(self):
     """
     Devuelve las horas cotizadas en una nomina
     """
     horas = 0
     if self.contrato.contrato.es_tiempo_parcial is True:
         sql = ("Select sum(horas) from emp_tpo_parcial a "
                "left join nominas b "
                "on b.idemp_contratos = a.idemp_contrato "
                "Where month(a.fecha) = %s and year(a.fecha) = %s "
                "and b.idnomina = %s;")
         horas = select_sql(
             (sql, (self.fecha_mes, self.fecha_anio, self.id)))[0]
         if horas is None:
             desdedia = int(
                 self.contrato.periodo_nomina(self.fecha_anio,
                                              self.fecha_mes)[0].day)
             hastadia = int(
                 self.contrato.periodo_nomina(self.fecha_anio,
                                              self.fecha_mes)[1].day)
             cal = self.cta_cot.calendario
             sql = (
                 "select "
                 "lunes * " + str(
                     cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                          desdedia, hastadia, 0)) +
                 " + martes * " + str(
                     cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                          desdedia, hastadia, 1)) +
                 " + miercoles * " + str(
                     cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                          desdedia, hastadia, 2)) +
                 " + jueves * " + str(
                     cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                          desdedia, hastadia, 3)) +
                 " + viernes * " + str(
                     cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                          desdedia, hastadia, 4)) +
                 " + sabado * " + str(
                     cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                          desdedia, hastadia, 5)) +
                 " + domingo * " + str(
                     cal.diasemana_delmes(self.fecha_anio, self.fecha_mes,
                                          desdedia, hastadia, 6)) + " "
                 "from emp_tpo_parcial "
                 "left join nominas "
                 "on emp_tpo_parcial.idemp_contrato = nominas.idemp_contratos "
                 "where nominas.idnomina = %s ")
             horas = select_sql((sql, (self.id)))[0]
     return horas
예제 #26
0
    def update_importes(self, nomina):
        """

        4. Proceso de actualizacion de los importes de las nominas
        """
        sql = ("UPDATE "
                    "nomina_devengos A "
                        "inner join "
                            "emp_devengos B "
                            "on A.idemp_devengo = B.idemp_devengo "
                "set "
                    "A.importe = B.importe "
                "where "
                    "A.idnomina =  %s ")
        select_sql((sql, nomina))
예제 #27
0
 def ac_aportacion_empresa(self):
     sql = ( "update "
                 "nominas "
             "set "
                 "tipo_cc_empresa = " + str(self.costes.tipo_ccomun_emp) + ", "
                 "tipo_dp_empresa = " + str(self.costes.tipo_desempleo_emp) + ", "
                 "tipo_fp_empresa = " + str(self.costes.tipo_fp_emp) + ", "
                 "tipo_fgs_empresa = " + str(self.costes.tipo_fogasa_emp) + ", "
                 "imp_cc_empresa = " + str(self.costes.cont_comun_empresa) + ", "
                 "imp_dp_empresa = " + str(self.costes.desempleo_empresa) + ", "
                 "imp_fp_empresa = " + str(self.costes.formacion_prof_emp) + ", "
                 "imp_fgs_empresa = " + str(self.costes.fogasa_emp) + " "
             "where "
                 "nominas.idnomina = %s;")
     select_sql((sql, (self.nomina_id)),1)
예제 #28
0
 def trabajadores(self,
                  empresa,
                  mes,
                  anio,
                  esnomina=True,
                  esfiniquito=False,
                  esnominapextra=False):
     sql = (
         ""
         "SELECT "
         "    CONCAT_WS(' ',Trabajadores.nombre,Trabajadores.apellido1, "
         "    Trabajadores.apellido2) as nombre, "
         "    Trabajadores.idTrabajadores "
         "FROM "
         "    Nominas.emp_contratos "
         "        left join "
         "            Trabajadores "
         "            On Trabajadores.idTrabajadores = emp_contratos.idtrabajadores "
         "        left join "
         "            empresa "
         "            On empresa.idempresa = emp_contratos.idempresa "
         "        left join "
         "            emp_ctacot "
         "            On emp_ctacot.idctacot = emp_contratos.idemp_ctacot "
         "WHERE "
         "    emp_contratos.idempresa = %s "
         "    and emp_contratos.conversion is Null "
         "    and emp_contratos.prorroga is Null "
         "    and ("
         "        (month(fecha_ini) <= %s and year(fecha_ini)<= %s) "
         "        or (month(fecha_ini)>%s and year(fecha_ini)<%s) "
         "        ) ")
     dato = 0
     if esnomina:
         sql = (
             sql + "    and (fecha_fin is null "
             "        or (month(fecha_fin) >= %s and year(fecha_fin)>= %s) "
             "        or (month(fecha_fin) <= %s and year(fecha_fin)> %s) "
             "        ) ")
         dato = select_sql(
             (sql, (empresa, mes, anio, mes, anio, mes, anio, mes, anio)),
             1)
     if esfiniquito:
         sql = (sql +
                "    and (month(fecha_fin) = %s and year(fecha_fin)= %s) ")
         dato = select_sql(
             (sql, (empresa, mes, anio, mes, anio, mes, anio)), 1)
     return dato
예제 #29
0
 def tipos_formacion_prof(self):
     sql = self.sql +  "and A.es_formprof "
     try:
         dato = select_sql((sql, (self.bases.nomina.fecha_anio)))
     except:
         dato = (0,0)
     return dato
예제 #30
0
 def tipos_horasextras_fmayor(self):
     sql = self.sql +  "and A.es_hora_extra_fmayor "
     try:
         dato = select_sql((sql, (self.bases.nomina.fecha_anio)))
     except:
         dato = (0,0)
     return dato
예제 #31
0
 def trabajadordatos(self, num_trabajador):
     sql = ("SELECT idTrabajadores, nombre, apellido1, apellido2, nif, naf, "
            "dir, numero, piso, puerta, cp, esnif, esnie "
            "FROM Trabajadores "
            "WHERE idTrabajadores =%s" )
     dato = select_sql((sql,(num_trabajador)))
     return dato
예제 #32
0
    def festivosdelmes(self, calendario, anio, mes, desdedia, hastadia):
        """

        Calcula el numero de dias festivos de un mes teniendo en cuenta las
        fechas introducidas.
        Los parámetros que hay que introducir son de tipo INT

            Dias.festivosdelmes(calendario, anio, mes, desdedia, hastadia)

        Los diasfestivos deben aportarse de un calendario externo.
        """
        sql = ("Select "
               "count(*) "
               "From "
               "cal_festivos "
               "Where "
               "idcalendario = %s "
               "and anio = %s "
               "and mes = %s "
               "and dia >= %s "
               "and dia <= %s "
               "Group by "
               "idcalendario;")
        dato = 0
        try:
            dato = select_sql(
                (sql, (calendario, anio, mes, desdedia, hastadia)))[0]
        except:
            pass
        return dato
예제 #33
0
    def iddevengo_nomina(self, iddevengo):
        """

        Devuelve un devengo concreto de una nomina concreta

            SqlNominas().iddevengo_nomina(iddevengo)
        """
        sql = ("select "
               "    concepto, imp_cuantia, imp_precio, "
               "    nominas.nombre, nominas.empresa, month(nominas.fecha), "
               "    year(nominas.fecha) "
               "from "
               "    nomina_devengos "
               "        left join "
               "            nominas "
               "            on nominas.idnomina = nomina_devengos.idnomina "
               "        left join "
               "            emp_contratos "
               "            on nominas.idemp_contratos = emp_contratos.idemp_contratos "
               "        left join "
               "            Trabajadores "
               "            on emp_contratos.idTrabajadores = Trabajadores.idTrabajadores "
               "where "
               "    idnomina_devengo = %s")
        dato = select_sql((sql, (iddevengo)))
        return dato
예제 #34
0
    def iddevengo_nomina(self, iddevengo):
        """

        Devuelve un devengo concreto de una nomina concreta

            SqlNominas().iddevengo_nomina(iddevengo)
        """
        sql = (
            "select "
            "    concepto, imp_cuantia, imp_precio, "
            "    nominas.nombre, nominas.empresa, month(nominas.fecha), "
            "    year(nominas.fecha) "
            "from "
            "    nomina_devengos "
            "        left join "
            "            nominas "
            "            on nominas.idnomina = nomina_devengos.idnomina "
            "        left join "
            "            emp_contratos "
            "            on nominas.idemp_contratos = emp_contratos.idemp_contratos "
            "        left join "
            "            Trabajadores "
            "            on emp_contratos.idTrabajadores = Trabajadores.idTrabajadores "
            "where "
            "    idnomina_devengo = %s")
        dato = select_sql((sql, (iddevengo)))
        return dato
예제 #35
0
    def festivosdelmes(self, calendario, anio, mes, desdedia, hastadia):
        """

        Calcula el numero de dias festivos de un mes teniendo en cuenta las
        fechas introducidas.
        Los parámetros que hay que introducir son de tipo INT

            Dias.festivosdelmes(calendario, anio, mes, desdedia, hastadia)

        Los diasfestivos deben aportarse de un calendario externo.
        """
        sql = ( "Select "
                    "count(*) "
                "From "
                    "cal_festivos "
                "Where "
                    "idcalendario = %s "
                    "and anio = %s "
                    "and mes = %s "
                    "and dia >= %s "
                    "and dia <= %s "
                "Group by "
                    "idcalendario;")
        dato = 0
        try:
            dato = select_sql((sql, (calendario, anio, mes, desdedia, hastadia)))[0]
        except:
            pass
        return dato
예제 #36
0
 def tipos_formacion_prof(self):
     sql = self.sql + "and A.es_formprof "
     try:
         dato = select_sql((sql, (self.bases.nomina.fecha_anio)))
     except:
         dato = (0, 0)
     return dato
예제 #37
0
 def __init__(self, contrato):
     sql = ("Select "
                 "A.idemp_contratos, A.idempresa, A.idemp_ctacot, "
                 "A.idtrabajadores, A.fecha_fin, A.fecha_ini, B.idtb_vacaciones, "
                 "C.cantidad, C.cantidad_min, C.esdias_naturales, "
                 "C.esdias_laborales, C.consab, C.condom, C.confestivos, "
                 "C.esmindias_naturales, C.esmindias_laborales, "
                 "1 + datediff(fecha_fin, "
                             "if(year(fecha_fin) = year(fecha_ini), "
                                "fecha_ini, "
                                "makedate(year(fecha_fin),1))"
                             ") "
            "from emp_contratos A "
                 "inner join emp_vacaciones B "
                     "on A.idempresa = B.idempresa "
                     "and A.idemp_ctacot = B.idemp_ctacot "
                 "inner join tb_vacaciones C "
                     "on B.idtb_vacaciones = C.idtb_vacaciones "
            "where A.idemp_contratos = %s ")
     datos = select_sql((sql, contrato))
     print datos
     self.idcontrato = datos[0]
     self.idempresa = datos[1]
     self.idcuentacot = datos[2]
     self.idtrabajador = datos[3]
     self.fincontrato = datos[4]
     self.inicontrato = datos[5]
     self.idvacaciones = datos[6]
     self.cant_dias = datos[7]
     self.cant_dias_min = datos[8]
     self.dias_trabajados_ultimo_anio= datos[16]
     self.dias_vacaciones = self.dias_vacaciones_anio()
     self.dias_vacaciones_apagar = round(float(self.dias_vacaciones) / 365 * float(self.dias_trabajados_ultimo_anio),2)
예제 #38
0
 def tipos_cont_comun(self):
     sql = self.sql + "and A.es_contcomun "
     try:
         dato = select_sql((sql, (self.bases.nomina.fecha_anio)))
     except:
         dato = (0, 0)
     return dato
예제 #39
0
 def ver_devengos(self, trabajador, mes, anio):
     sql = ("select "
            "    nomina_devengos.idnomina_devengo, "
            "    nomina_devengos.concepto, "
            "    nomina_devengos.imp_cuantia, "
            "    nomina_devengos.imp_precio, "
            "    nomina_devengos.imp_devengo, "
            "    nomina_devengos.imp_deduccion "
            "from "
            "    nomina_devengos "
            "        left join "
            "            nominas "
            "            on nominas.idnomina = nomina_devengos.idnomina "
            "        left join "
            "            emp_contratos "
            "            on nominas.idemp_contratos = emp_contratos.idemp_contratos "
            "where "
            "    emp_contratos.idtrabajadores = %s "
            "    and month(nominas.fecha) = %s "
            "    and year(nominas.fecha) = %s "
            "    and esdevengo "
            "order by "
            "    orden")
     dato = select_sql((sql, (trabajador, mes, anio)), 1)
     return dato
예제 #40
0
 def valorcelda(self, celda, nomina, c, idform_celda, *campo):
     # # Funcion que nos devuelve el contenido de la celda
     #  de la cabecera y del pie
     # celda es idform_concepto
     try:
         sql = ("select " + unicode(campo[0]) +
                " from nomina_devengos "
                " where idnomina = %s and idform_concepto = %s")
         reg = select_sql((sql, (nomina, celda)))[0]
     except:
         try:
             reg = SqlNominas(nomina).dato_nomina(campo[0])
             if not reg:
                 reg = SqlNominas(nomina).__dict__[campo[0]]
         except:
             pass
     dataform = FormCelda(idform_celda)
     c.setFillGray(0)
     c.setFont("Courier", 9)
     # Comprobamos que los datos de fecha y valor queden como string correcto
     if campo[0] == 'fecha':
         reg = SqlNominas(nomina).fecha_formlargo
     if isinstance(reg, float):
         reg = "{:,.2f}".format(reg)
     if reg is not None:
         dataform.dato_draw(c,reg)
예제 #41
0
 def ver_devengos(self, trabajador, mes, anio):
     sql = (
         "select "
         "    nomina_devengos.idnomina_devengo, "
         "    nomina_devengos.concepto, "
         "    nomina_devengos.imp_cuantia, "
         "    nomina_devengos.imp_precio, "
         "    nomina_devengos.imp_devengo, "
         "    nomina_devengos.imp_deduccion "
         "from "
         "    nomina_devengos "
         "        left join "
         "            nominas "
         "            on nominas.idnomina = nomina_devengos.idnomina "
         "        left join "
         "            emp_contratos "
         "            on nominas.idemp_contratos = emp_contratos.idemp_contratos "
         "where "
         "    emp_contratos.idtrabajadores = %s "
         "    and month(nominas.fecha) = %s "
         "    and year(nominas.fecha) = %s "
         "    and esdevengo "
         "order by "
         "    orden")
     dato = select_sql((sql, (trabajador, mes, anio)), 1)
     return dato
예제 #42
0
 def tipos_cont_comun(self):
     sql = self.sql + "and A.es_contcomun "
     try:
         dato = select_sql((sql, (self.bases.nomina.fecha_anio)))
     except:
         dato = (0,0)
     return dato
예제 #43
0
 def base_it(self):
     base_it_tot = 0
     try:
         self.it_nomina = It_nomina(self.id)
         self.dias_pendientes = self.it_nomina.it_dias_pendientes
         dias_acumulados = self.it_nomina.it_dias_acumulados
         dias_aplicados = dias_acumulados - self.dias_pendientes
         base_it_dia = self.it_nomina.it.basecot_diaria_it
         if self.it_nomina.it.es_cont_comun:
             sql = ("Select "
                    "desdedia, hastadia, porcentaje "
                    "From "
                    "tb_it "
                    "Where "
                    "es_contcomun "
                    "order by desdedia ")
             dato = select_sql(sql, 1)
             for j in dato:
                 if j[0] >= dias_aplicados and self.dias_pendientes > 0:
                     if (j[1] - j[0] + 1) >= self.dias_pendientes:
                         base_it_tot += base_it_dia * j[
                             2] * self.dias_pendientes
                         dias_aplicados = dias_aplicados + self.dias_pendientes
                         self.dias_pendientes = self.dias_pendientes - self.dias_pendientes
                     else:
                         base_it_tot += base_it_dia * j[2] * (j[1] - j[0] +
                                                              1)
                         dias_aplicados = dias_aplicados + j[1] - j[0] + 1
                         self.dias_pendientes -= dias_aplicados
         if self.it_registro.es_enfermedad_prof:
             pass
     except:
         pass
     return base_it_tot
예제 #44
0
 def tipos_desempleo(self):
     sql = self.sql +  "and A.es_desempleo "
     try:
         dato = select_sql((sql, (self.bases.nomina.fecha_anio)))
     except:
         dato = (0,0)
     return dato
예제 #45
0
 def ac_aportacion_empresa(self):
     sql = ("update "
            "nominas "
            "set "
            "tipo_cc_empresa = " + str(self.costes.tipo_ccomun_emp) + ", "
            "tipo_dp_empresa = " + str(self.costes.tipo_desempleo_emp) +
            ", "
            "tipo_fp_empresa = " + str(self.costes.tipo_fp_emp) + ", "
            "tipo_fgs_empresa = " + str(self.costes.tipo_fogasa_emp) + ", "
            "imp_cc_empresa = " + str(self.costes.cont_comun_empresa) + ", "
            "imp_dp_empresa = " + str(self.costes.desempleo_empresa) + ", "
            "imp_fp_empresa = " + str(self.costes.formacion_prof_emp) + ", "
            "imp_fgs_empresa = " + str(self.costes.fogasa_emp) + " "
            "where "
            "nominas.idnomina = %s;")
     select_sql((sql, (self.nomina_id)), 1)
예제 #46
0
 def tipos_desempleo(self):
     sql = self.sql + "and A.es_desempleo "
     try:
         dato = select_sql((sql, (self.bases.nomina.fecha_anio)))
     except:
         dato = (0, 0)
     return dato
예제 #47
0
 def tipos_horasextras_fmayor(self):
     sql = self.sql + "and A.es_hora_extra_fmayor "
     try:
         dato = select_sql((sql, (self.bases.nomina.fecha_anio)))
     except:
         dato = (0, 0)
     return dato
예제 #48
0
    def idnom_mes(self, empresa, mes, anio, esuna):
        """

        Nos da la id de las nominas de un mes de un anio de una empresa

            SqlNominas().idnom_mes(numero_empresa, mes, anio, es_una_sola_nomina)

        Los valores para esuna son:

            esuna = 0 cuando son mas de una nomina a listar
            esuna = numero_nomina cuando solo es una nomina a listar

        En este ultimo caso hay que apoyarse en

            SqlNominas().nomina_trabajador_mes

        Devuelve el valor de idnomina
        """
        if esuna == 0:
            sql = ("SELECT idnomina "
                   "from nominas "
                   "where idempresa = %s and month(fecha) = %s "
                   "and year(fecha) = %s "
                   "and (es_finiquito is null or es_finiquito = 0);")
            dato = select_sql((sql, (empresa, mes, anio)), 1)
        else:
            dato = ((esuna,),)
        return dato
예제 #49
0
    def idnom_mes(self, empresa, mes, anio, esuna):
        """

        Nos da la id de las nominas de un mes de un anio de una empresa

            SqlNominas().idnom_mes(numero_empresa, mes, anio, es_una_sola_nomina)

        Los valores para esuna son:

            esuna = 0 cuando son mas de una nomina a listar
            esuna = numero_nomina cuando solo es una nomina a listar

        En este ultimo caso hay que apoyarse en

            SqlNominas().nomina_trabajador_mes

        Devuelve el valor de idnomina
        """
        if esuna == 0:
            sql = ("SELECT idnomina "
                   "from nominas "
                   "where idempresa = %s and month(fecha) = %s "
                   "and year(fecha) = %s "
                   "and (es_finiquito is null or es_finiquito = 0);")
            dato = select_sql((sql, (empresa, mes, anio)), 1)
        else:
            dato = ((esuna, ), )
        return dato
예제 #50
0
    def nomina_trabajador_mes(self,
                              trabajador,
                              mes,
                              anio,
                              esnomina=True,
                              esfiniquito=False,
                              esnominapextra=False):
        """

        Devuelve el numero de nomina del trabajador de un mes y anio dados

            SqlNominas().nomina_trabajador_mes(numero_trabajador, mes, anio)
        """
        sql = (
            "SELECT "
            "    idnomina "
            "FROM "
            "    nominas "
            "        Left Join emp_contratos "
            "        on nominas.idemp_contratos = emp_contratos.idemp_contratos "
            "WHERE "
            "    idtrabajadores = %s "
            "    and month(fecha) = %s "
            "    and year(fecha) = %s ")
        if esnomina:
            sql = (sql + "    and (es_finiquito is null or es_finiquito = 0) ")
        elif esfiniquito:
            sql = (sql + "    and es_finiquito ")
        dato = select_sql((sql, (trabajador, mes, anio)))
        return dato[0]
예제 #51
0
 def base_it(self):
     base_it_tot = 0
     try:
         self.it_nomina = It_nomina(self.id)
         self.dias_pendientes = self.it_nomina.it_dias_pendientes
         dias_acumulados = self.it_nomina.it_dias_acumulados
         dias_aplicados = dias_acumulados - self.dias_pendientes
         base_it_dia = self.it_nomina.it.basecot_diaria_it
         if self.it_nomina.it.es_cont_comun:
             sql = ( "Select "
                         "desdedia, hastadia, porcentaje "
                     "From "
                         "tb_it "
                     "Where "
                         "es_contcomun "
                         "order by desdedia ")
             dato = select_sql(sql,1)
             for j in dato:
                 if j[0] >= dias_aplicados and self.dias_pendientes >0:
                     if (j[1]-j[0]+1) >= self.dias_pendientes:
                         base_it_tot += base_it_dia * j[2] * self.dias_pendientes
                         dias_aplicados = dias_aplicados + self.dias_pendientes
                         self.dias_pendientes = self.dias_pendientes - self.dias_pendientes
                     else:
                         base_it_tot += base_it_dia * j[2] * (j[1] - j[0] + 1)
                         dias_aplicados = dias_aplicados + j[1]-j[0]+1
                         self.dias_pendientes -= dias_aplicados
         if self.it_registro.es_enfermedad_prof:
             pass
     except:
         pass
     return base_it_tot
예제 #52
0
 def empresadatos(self, num_empresa):
     # Nombre y apellidos, direccion postal, CIF...
     sql = ("SELECT idempresa, nombre, apellido1, apellido2, cif, dir, "
            "numero, piso, puerta, cp, escif, esnif, esnie "
            "FROM empresa "
            "WHERE idempresa=%s" )
     dato = select_sql((sql,(num_empresa)))
     return dato
예제 #53
0
 def form_concepto(self):
     sql = ('Select '
            '    idform_concepto '
            'From '
            '    form_nomina_celda '
            'Where '
            '    convert(A.dato, unsigned integer) = ' + unicode(self.formulario_id))
     return select_sql(sql)[0]
예제 #54
0
 def num_pextra(self):
     sql = ("Select "
            "   count(*) "
            "From "
            "   tb_convenios_pextra "
            "Where "
            "   idtb_convenio = " + unicode(self.convenio_id))
     return int(select_sql(sql)[0])
예제 #55
0
 def num_pextra(self):
     sql = ("Select "
            "   count(*) "
            "From "
            "   tb_convenios_pextra "
            "Where "
            "   idtb_convenio = " + unicode(self.convenio_id))
     return int(select_sql(sql)[0])
예제 #56
0
    def grabar(self, widgets = None, campos = None):

        sql = ("insert into " + self.tabla + " set ")
        for k in (range(len(widgets))):
            d = widgets[k].get_text()
            print "d",len(d), campos[k], d
            if len(d) == 10:
                if d[2] == '/' and d[5] == '/':
                    d = d[6:10] + '-' + d[3:5] + '-' + d[0:2]
                    print d
                    widgets[k].set_text(d)
                    print d, widgets[k].get_text()
            sql = sql + campos[k] + " = '" + widgets[k].get_text() + "'"
            if k < max(range(len(widgets))):
                sql += ", "
        select_sql((sql))
        pass