コード例 #1
0
    def obtener_ausencia(self, fkpersona, fecha):
        respuesta = ""

        ajuste = self.db.query(Ajustes).filter(Ajustes.enabled == True).first()

        if ajuste.oracle:
            # version oracle
            ausencia = self.db.query(Ausencia).filter(
                Ausencia.fkpersona == fkpersona).filter(
                    Ausencia.estado == "Aceptado").filter(
                        and_(
                            func.to_date(Ausencia.fechai) <= fecha,
                            func.to_date(Ausencia.fechaf) >= fecha)).all()
        else:
            # version postgres
            ausencia = self.db.query(Ausencia).filter(
                Ausencia.fkpersona == fkpersona).filter(
                    Ausencia.estado == "Aceptado").filter(
                        and_(
                            func.date(Ausencia.fechai) <= fecha,
                            func.date(Ausencia.fechaf) >= fecha)).all()

        if len(ausencia) > 0:
            respuesta = ausencia[0].tipoausencia.nombre

        return respuesta
コード例 #2
0
    def actualizar_ausencias(self, objeto):

        fechas = BitacoraManager(self.db).rango_fechas(objeto.fechai,
                                                       objeto.fechaf)

        for fech in fechas:
            fecha_hoy = fech.date()

            ajuste = self.db.query(Ajustes).filter(
                Ajustes.enabled == True).first()

            if ajuste.oracle:
                # version oracle
                asistencia_personal = self.db.query(Asistencia).filter(
                    Asistencia.fkpersona == objeto.fkpersona).filter(
                        func.to_date(Asistencia.fecha).between(
                            fecha_hoy, fecha_hoy)).all()

            else:
                # version postgres
                asistencia_personal = self.db.query(Asistencia).filter(
                    Asistencia.fkpersona == objeto.fkpersona).filter(
                        func.date(Asistencia.fecha) == fecha_hoy).all()

            for asistencia in asistencia_personal:
                tipoausencia = self.db.query(Tipoausencia).filter(
                    Tipoausencia.id == objeto.fktipoausencia).first()
                asistencia.observacion = tipoausencia.nombre
                super().update(asistencia)

        return objeto
コード例 #3
0
ファイル: db.py プロジェクト: asselp/PatentParser
 def save_patents(self, records: Patent):
     with self.engine.connect() as conn:
         insert_statement = self.table.insert().values(
             id=records.id,
             registration_date=func.to_date(records.registration_date,
                                            'DD.MM.YYYY'),
             receipt_date=func.to_date(records.receipt_date, 'DD.MM.YYYY'),
             full_name=records.full_name,
             type=records.type,
             name_of_work=records.name_of_work,
             work_creation_date=func.to_date(records.work_creation_date,
                                             'DD.MM.YYYY'),
             status=records.status)
         try:
             conn.execute(insert_statement)
             self.logger.info('Row was writen to DB')
         except exc.ObjectNotExecutableError as e:
             self.logger.error(f'Transaction error: {e}')
コード例 #4
0
    def listar_dia_persona(self, fkpersona):
        fecha_zona = datetime.now(pytz.timezone('America/La_Paz'))
        fecha = fecha_zona
        fechahoy = str(fecha.day) + "/" + str(fecha.month) + "/" + str(
            fecha.year)
        fechahoy = datetime.strptime(fechahoy, '%d/%m/%Y')

        ajuste = self.db.query(Ajustes).filter(Ajustes.enabled == True).first()

        if ajuste.oracle:
            # version oracle
            if fkpersona:

                objeto = self.db.query(self.entity).filter(
                    self.entity.fkpersona == fkpersona).filter(
                        func.to_date(self.entity.fecha).between(
                            fechahoy, fechahoy)).order_by(
                                self.entity.mentrada.asc()).all()
            else:
                objeto = self.db.query(self.entity).filter(
                    func.to_date(self.entity.fecha).between(
                        fechahoy,
                        fechahoy)).order_by(self.entity.mentrada.asc()).all()
        else:
            # version postgres
            if fkpersona:

                objeto = self.db.query(self.entity).filter(
                    self.entity.fkpersona == fkpersona).filter(
                        func.date(self.entity.fecha) == fechahoy).order_by(
                            self.entity.mentrada.asc()).all()
            else:
                objeto = self.db.query(self.entity).filter(
                    func.date(self.entity.fecha) == fechahoy).order_by(
                        self.entity.mentrada.asc()).all()

        return objeto
コード例 #5
0
    def obtener_tareas_dia(self):
        fecha_dia = datetime.now(pytz.timezone('America/La_Paz'))

        ajuste = self.db.query(Ajustes).filter(Ajustes.enabled == True).first()

        if ajuste.oracle:
            # version oracle
            return self.db.query(
                self.entity).filter(self.entity.enabled == True).filter(
                    func.to_date(self.entity.fecha).between(
                        fecha_dia.date(), fecha_dia.date())).all()

        else:
            # version postgres
            return self.db.query(
                self.entity).filter(self.entity.enabled == True).filter(
                    func.date(self.entity.fecha) == fecha_dia.date()).all()
コード例 #6
0
    def list_all(self):
        fecha_zona = datetime.now(pytz.timezone('America/La_Paz'))
        fecha = fecha_zona
        fechahoy = str(fecha.day) + "/" + str(fecha.month) + "/" + str(
            fecha.year)
        fechahoy = datetime.strptime(fechahoy, '%d/%m/%Y')

        ajuste = self.db.query(Ajustes).filter(Ajustes.enabled == True).first()

        if ajuste.oracle:
            # version oracle
            return dict(objects=self.db.query(self.entity).filter(
                self.entity.enabled == True).filter(
                    func.to_date(self.entity.fechaInicio).between(
                        fechahoy, fechahoy)))
        else:
            # version postgres
            return dict(objects=self.db.query(self.entity).filter(
                self.entity.enabled == True).filter(
                    func.date(self.entity.fechaInicio) == fechahoy))
コード例 #7
0
    def obtener_marcaciones(self, codigo, fechainicio, fechafin):

        ajuste = self.db.query(Ajustes).filter(Ajustes.enabled == True).first()

        if ajuste.oracle:
            # version oracle
            objeto = self.db.query(
                self.entity).filter(self.entity.codigo == codigo).filter(
                    func.to_date(self.entity.time).between(
                        fechainicio,
                        fechafin)).order_by(self.entity.id.asc()).all()

        else:
            # version postgres
            objeto = self.db.query(
                self.entity).filter(self.entity.codigo == codigo).filter(
                    func.date(self.entity.time).between(
                        fechainicio,
                        fechafin)).order_by(self.entity.id.asc()).all()

        return objeto
コード例 #8
0
    def listar_por_dia(self):
        list = {}
        c = 0

        fecha_zona = datetime.now(pytz.timezone('America/La_Paz'))
        fecha = fecha_zona
        fechahoy = str(fecha.day) + "/" + str(fecha.month) + "/" + str(
            fecha.year)
        fechahoy = datetime.strptime(fechahoy, '%d/%m/%Y')

        ajuste = self.db.query(Ajustes).filter(Ajustes.enabled == True).first()

        if ajuste.oracle:
            # version oracle
            objeto = self.db.query(self.entity).filter(
                func.to_date(self.entity.time).between(fechahoy,
                                                       fechahoy)).all()
        else:
            # version postgres
            objeto = self.db.query(self.entity).filter(
                func.date(self.entity.time).between(fechahoy, fechahoy)).all()

        for x in objeto:
            try:
                empleado = self.db.query(Empleado).join(Persona).filter(
                    Empleado.codigo == x.codigo).one()
                nombrepersona = empleado.persona.fullname
            except Exception as ex:
                nombrepersona = "----"

            list[c] = dict(id=x.id,
                           codigo=x.codigo,
                           nombre=nombrepersona,
                           fecha=x.time.strftime("%d/%m/%Y"),
                           hora=x.time.strftime("%H:%M:%S"),
                           dispositivo=x.dispositivo.descripcion)
            c = c + 1

        return list
コード例 #9
0
    def filtrar(self, fechainicio, fechafin):
        list = {}
        c = 0

        ajuste = self.db.query(Ajustes).filter(Ajustes.enabled == True).first()

        if ajuste.oracle:
            # version oracle
            objeto = self.db.query(self.entity).filter(
                func.to_date(self.entity.time).between(
                    fechainicio,
                    fechafin)).order_by(self.entity.id.desc()).all()
        else:
            # version postgres
            objeto = self.db.query(self.entity).filter(
                func.date(self.entity.time).between(
                    fechainicio,
                    fechafin)).order_by(self.entity.id.desc()).all()

        for x in objeto:
            try:
                empleado = self.db.query(Empleado).join(Persona).filter(
                    Empleado.codigo == x.codigo).one()
                nombrepersona = empleado.persona.fullname
            except Exception as ex:
                nombrepersona = "----"

            list[c] = dict(id=x.id,
                           codigo=x.codigo,
                           nombre=nombrepersona,
                           fecha=x.time.strftime("%d/%m/%Y"),
                           hora=x.time.strftime("%H:%M:%S"),
                           dispositivo=x.dispositivo.descripcion)
            c = c + 1

        return list
コード例 #10
0
ファイル: managers.py プロジェクト: berthy7/cloudgh
    def filtrar(self, diccionario, fechainicio, fechafin, idpersona):
        lista = diccionario['lista']
        c = diccionario['contador']
        ajuste = self.db.query(Ajustes).filter(Ajustes.enabled == True).first()

        if ajuste.oracle:
            # version oracle
            objeto = self.db.query(Asistencia).filter(Asistencia.fkpersona == idpersona).filter(Asistencia.extra != None).filter(func.to_date(Asistencia.fecha).between(fechainicio, fechafin)).order_by(Asistencia.nombrecompleto.asc()).all()

        else:
            # version postgres
            objeto = self.db.query(Asistencia).filter(Asistencia.fkpersona == idpersona).filter(Asistencia.extra != None).filter(func.date(Asistencia.fecha).between(fechainicio, fechafin)).order_by(Asistencia.nombrecompleto.asc()).all()

        for x in objeto:
            if x.mentrada:
                mentrada = x.mentrada.strftime("%H:%M")
            else:
                mentrada = "------"

            if x.msalida:
                msalida = x.msalida.strftime("%H:%M")
            else:
                msalida = "------"

            if x.retraso:
                retraso = x.retraso.strftime("%H:%M")
            else:
                retraso = "------"

            if x.extra:
                extra = x.extra.strftime("%H:%M")
                for ob in x.autorizacion:
                    if ob.enabled:
                        extra = ob.horaextra.strftime("%H:%M")
            else:
                extra = "------"

            if x.enabled:
                estado = '<input id="'+str(x.id)+'" onClick="event.preventDefault();autorizarhoras(this)" data-id="'+str(x.id)+'" type="checkbox" class="module chk-col-deep-purple estado_platos" checked /><label for="'+str(x.id)+'"></label>'
            else:
                estado = '<input id="'+str(x.id)+'" onClick="event.preventDefault();autorizarhoras(this)" data-id="'+str(x.id)+'" type="checkbox" class="module chk-col-deep-purple estado_platos"  /><label for="'+str(x.id)+'"></label>'

            lista[c] = dict(id=x.id, codigo=x.codigo, nombre=x.nombrecompleto, fecha=x.fecha.strftime("%d/%m/%Y"),
                           entrada=x.entrada.strftime("%H:%M"),salida=x.salida.strftime("%H:%M"),
                           mentrada=mentrada, msalida=msalida, observacion=x.observacion, retraso=retraso, extra=extra,
                           estado= estado)
            c = c + 1

        diccionario = dict(lista=lista, contador=c)

        return diccionario
コード例 #11
0
ファイル: managers.py プロジェクト: berthy7/cloudgh
    def listar_por_dia(self):
        fecha_zona = datetime.now(pytz.timezone('America/La_Paz'))
        fecha = fecha_zona
        fechahoy = str(fecha.day) + "/" + str(fecha.month) + "/" + str(fecha.year)
        fechahoy = datetime.strptime(fechahoy, '%d/%m/%Y')

        fechafinn = fechahoy + timedelta(days=1)
        c = 0

        ajuste = self.db.query(Ajustes).filter(Ajustes.enabled == True).first()

        if ajuste.oracle:
            # version oracle
            objeto = self.db.query(Asistencia).filter(Asistencia.extra != None).filter(func.to_date(Asistencia.fecha) == fechahoy).order_by(Asistencia.mentrada.asc()).all()
        else:
            # version postgres
            objeto = self.db.query(Asistencia).filter(Asistencia.extra != None).filter(func.date(Asistencia.fecha) == fechahoy).order_by(
                Asistencia.mentrada.asc()).all()

        for obj in objeto:

            for ob in obj.autorizacion:
                if ob.enabled:

                    obj.extra = ob.horaextra

        return objeto
コード例 #12
0
ファイル: managers.py プロジェクト: berthy7/cloudgh
    def listar_por_dia_autorizar(self):
        lista = list()
        c = 0
        fecha_zona = datetime.now(pytz.timezone('America/La_Paz'))
        fecha = fecha_zona
        fechahoy = str(fecha.day) + "/" + str(fecha.month) + "/" + str(fecha.year)
        fechahoy = datetime.strptime(fechahoy, '%d/%m/%Y')

        fechafinn = fechahoy + timedelta(days=1)

        ajuste = self.db.query(Ajustes).filter(Ajustes.enabled == True).first()

        if ajuste.oracle:
            # version oracle
            objeto = self.db.query(Asistencia).filter(Asistencia.extra != None).filter(func.to_date(Asistencia.fecha) == fechahoy).order_by(Asistencia.mentrada.asc()).all()
        else:
            # version postgres
            objeto = self.db.query(Asistencia).filter(Asistencia.extra != None).filter(func.date(Asistencia.fecha) == fechahoy).order_by(
                Asistencia.mentrada.asc()).all()

        for x in objeto:

            for ob in x.autorizacion:
                if ob.enabled:
                    x.extra = ob.horaextra

            if x.mentrada:
                mentrada = x.mentrada.strftime("%H:%M")
            else:
                mentrada = "------"

            if x.msalida:
                msalida = x.msalida.strftime("%H:%M")
            else:
                msalida = "------"

            if x.retraso:
                retraso = x.retraso.strftime("%H:%M")
            else:
                retraso = "------"

            if x.extra:
                extra = x.extra.strftime("%H:%M")
                for ob in x.autorizacion:
                    if ob.enabled:
                        extra = ob.horaextra.strftime("%H:%M")
            else:
                extra = "------"

            if x.enabled:
                estado = '<input id="'+str(x.id)+'" onClick="event.preventDefault();autorizarhoras(this)" data-id="'+str(x.id)+'" type="checkbox" class="module chk-col-deep-purple estado_platos" checked /><label for="'+str(x.id)+'"></label>'
            else:
                estado = '<input id="'+str(x.id)+'" onClick="event.preventDefault();autorizarhoras(this)" data-id="'+str(x.id)+'" type="checkbox" class="module chk-col-deep-purple estado_platos"  /><label for="'+str(x.id)+'"></label>'

            lista.append(dict(id=x.id, codigo=x.codigo, nombre=x.nombrecompleto, fecha=x.fecha.strftime("%d/%m/%Y"),
                           entrada=x.entrada.strftime("%H:%M"),salida=x.salida.strftime("%H:%M"),
                           mentrada=mentrada, msalida=msalida, observacion=x.observacion, retraso=retraso, extra=extra,
                           estado= estado))



        return lista
コード例 #13
0
    def filtrar(self, fechainicio, fechafin, fkpersona):
        list = {}
        c = 0

        ajuste = self.db.query(Ajustes).filter(Ajustes.enabled == True).first()

        if ajuste.oracle:
            # version oracle
            if fkpersona:
                objeto = self.db.query(self.entity).filter(
                    self.entity.fkpersona == fkpersona).filter(
                        func.to_date(self.entity.fecha).between(
                            fechainicio, fechafin)).order_by(
                                self.entity.nombrecompleto.asc()).all()

            else:
                objeto = self.db.query(self.entity).filter(
                    func.to_date(self.entity.fecha).between(
                        fechainicio, fechafin)).order_by(
                            self.entity.nombrecompleto.asc()).all()
        else:
            # version postgres
            if fkpersona:
                objeto = self.db.query(self.entity).filter(
                    self.entity.fkpersona == fkpersona).filter(
                        func.date(self.entity.fecha).between(
                            fechainicio, fechafin)).order_by(
                                self.entity.nombrecompleto.asc()).all()

            else:
                objeto = self.db.query(self.entity).filter(
                    func.date(self.entity.fecha).between(
                        fechainicio, fechafin)).order_by(
                            self.entity.nombrecompleto.asc()).all()

        for x in objeto:
            if x.mentrada:
                mentrada = x.mentrada.strftime("%H:%M:%S")
            else:
                mentrada = "------"

            if x.msalida:
                msalida = x.msalida.strftime("%H:%M:%S")
            else:
                msalida = "------"

            if x.retraso:
                retraso = x.retraso.strftime("%H:%M:%S")
            else:
                retraso = "------"

            if x.extra:
                extra = x.extra.strftime("%H:%M:%S")
            else:
                extra = "------"

            list[c] = dict(id=x.id,
                           codigo=x.codigo,
                           nombre=x.nombrecompleto,
                           fecha=x.fecha.strftime("%d/%m/%Y"),
                           entrada=x.entrada.strftime("%H:%M"),
                           salida=x.salida.strftime("%H:%M"),
                           mentrada=mentrada,
                           msalida=msalida,
                           observacion=x.observacion,
                           retraso=retraso,
                           extra=extra)
            c = c + 1

        return list