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
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
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}')
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
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()
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))
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
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
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
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
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
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
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