def buscar_citas(self, med_id, serv_id, fecha_desde): """ Busca un registro de cita :param med_id: :param serv_id: :return: """ fecha_db = fechas.format_cadena_db(fecha_desde) sql = """ select cita_id, cita_fecha, cita_hora, cita_hora_fin,paciente_id, cita_obs, medico_id, cita_serv from tcita where medico_id = {0} and cita_serv = {1} and cita_fecha >= '{2}' order by cita_fecha, cita_hora asc """.format(med_id, serv_id, fecha_db) tupla_desc = ('cita_id', 'cita_fecha', 'cita_hora', 'cita_hora_fin', 'paciente_id', 'cita_obs', 'medico_id', 'cita_serv') citas = self.all(sql, tupla_desc) for cita in citas: cita_fecha = cita['cita_fecha'] cita_hora = cita['cita_hora'] cita_hora_fin = cita['cita_hora_fin'] cita_hora_str = fechas.num_to_hora(cita_hora) cita_fecha_str = fechas.get_fecha_letras_largo( fechas.parse_cadena(cita_fecha)) cita_hora_fin_str = fechas.num_to_hora(cita_hora_fin) cita['cita_fecha_str'] = cita_fecha_str cita['cita_hora_str'] = cita_hora_str cita['cita_hora_fin_str'] = cita_hora_fin_str
def crear(self, form, form_persona, user_crea, sec_id): tticket = TTicket() persona_dao = TPersonaDao(self.dbsession) tticket.tk_nro = form['tk_nro'] tticket.tk_fechahora = datetime.now() per_id = form_persona['per_id'] if per_id is None or per_id == 0: per_id = persona_dao.crear(form_persona, permit_ciruc_null=True) else: persona_dao.actualizar(per_id, form_persona) tticket.tk_perid = per_id tticket.tk_observacion = form['tk_obs'] tticket.tk_usercrea = user_crea tticket.tk_costo = form['tk_costo'] tticket.tk_dia = fechas.parse_cadena(form['tk_dia']) tticket.tk_estado = 1 tticket.tk_servicios = form['tk_servicios'] tticket.sec_id = sec_id self.dbsession.add(tticket) self.dbsession.flush() return tticket.tk_id
def get_historia_porpaciente(self, per_ciruc): """ Buscar todas las veces que se ha registrado una atencion para el paciente especificado :param per_ciruc: :return: ['cosm_id', 'cosm_fechacrea', 'per_ciruc', 'paciente', 'cosm_motivo'] """ sql = u"""select historia.cosm_id, historia.cosm_fechacrea, paciente.per_ciruc, paciente.per_nombres||' '||paciente.per_apellidos as paciente, historia.cosm_motivo, historia.cosm_fechaproxcita from tconsultamedica historia join tpersona paciente on historia.pac_id = paciente.per_id and paciente.per_ciruc = '{0}' order by historia.cosm_fechacrea desc """.format( per_ciruc) tupla_desc = ('cosm_id', 'cosm_fechacrea', 'per_ciruc', 'paciente', 'cosm_motivo', 'cosm_fechaproxcita') historias = self.all(sql, tupla_desc) historias_fecha = [] for item in historias: fecha_str = fechas.get_fecha_letras_largo( fechas.parse_cadena(item['cosm_fechacrea'], formato=ctes.APP_FMT_FECHA_HORA)) item['fecha_crea_largo'] = fecha_str historias_fecha.append(item) return historias_fecha
def actualizar(self, form, user_actualiza): # Datos para actualizar: ic_id = form['ic_id'] titemconfig = self.dbsession.query(TItemConfig).filter( TItemConfig.ic_id == ic_id).first() if titemconfig is not None: # Cosas que se pueden actualizar: # Nombre, categoria, proveedro, precio de compra, precio de venta, fecha de caducidad, observacion icdp_preciocompra = form['icdp_preciocompra'] icdp_precioventa = form['icdp_precioventa'] icdp_precioventamin = form['icdp_precioventamin'] icdp_grabaiva = form['icdp_grabaiva'] if icdp_grabaiva: # El precio de compra y de venta se le debe quitar el iva # icdp_preciocompra = ivautil.redondear_precio_db(ivautil.quitar_iva(icdp_preciocompra)) icdp_precioventa = ivautil.redondear_precio_db( ivautil.quitar_iva(icdp_precioventa)) icdp_precioventamin = ivautil.redondear_precio_db( ivautil.quitar_iva(icdp_precioventamin)) old_ic_nombre = cadenas.strip(titemconfig.ic_nombre) ic_nombre = cadenas.strip_upper(form['ic_nombre']) if ic_nombre != old_ic_nombre: if self.existe_artbynombre(ic_nombre): raise ErrorValidacionExc( u"Ya existe registrado un producto o servicio con el nombre: '{0}'" .format(ic_nombre)) titemconfig.ic_nombre = ic_nombre titemconfig.ic_nota = form['ic_nota'] titemconfig.catic_id = form['catic_id'] titemconfig.ic_useractualiza = user_actualiza titemconfig.ic_fechaactualiza = datetime.now() self.dbsession.add(titemconfig) titemconfigdp = self.dbsession.query(TItemConfigDatosProd).filter( TItemConfigDatosProd.ic_id == ic_id).first() if titemconfigdp is not None: titemconfigdp.icdp_proveedor = form['icdp_proveedor'] icdp_fechacaducidad = form['icdp_fechacaducidad'] if cadenas.es_nonulo_novacio(icdp_fechacaducidad): titemconfigdp.icdp_fechacaducidad = fechas.parse_cadena( icdp_fechacaducidad) else: titemconfigdp.icdp_fechacaducidad = None titemconfigdp.icdp_grabaiva = icdp_grabaiva titemconfigdp.icdp_preciocompra = icdp_preciocompra titemconfigdp.icdp_precioventa = icdp_precioventa titemconfigdp.icdp_precioventamin = icdp_precioventamin # TODO: Agregar logica para registrar kardek del articulo self.dbsession.add(titemconfigdp) self.dbsession.flush() return ic_id
def buscar_porciruc(self, per_ciruc): sql = "{0} where per_ciruc = '{1}'".format(self.BASE_SQL, cadenas.strip(per_ciruc)) result = self.first(sql, tupla_desc=self.BASE_TUPLA_DESC) try: if result is not None and cadenas.es_nonulo_novacio(result['per_fechanac']): edad = fechas.get_edad_anios(fechas.parse_cadena(result['per_fechanac'])) result['per_edad'] = edad except: pass return result
def listar_citas(self, med_id, fecha_desde): sql_fecha = '' if fecha_desde is not None and len(fecha_desde) > 0: fecha_db = fechas.format_cadena_db(fecha_desde) sql_fecha = "and cita_fecha >= '{fecha}'".format(fecha=fecha_db) sql = u""" select cita.cita_id, cita.cita_fecha, cita.cita_hora, cita.cita_hora_fin,cita.paciente_id, cita.cita_obs, cita.medico_id, cita.cita_serv, cita.cita_estado, case cita.cita_estado when 0 then 'Pendiente' when 1 then 'Atendido' when 2 then 'Cancelado' else '' end as estado, tuserpac.up_email, tuserpac.up_tipo, tuserpac.up_pasword, tuserpac.up_estado, tuserpac.up_fechacrea, tuserpac.up_nombres, tuserpac.up_celular, tuserpac.up_photourl from tcita cita join tuserpaciente tuserpac on cita.paciente_id = tuserpac.up_id where medico_id = {0} {1} order by cita_fecha, cita_hora asc """.format(med_id, sql_fecha) tupla_desc = ('cita_id', 'cita_fecha', 'cita_hora', 'cita_hora_fin', 'paciente_id', 'cita_obs', 'medico_id', 'cita_serv', 'cita_estado', 'estado', 'up_email', 'up_tipo', 'up_pasword', 'up_estado', 'up_fechacrea', 'up_nombres', 'up_celular', 'up_photourl') citas = self.all(sql, tupla_desc) for cita in citas: cita_fecha = cita['cita_fecha'] cita_hora = cita['cita_hora'] cita_hora_fin = cita['cita_hora_fin'] cita_hora_str = fechas.num_to_hora(cita_hora) cita_fecha_str = fechas.get_fecha_letras_largo( fechas.parse_cadena(cita_fecha)) cita_hora_fin_str = fechas.num_to_hora(cita_hora_fin) cita['cita_fecha_str'] = cita_fecha_str cita['cita_hora_str'] = cita_hora_str cita['cita_hora_fin_str'] = cita_hora_fin_str return citas
def get_form(self, dia, sec_id): tk_nro = self.get_next_ticket(fechas.format_cadena_db(dia), sec_id) dia_str = fechas.get_fecha_letras_largo(fechas.parse_cadena(dia)) return { 'tk_id': 0, 'per_id': 0, 'tk_nro': tk_nro, 'tk_obs': '', 'tk_costo': 1.0, 'tk_dia': dia, 'tk_servicios': '', 'dia_str': dia_str }
def crear(self, form, user_crea): if not cadenas.es_nonulo_novacio(form['emp_ruc']): raise ErrorValidacionExc(u"Debe ingresar el ruc") # Validar que el ruc ingresado este correcto resvalid = TContribuyenteDao.verificar(form['emp_ruc']) if not resvalid: raise ErrorValidacionExc(u"El número de ruc ingresado es incorrecto") if not cadenas.es_nonulo_novacio(form['emp_razonsocial']): raise ErrorValidacionExc(u"Debe ingresar la razon social") if not cadenas.es_nonulo_novacio(form['emp_nroautorizacion']): raise ErrorValidacionExc(u"Debe ingresar el número de autorización") # Validar que el numero de autorizacion sea distinto de cero emp_nroautorizacion = form['emp_nroautorizacion'] if not emp_nroautorizacion.isdigit(): raise ErrorValidacionExc(u"El número de autorización es incorrecto debe ser solo números") elif int(emp_nroautorizacion) == 0: raise ErrorValidacionExc(u"El número de autorización debe ser distinto de cero") if not cadenas.es_nonulo_novacio(form['emp_fechaautorizacion']): raise ErrorValidacionExc(u"Debe ingresar la fecha de autorización") else: # Validar que no sean fechas posteriores a la fecha actual if not fechas.isvalid(form['emp_fechaautorizacion']): raise ErrorValidacionExc( "La fecha de autorización ingresada es incorrecta verifique que se encuentre en el formato dd/mm/aaaa") fecha_actual = fechas.get_str_fecha_actual() if not fechas.es_fecha_a_mayor_fecha_b(form['emp_fechaautorizacion'], fecha_actual): raise ErrorValidacionExc(u"La fecha de autorización no puede estar despues de la fecha de actual") tempresa = TEmpresa() tempresa.emp_ruc = form.get("emp_ruc") tempresa.emp_razonsocial = form.get("emp_razonsocial") tempresa.emp_nombrecomercial = form.get("emp_nombrecomercial") tempresa.emp_fechaautorizacion = fechas.parse_cadena(form.get("emp_fechaautorizacion")) tempresa.emp_nroautorizacion = form.get("emp_nroautorizacion") self.dbsession.add(tempresa) self.dbsession.flush() tautditdao = TAuditDao(self.dbsession) tautditdao.crea_accion_insert(enums.TBL_EMPRESA, user_crea, tempresa.emp_id)
def get_matriz_horas_medico(self, med_id, dia): dia_parsed = fechas.parse_cadena(dia) weekday = dia_parsed.isoweekday() dia_db = fechas.format_cadena_db(dia) sql = """ select hm.hm_id, hm.med_id, hm.hm_dia, hm.hm_horaini,hm.hm_horafin, coalesce(cita.cita_hora, 0) as cita_hora, coalesce(cita.paciente_id, 0) as paciente_id from thorariomedico hm left join tcita cita on cita.medico_id = {medico} and cita.cita_fecha = '{fecha}' where hm.med_id={medico} and hm.hm_dia = {weekday} order by hm.hm_horaini asc """.format(medico=med_id, fecha=dia_db, weekday=weekday) tupla_desc = ('hm_id', 'med_id', 'hm_dia', 'hm_horaini', 'hm_horafin', 'cita_hora', 'paciente_id') res = self.all(sql, tupla_desc) horas = [] setHorasOcupadas = set() for item in res: cita_hora = item['cita_hora'] if cita_hora != 0: setHorasOcupadas.add(cita_hora) if res is not None: first_row = res[0] hm_horaini = first_row['hm_horaini'] hm_horafin = first_row['hm_horafin'] hora_iter = hm_horaini while hora_iter < hm_horafin: horaiter_fin = hora_iter + 1 ocupado = 1 if hora_iter in setHorasOcupadas else 0 hora_iter_str = fechas.num_to_hora(hora_iter) horaiter_fin_str = fechas.num_to_hora(horaiter_fin) horas.append({ 'horaIni': hora_iter_str, 'horaFin': horaiter_fin_str, 'ocupado': ocupado }) hora_iter = horaiter_fin return horas
def listar_citas_paciente(self, up_email): sql = u""" select cita.cita_id, cita.cita_fecha, cita.cita_hora, cita.cita_hora_fin,cita.paciente_id, cita.cita_obs, cita.medico_id, cita.cita_serv, cita.cita_estado, case cita.cita_estado when 0 then 'Pendiente' when 1 then 'Atendido' when 2 then 'Cancelado' else '' end as estado, tuserpac.up_email, tuserpac.up_tipo, tuserpac.up_estado, tuserpac.up_fechacrea, tuserpac.up_nombres, tuserpac.up_celular, tuserpac.up_photourl, medico.per_nombres ||' '|| medico.per_apellidos as nombres_medico from tcita cita join tuserpaciente tuserpac on cita.paciente_id = tuserpac.up_id join tpersona medico on medico.per_id = cita.medico_id where tuserpac.up_email = '{0}' order by cita_fecha, cita_hora asc """.format(up_email) tupla_desc = ('cita_id', 'cita_fecha', 'cita_hora', 'cita_hora_fin', 'paciente_id', 'cita_obs', 'medico_id', 'cita_serv', 'cita_estado', 'estado', 'up_email', 'up_tipo', 'up_estado', 'up_fechacrea', 'up_nombres', 'up_celular', 'up_photourl', 'nombres_medico') citas = self.all(sql, tupla_desc) for cita in citas: cita_fecha = cita['cita_fecha'] cita_hora = cita['cita_hora'] cita_hora_fin = cita['cita_hora_fin'] cita_hora_str = fechas.num_to_hora(cita_hora) cita_fecha_str = fechas.get_fecha_letras_largo( fechas.parse_cadena(cita_fecha)) cita_hora_fin_str = fechas.num_to_hora(cita_hora_fin) cita['cita_fecha_str'] = cita_fecha_str cita['cita_hora_str'] = cita_hora_str cita['cita_hora_fin_str'] = cita_hora_fin_str return citas
def crear(self, form): if not cadenas.es_nonulo_novacio(form['emp_ruc']): raise ErrorValidacionExc(u"Debe ingresar el ruc") if not cadenas.es_nonulo_novacio(form['emp_razonsocial']): raise ErrorValidacionExc(u"Debe ingresar la razon social") if not cadenas.es_nonulo_novacio(form['emp_nroautorizacion']): raise ErrorValidacionExc( u"Debe ingresar el número de autorización") if not cadenas.es_nonulo_novacio(form['emp_fechaautorizacion']): raise ErrorValidacionExc(u"Debe ingresar la fecha de autorización") tempresa = TEmpresa() tempresa.emp_ruc = form.get("emp_ruc") tempresa.emp_razonsocial = form.get("emp_razonsocial") tempresa.emp_nombrecomercial = form.get("emp_nombrecomercial") tempresa.emp_fechaautorizacion = fechas.parse_cadena( form.get("emp_fechaautorizacion")) tempresa.emp_nroautorizacion = form.get("emp_nroautorizacion") self.dbsession.add(tempresa)
def update(self, emp_codigo, form, user_edit): tempresa = self.dbsession.query(TEmpresa).filter(TEmpresa.emp_id == emp_codigo).first() if not cadenas.es_nonulo_novacio(form['emp_ruc']): raise ErrorValidacionExc(u"Debe ingresar el ruc") resvalid = TContribuyenteDao.verificar(form['emp_ruc']) if not resvalid: raise ErrorValidacionExc(u"El número de ruc ingresado es incorrecto") if not cadenas.es_nonulo_novacio(form['emp_razonsocial']): raise ErrorValidacionExc(u"Debe ingresar la razon social") # if not cadenas.es_nonulo_novacio(form['emp_nroautorizacion']): # raise ErrorValidacionExc(u"Debe ingresar el número de autorización") if not cadenas.es_nonulo_novacio(form['emp_fechaautorizacion']): raise ErrorValidacionExc(u"Debe ingresar la fecha de autorización") tempresa_cloned = copy.copy(tempresa) if tempresa is not None: tempresa.emp_ruc = form.get("emp_ruc") tempresa.emp_razonsocial = form.get("emp_razonsocial") tempresa.emp_nombrecomercial = form.get("emp_nombrecomercial") tempresa.emp_fechaautorizacion = fechas.parse_cadena(form.get("emp_fechaautorizacion")) # tempresa.emp_nroautorizacion = form.get("emp_nroautorizacion") tauditdao = TAuditDao(self.dbsession) list_cambios = checkcambioutil.valor_cambiado(tempresa_cloned.__json__(), form) if list_cambios is not None and len(list_cambios) > 0: for row in list_cambios: col = row['col'] valorant = row['valorant'] valordesp = row['valordesp'] tauditdao.crea_accion_update(enums.TBL_EMPRESA, col, user_edit, valorant, valordesp, tempresa.emp_id)
def crear(self, ev_fecha, ev_lugar, ev_horaini, ev_horafin, ev_nota, ev_publ, ev_tipo, ev_precionormal, ev_precioespecial): log.info('Valores para ev_horaini, ev_horafin----->') log.info(ev_horaini) log.info(ev_horafin) tfusayevent = TFusayEvent() # fechaev = fechas.parse_cadena(ev_fecha) # fechaev = fechas.parsedatefromisostr(ev_fecha) tfusayevent.ev_fecha = fechas.parse_cadena(ev_fecha) tfusayevent.ev_fechacrea = datetime.now() tfusayevent.ev_creadopor = 1 tfusayevent.ev_lugar = ev_lugar tfusayevent.ev_horainicio = ev_horaini tfusayevent.ev_horafin = ev_horafin tfusayevent.ev_nota = ev_nota tfusayevent.ev_publicidad = ev_publ tfusayevent.ev_tipo = ev_tipo tfusayevent.ev_precionormal = ev_precionormal tfusayevent.ev_precioespecial = ev_precioespecial tfusayevent.ev_estado = 0 self.dbsession.add(tfusayevent)
def update(self, emp_codigo, form): tempresa = self.dbsession.query(TEmpresa).filter( TEmpresa.emp_id == emp_codigo).first() if not cadenas.es_nonulo_novacio(form['emp_ruc']): raise ErrorValidacionExc(u"Debe ingresar el ruc") if not cadenas.es_nonulo_novacio(form['emp_razonsocial']): raise ErrorValidacionExc(u"Debe ingresar la razon social") if not cadenas.es_nonulo_novacio(form['emp_nroautorizacion']): raise ErrorValidacionExc( u"Debe ingresar el número de autorización") if not cadenas.es_nonulo_novacio(form['emp_fechaautorizacion']): raise ErrorValidacionExc(u"Debe ingresar la fecha de autorización") if tempresa is not None: tempresa.emp_ruc = form.get("emp_ruc") tempresa.emp_razonsocial = form.get("emp_razonsocial") tempresa.emp_nombrecomercial = form.get("emp_nombrecomercial") tempresa.emp_fechaautorizacion = fechas.parse_cadena( form.get("emp_fechaautorizacion")) tempresa.emp_nroautorizacion = form.get("emp_nroautorizacion")
def editar(self, aut_id, form, user_edit): tautorizacion = self.dbsession.query(TAutorizacion).filter( TAutorizacion.aut_id == aut_id).first() if tautorizacion is not None: tautorizacion_cloned = copy.copy(tautorizacion) if not cadenas.es_nonulo_novacio(form['aut_fechaautorizacion']): raise ErrorValidacionExc("Ingrese la fecha de autorización") if not cadenas.es_nonulo_novacio(form['aut_fechacaducidad']): raise ErrorValidacionExc("Ingrese la fecha de caducidad") if not cadenas.es_nonulo_novacio(form['aut_estab']): raise ErrorValidacionExc("Ingrese el establecimiento") """ if not cadenas.es_nonulo_novacio(form['aut_secuencia_ini']): raise ErrorValidacionExc("Ingrese la secuencia inicial") if not cadenas.es_nonulo_novacio(form['aut_secuencia_fin']): raise ErrorValidacionExc("Ingrese la secuencia final") """ if form.get('cnt_id') is None: raise ErrorValidacionExc("Debe especificar el contribuyente") fecha_aut_str = form.get('aut_fechaautorizacion') fecha_cad_str = form.get('aut_fechacaducidad') """ aut_serie = form['aut_serie'] form['aut_estab'] = aut_serie[0:3] form['aut_ptoemi'] = aut_serie[4:] """ fecha_autorizacion = fechas.parse_cadena(fecha_aut_str) fecha_caducidad = fechas.parse_cadena(fecha_cad_str) diasvalidos = abs(fecha_caducidad - fecha_autorizacion).days """ if not fechas.es_fecha_a_mayor_fecha_b(fecha_cad_str, fecha_aut_str): raise ErrorValidacionExc(u"La fecha de autorización no puede estar despues de la fecha de caducidad") if diasvalidos > 366: raise ErrorValidacionExc( u"La fecha de caducidad no puede ser mayor a un año a partir de la fecha de autorización") """ """ secuencia_ini = int(form['aut_secuencia_ini']) secuencia_fin = int(form['aut_secuencia_fin']) if secuencia_fin <= secuencia_ini: raise ErrorValidacionExc(u"Valor para secuencia final incorrecto, favor verifique") """ diasvalidos = abs(fecha_caducidad - fecha_autorizacion).days if not fechas.es_fecha_a_mayor_fecha_b(fecha_cad_str, fecha_aut_str): raise ErrorValidacionExc( u"La fecha de autorización no puede estar despues de la fecha de caducidad" ) fecha_actual = fechas.get_str_fecha_actual() if fechas.es_fecha_a_mayor_fecha_b(fecha_aut_str, fecha_actual): raise ErrorValidacionExc( u"La fecha de autorización no puede estar despues de la fecha actual" ) if diasvalidos > 366: raise ErrorValidacionExc( u"La fecha de caducidad no puede ser mayor a un año a partir de la fecha de autorización" ) tautorizacion.aut_numero = form.get('aut_numero') tautorizacion.aut_fechaautorizacion = fecha_autorizacion tautorizacion.aut_fechacaducidad = fecha_caducidad #tautorizacion.aut_tipodoc = form.get('aut_tipodoc') #tautorizacion.aut_tipodoc = 0 tautorizacion.aut_estab = form.get('aut_estab') # tautorizacion.aut_ptoemi = form.get('aut_ptoemi') tautorizacion.aut_ptoemi = '' # tautorizacion.aut_secuencia_ini = form.get('aut_secuencia_ini') # tautorizacion.aut_secuencia_fin = form.get('aut_secuencia_fin') tautorizacion.aut_secuencia_ini = 0 tautorizacion.aut_secuencia_fin = 0 tauditdao = TAuditDao(self.dbsession) list_cambios = checkcambioutil.valor_cambiado( tautorizacion_cloned.__json__(), form) if list_cambios is not None and len(list_cambios) > 0: for row in list_cambios: col = row['col'] valorant = row['valorant'] valordesp = row['valordesp'] tauditdao.crea_accion_update( logica.utils.enums.TBL_AUTORIZACIONES, col, user_edit, valorant, valordesp, tautorizacion.aut_id)
def crear(self, form): # provider = form['provider'] # nombres = form['nombres'] # email = form['email'] celular = form['celular'] serv_id = form['serv_id'] med_id = form['med_id'] dia = form['dia'] hora_ini = form['hora_ini'] # photo_url = form['photoUrl'] # clave = form['clave'] # clave_md5 = hashlib.md5(clave) # up_email = cadenas.strip(email) # up_pasword = '' # up_nombres = cadenas.strip_upper(nombres) up_celular = cadenas.strip_upper(celular) up_email = form['up_email'] aux_paciente = self.buscar_por_email(up_email) if aux_paciente is None: raise ErrorValidacionExc( u'No esta registrado la dirección de correo') """ up_tipo = 0 if provider == 'GOOGLE': up_tipo = 2 else: up_tipo = 1 tuserpaciente = TUserPaciente() tuserpaciente.up_email = cadenas.strip(up_email) tuserpaciente.up_tipo = up_tipo tuserpaciente.up_estado = 0 tuserpaciente.up_fechacrea = datetime.now() tuserpaciente.up_nombres = up_nombres tuserpaciente.up_celular = up_celular tuserpaciente.up_photourl = photo_url tuserpaciente.up_pasword = clave_md5 self.dbsession.add(tuserpaciente) self.dbsession.flush() paciente_id = tuserpaciente.up_id """ else: paciente_id = aux_paciente.up_id # aux_paciente.up_nombres = up_nombres if cadenas.es_nonulo_novacio(up_celular): aux_paciente.up_celular = up_celular # aux_paciente.up_photourl = photo_url self.dbsession.add(aux_paciente) # Se procede a crear la cita tcita = TCita() hora_ini_num = fechas.hora_to_num(hora_ini) tcita.cita_hora = hora_ini_num tcita.cita_fecha = fechas.parse_cadena(dia) tcita.cita_hora_fin = hora_ini_num + 1 tcita.cita_serv = serv_id tcita.medico_id = med_id tcita.paciente_id = paciente_id tcita.cita_estado = 0 self.dbsession.add(tcita)
def crear(self, form): tautorizacion = TAutorizacion() aut_numero = form['aut_numero'] if aut_numero is None or len(str(aut_numero).strip()) == 0: raise ErrorValidacionExc("Ingrese el número de autorización") if not cadenas.es_nonulo_novacio(form['aut_fechaautorizacion']): raise ErrorValidacionExc("Ingrese la fecha de autorización") if not cadenas.es_nonulo_novacio(form['aut_fechacaducidad']): raise ErrorValidacionExc("Ingrese la fecha de caducidad") if not cadenas.es_nonulo_novacio(form['aut_estab']): raise ErrorValidacionExc("Ingrese el establecimiento") if not cadenas.es_nonulo_novacio(form['aut_ptoemi']): raise ErrorValidacionExc("Ingrese el punto de emisión") if not cadenas.es_nonulo_novacio(form['aut_secuencia_ini']): raise ErrorValidacionExc("Ingrese la secuencia inicial") if not cadenas.es_nonulo_novacio(form['aut_secuencia_fin']): raise ErrorValidacionExc("Ingrese la secuencia final") if form.get('cnt_id') is None: raise ErrorValidacionExc("Debe especificar el contribuyente") fecha_aut_str = form.get('aut_fechaautorizacion') fecha_cad_str = form.get('aut_fechacaducidad') fecha_autorizacion = fechas.parse_cadena(fecha_aut_str) fecha_caducidad = fechas.parse_cadena(fecha_cad_str) diasvalidos = abs(fecha_caducidad - fecha_autorizacion).days if not fechas.es_fecha_a_mayor_fecha_b(fecha_cad_str, fecha_aut_str): raise ErrorValidacionExc( u"La fecha de autorización no puede estar despues de la fecha de caducidad" ) if diasvalidos > 365: raise ErrorValidacionExc( u"La fecha de caducidad no puede ser mayor a un año a partir de la fecha de autorización" ) cnt_id = int(form.get('cnt_id')) if self.ya_exite(cnt_id=cnt_id, aut_numero=form.get('aut_numero')): raise ErrorValidacionExc( u"La autorización nro:{0} ya ha sido registrada, ingrese otra". format(form.get('aut_numero'))) secuencia_ini = int(form['aut_secuencia_ini']) secuencia_fin = int(form['aut_secuencia_fin']) if secuencia_fin <= secuencia_ini: raise ErrorValidacionExc( u"Valor para secuencia final incorrecto, favor verifique") tautorizacion.aut_numero = form.get('aut_numero') tautorizacion.aut_fechaautorizacion = fecha_autorizacion tautorizacion.aut_fechacaducidad = fecha_caducidad tautorizacion.aut_tipodoc = form.get('aut_tipodoc') tautorizacion.aut_estab = form.get('aut_estab') tautorizacion.aut_ptoemi = form.get('aut_ptoemi') tautorizacion.aut_secuencia_ini = form.get('aut_secuencia_ini') tautorizacion.aut_secuencia_fin = form.get('aut_secuencia_fin') tautorizacion.cnt_id = cnt_id self.dbsession.add(tautorizacion)
def actualizar(self, per_id, form): tpersona = self.get_entity_byid(per_id) if tpersona is not None: if not cadenas.es_nonulo_novacio(form['per_ciruc']): raise ErrorValidacionExc('Ingrese el número de cédula, ruc o pasaporte') if not cadenas.es_nonulo_novacio(form['per_nombres']): raise ErrorValidacionExc('Ingrese los nombres') current_email = cadenas.strip(tpersona.per_email) per_email = cadenas.strip(form['per_email']) if current_email != per_email and cadenas.es_nonulo_novacio(current_email): if self.existe_email(per_email=form['per_email']): raise ErrorValidacionExc( 'Ya existe una persona registrada con la dirección de correo, ingrese otra: {0}'.format( form['per_email'])) if not cadenas.es_nonulo_novacio(per_email): per_email = None per_ciruc = cadenas.strip(form['per_ciruc']) current_per_ciruc = cadenas.strip(tpersona.per_ciruc) if per_ciruc != current_per_ciruc: if self.existe_ciruc(per_ciruc=form['per_ciruc']): raise ErrorValidacionExc( 'El número de ci/ruc o pasaporte {0} ya está registrado, ingrese otro'.format( form['per_ciruc'])) else: tpersona.per_ciruc = per_ciruc tpersona.per_nombres = cadenas.strip_upper(form['per_nombres']) tpersona.per_apellidos = cadenas.strip_upper(form['per_apellidos']) tpersona.per_movil = cadenas.strip_upper(form['per_movil']) tpersona.per_email = per_email if 'per_direccion' in form: tpersona.per_direccion = cadenas.strip(form['per_direccion']) # Columnas agregadas: if 'per_fechanacp' in form: per_fechanac_txt = form['per_fechanacp'] if cadenas.es_nonulo_novacio(per_fechanac_txt): per_fechanac = fechas.parse_cadena(per_fechanac_txt) tpersona.per_fechanac = per_fechanac elif 'per_fechanac' in form: per_fechanac_txt = form['per_fechanac'] if cadenas.es_nonulo_novacio(per_fechanac_txt): per_fechanac = fechas.parse_cadena(per_fechanac_txt) tpersona.per_fechanac = per_fechanac if 'per_genero' in form: per_genero = form['per_genero'] tpersona.per_genero = per_genero if 'per_estadocivil' in form: if type(form['per_estadocivil']) is dict: per_estadocivil = form['per_estadocivil']['lval_id'] else: per_estadocivil = form['per_estadocivil'] tpersona.per_estadocivil = per_estadocivil if 'per_lugresidencia' in form: if type(form['per_lugresidencia']) is dict: per_lugresidencia = form['per_lugresidencia']['lug_id'] else: per_lugresidencia = form['per_lugresidencia'] if per_lugresidencia != 0: tpersona.per_lugresidencia = per_lugresidencia if 'per_telf' in form: per_telf = form['per_telf'] tpersona.per_telf = cadenas.strip(per_telf) if 'per_ocupacion' in form: if type(form['per_ocupacion']) is dict: per_ocupacion = form['per_ocupacion']['lval_id'] else: per_ocupacion = form['per_ocupacion'] tpersona.per_ocupacion = per_ocupacion self.dbsession.add(tpersona) self.dbsession.flush()
def crear(self, form, permit_ciruc_null=False): if not permit_ciruc_null: if not cadenas.es_nonulo_novacio(form['per_ciruc']): raise ErrorValidacionExc('Ingrese el número de cédula, ruc o pasaporte') per_ciruc = cadenas.strip_upper(form['per_ciruc']) if cadenas.es_nonulo_novacio(form['per_ciruc']): if self.existe_ciruc(per_ciruc=form['per_ciruc']): raise ErrorValidacionExc( 'El número de ci/ruc o pasaporte {0} ya está registrado, ingrese otro'.format(form['per_ciruc'])) else: per_ciruc = None if not cadenas.es_nonulo_novacio(form['per_nombres']): raise ErrorValidacionExc('Ingrese los nombres') if cadenas.es_nonulo_novacio(form['per_email']): if self.existe_email(per_email=form['per_email']): raise ErrorValidacionExc( 'Ya existe una persona registrada con la dirección de correo: {0}'.format(form['per_email'])) else: form['per_email'] = None tpersona = TPersona() tpersona.per_nombres = cadenas.strip_upper(form['per_nombres']) tpersona.per_apellidos = cadenas.strip_upper(form['per_apellidos']) tpersona.per_ciruc = per_ciruc # tpersona.per_direccion = cadenas.strip_upper(form['per_direccion']) if 'per_direccion' in form: tpersona.per_direccion = cadenas.strip(form['per_direccion']) # tpersona.per_telf = cadenas.strip_upper(form['per_telf']) tpersona.per_telf = '' tpersona.per_movil = cadenas.strip_upper(form['per_movil']) tpersona.per_email = cadenas.strip(form['per_email']) tpersona.per_fecreg = datetime.now() # tpersona.per_tipo = form['per_tipo'] tpersona.per_tipo = form['per_tipo'] # tpersona.per_lugnac = form['per_lugnac'] tpersona.per_lugnac = 0 # tpersona.per_nota = cadenas.strip(form['per_nota']) tpersona.per_nota = '' # Columnas agregadas: if 'per_fechanac' in form: per_fechanac_txt = form['per_fechanac'] if cadenas.es_nonulo_novacio(per_fechanac_txt): per_fechanac = fechas.parse_cadena(per_fechanac_txt) tpersona.per_fechanac = per_fechanac if 'per_estadocivil' in form: if type(form['per_estadocivil']) is dict: per_estadocivil = form['per_estadocivil']['lval_id'] else: per_estadocivil = form['per_estadocivil'] tpersona.per_estadocivil = per_estadocivil if 'per_lugresidencia' in form: if type(form['per_lugresidencia']) is dict: per_lugresidencia = form['per_lugresidencia']['lug_id'] else: per_lugresidencia = form['per_lugresidencia'] if per_lugresidencia != 0: tpersona.per_lugresidencia = per_lugresidencia if 'per_genero' in form: per_genero = form['per_genero'] tpersona.per_genero = per_genero if 'per_telf' in form: per_telf = form['per_telf'] tpersona.per_telf = cadenas.strip(per_telf) if 'per_ocupacion' in form: if type(form['per_ocupacion']) is dict: per_ocupacion = form['per_ocupacion']['lval_id'] else: per_ocupacion = form['per_ocupacion'] tpersona.per_ocupacion = per_ocupacion self.dbsession.add(tpersona) self.dbsession.flush() return tpersona.per_id
def crear(self, form, user_crea): """ Crea un nuevo articulo :param form: :param user_crea: :param sec_id: :return: """ codbar_auto = form['codbar_auto'] ic_code = cadenas.strip(unicode(form['ic_code'])) tparamdao = TParamsDao(self.dbsession) if codbar_auto: ic_code = tparamdao.get_next_sequence_codbar() icdp_preciocompra = form['icdp_preciocompra'] icdp_precioventa = form['icdp_precioventa'] icdp_precioventamin = form['icdp_precioventamin'] icdp_grabaiva = form['icdp_grabaiva'] if icdp_grabaiva: # El precio de compra y de venta se le debe quitar el iva # icdp_preciocompra = ivautil.redondear_precio_db(ivautil.quitar_iva(icdp_preciocompra)) icdp_precioventa = ivautil.redondear_precio_db( ivautil.quitar_iva(icdp_precioventa)) icdp_precioventamin = ivautil.redondear_precio_db( ivautil.quitar_iva(icdp_precioventamin)) # Verificar si el codigo del producto ya esta registrado if self.existe_codbar(ic_code): raise ErrorValidacionExc( u"El código '{0}' ya está registrado, favor ingrese otro". format(ic_code)) ic_nombre = cadenas.strip_upper(form['ic_nombre']) if self.existe_artbynombre(ic_nombre): raise ErrorValidacionExc( u"Ya existe registrado un producto o servicio con el nombre: '{0}'" .format(ic_nombre)) itemconfig = TItemConfig() itemconfig.ic_nombre = ic_nombre itemconfig.ic_code = ic_code itemconfig.tipic_id = form['tipic_id'] itemconfig.ic_nota = form['ic_nota'] itemconfig.catic_id = form['catic_id'] itemconfig.ic_usercrea = user_crea itemconfig.ic_fechacrea = datetime.now() self.dbsession.add(itemconfig) self.dbsession.flush() ic_id = itemconfig.ic_id titemconfigdp = TItemConfigDatosProd() titemconfigdp.ic_id = ic_id titemconfigdp.icdp_grabaiva = icdp_grabaiva icdp_fechacaducidad = form['icdp_fechacaducidad'] if cadenas.es_nonulo_novacio(icdp_fechacaducidad): titemconfigdp.icdp_fechacaducidad = fechas.parse_cadena( icdp_fechacaducidad) else: titemconfigdp.icdp_fechacaducidad = None titemconfigdp.icdp_proveedor = form['icdp_proveedor'] # titemconfigdp.icdp_modcontab = form['icdp_modcontab'] titemconfigdp.icdp_modcontab = None titemconfigdp.icdp_preciocompra = icdp_preciocompra titemconfigdp.icdp_precioventa = icdp_precioventa titemconfigdp.icdp_precioventamin = icdp_precioventamin self.dbsession.add(titemconfigdp) if codbar_auto: tparamdao.update_sequence_codbar() return ic_id
def crear(self, form, user_crea): tautorizacion = TAutorizacion() aut_numero = form['aut_numero'] if aut_numero is None or len(str(aut_numero).strip()) == 0: raise ErrorValidacionExc("Ingrese el número de autorización") if not cadenas.es_nonulo_novacio(form['aut_fechaautorizacion']): raise ErrorValidacionExc("Ingrese la fecha de autorización") if not cadenas.es_nonulo_novacio(form['aut_fechacaducidad']): raise ErrorValidacionExc("Ingrese la fecha de caducidad") """ if not cadenas.es_nonulo_novacio(form['aut_estab']): raise ErrorValidacionExc("Ingrese el establecimiento") if not cadenas.es_nonulo_novacio(form['aut_ptoemi']): raise ErrorValidacionExc("Ingrese el punto de emisión") """ if not cadenas.es_nonulo_novacio(form['aut_estab']): raise ErrorValidacionExc("Ingrese el establecimiento") else: int_aut_estab = int(form['aut_estab']) if int_aut_estab == 0: raise ErrorValidacionExc( u"El establecimiento debe ser distinto de cero") # if not cadenas.es_nonulo_novacio(form['aut_secuencia_ini']): # raise ErrorValidacionExc("Ingrese la secuencia inicial") # if not cadenas.es_nonulo_novacio(form['aut_secuencia_fin']): # raise ErrorValidacionExc("Ingrese la secuencia final") if form.get('cnt_id') is None: raise ErrorValidacionExc("Debe especificar el contribuyente") fecha_aut_str = form.get('aut_fechaautorizacion') fecha_cad_str = form.get('aut_fechacaducidad') """ aut_serie = form['aut_serie'] form['aut_estab'] = aut_serie[0:3] form['aut_ptoemi'] = aut_serie[4:] """ fecha_autorizacion = fechas.parse_cadena(fecha_aut_str) fecha_caducidad = fechas.parse_cadena(fecha_cad_str) #Validar que una fecha ingresada sea correcta if not fechas.isvalid(fecha_aut_str): raise ErrorValidacionExc( "La fecha de autorización ingresada es incorrecta verifique que se encuentre en el formato dd/mm/aaaa" ) if not fechas.isvalid(fecha_cad_str): raise ErrorValidacionExc( "La fecha de caducidad ingresada es incorrecta verifique que se encuentre en el formato dd/mm/aaaa" ) #Verificacion de numero de autorizacion if not aut_numero.isdigit(): raise ErrorValidacionExc( u"El numero de autorización ingresado es incorrecto") else: aut_numero_int = int(aut_numero) if aut_numero_int == 0: raise ErrorValidacionExc( u"El número de autorización debe ser distinto de cero") diasvalidos = abs(fecha_caducidad - fecha_autorizacion).days if not fechas.es_fecha_a_mayor_fecha_b(fecha_cad_str, fecha_aut_str): raise ErrorValidacionExc( u"La fecha de autorización no puede estar despues de la fecha de caducidad" ) fecha_actual = fechas.get_str_fecha_actual() if fechas.es_fecha_a_mayor_fecha_b(fecha_aut_str, fecha_actual): raise ErrorValidacionExc( u"La fecha de autorización no puede estar despues de la fecha actual" ) if diasvalidos > 366: raise ErrorValidacionExc( u"La fecha de caducidad no puede ser mayor a un año a partir de la fecha de autorización" ) cnt_id = int(form.get('cnt_id')) if self.ya_exite(cnt_id=cnt_id, aut_numero=form.get('aut_numero')): log.info( u"Este numero de autorizacíon ya ha sido registrado, se procede a actualizar" ) return self.editar(aut_id=self.get_aut_id( cnt_id=cnt_id, aut_numero=form.get('aut_numero')), form=form, user_edit=user_crea) """ raise ErrorValidacionExc( u"La autorización nro:{0} ya ha sido registrada, ingrese otra".format(form.get('aut_numero'))) """ # secuencia_ini = int(form['aut_secuencia_ini']) # secuencia_fin = int(form['aut_secuencia_fin']) # if secuencia_fin <= secuencia_ini: # raise ErrorValidacionExc(u"Valor para secuencia final incorrecto, favor verifique") tautorizacion.aut_numero = form.get('aut_numero') tautorizacion.aut_fechaautorizacion = fecha_autorizacion tautorizacion.aut_fechacaducidad = fecha_caducidad # tautorizacion.aut_tipodoc = form.get('aut_tipodoc') tautorizacion.aut_tipodoc = 0 tautorizacion.aut_estab = form.get('aut_estab') # tautorizacion.aut_ptoemi = form.get('aut_ptoemi') tautorizacion.aut_ptoemi = '' # tautorizacion.aut_secuencia_ini = form.get('aut_secuencia_ini') # tautorizacion.aut_secuencia_fin = form.get('aut_secuencia_fin') tautorizacion.aut_secuencia_ini = 0 tautorizacion.aut_secuencia_fin = 0 tautorizacion.cnt_id = cnt_id self.dbsession.add(tautorizacion) self.dbsession.flush() tautditdao = TAuditDao(self.dbsession) tautditdao.crea_accion_insert(logica.utils.enums.TBL_AUTORIZACIONES, user_crea, tautorizacion.aut_id) return tautorizacion.aut_id
def registrar(self, form, usercrea): # 1 regstro de datos del paciente form_paciente = form['paciente'] tpersonadao = TPersonaDao(self.dbsession) # Verificar si el paciente ya esta registrado: if tpersonadao.existe_ciruc(per_ciruc=form_paciente['per_ciruc']): per_id = form_paciente['per_id'] tpersonadao.actualizar(per_id=per_id, form=form_paciente) else: per_id = tpersonadao.crear(form=form_paciente) # 2 registro de la cita medica datosconsulta = form['datosconsulta'] #Verificar que se ingrese el motivo de la consulta if not cadenas.es_nonulo_novacio(datosconsulta['cosm_motivo']): raise ErrorValidacionExc(u"Debe ingresar el motivo de la consulta") tconsultamedica = TConsultaMedica() tconsultamedica.pac_id = per_id tconsultamedica.med_id = 0 # TODO: Se debe registrar tambien el codigo del medico al que se le va asignar la cita medica tconsultamedica.cosm_fechacita = datetime.now() tconsultamedica.cosm_fechacrea = datetime.now() tconsultamedica.cosm_motivo = datosconsulta['cosm_motivo'] tconsultamedica.cosm_enfermactual = datosconsulta['cosm_enfermactual'] tconsultamedica.cosm_hallazgoexamfis = datosconsulta[ 'cosm_hallazgoexamfis'] tconsultamedica.cosm_exmscompl = datosconsulta['cosm_exmscompl'] tconsultamedica.cosm_tratamiento = datosconsulta['cosm_tratamiento'] tconsultamedica.cosm_receta = datosconsulta['cosm_receta'] tconsultamedica.cosm_indicsreceta = datosconsulta['cosm_indicsreceta'] tconsultamedica.cosm_recomendaciones = datosconsulta[ 'cosm_recomendaciones'] if type(datosconsulta['cosm_diagnostico']) is dict: tconsultamedica.cosm_diagnostico = datosconsulta[ 'cosm_diagnostico']['cie_id'] else: tconsultamedica.cosm_diagnostico = datosconsulta[ 'cosm_diagnostico'] tconsultamedica.cosm_diagnosticoal = datosconsulta[ 'cosm_diagnosticoal'] if 'cosm_fechaproxcita' in datosconsulta: cosm_fechaproxcita = datosconsulta['cosm_fechaproxcita'] if cadenas.es_nonulo_novacio(cosm_fechaproxcita): cosm_fechaproxcita_parsed = fechas.parse_cadena( cosm_fechaproxcita) tconsultamedica.cosm_fechaproxcita = cosm_fechaproxcita_parsed tconsultamedica.user_crea = usercrea self.dbsession.add(tconsultamedica) self.dbsession.flush() cosm_id = tconsultamedica.cosm_id # 3 Registro de antecendentes: # Esto se registra como lista de valores antecedentes = form['antecedentes'] examsfisicos = form['examsfisicos'] revxsistemas = form['revxsistemas'] #diagnostico = form['diagnostico'] self.registra_datosadc_consmedica(cosm_id, antecedentes) self.registra_datosadc_consmedica(cosm_id, examsfisicos) self.registra_datosadc_consmedica(cosm_id, revxsistemas) #self.registra_datosadc_consmedica(cosm_id, diagnostico) return u"Registrado exitósamente", cosm_id