def entry(self, username=None, password=None): """A new User with username and password try login Parameters: username: a not null email address or a possibly-null-not string uniquely identifying the specified user password: a not null key the specified user Return: True: wheather username exits and return a JSON Object with user map from database False: wheather username NOT exits and return None Object """ self.username= username #user name to entry self.password= password #password to entry if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "Query by user "+self.username+" with pass "+self.password+" " if username == "admin": self.response= _cnx.single_query("SELECT * FROM usuarios,roles where usuario='"+self.username+"' and contraseniausuario='"+self.password+"' and idrol=roldeusuario limit 1") else: self.response= _cnx.single_query("SELECT * FROM usuarios,roles,sucursal where usuario='"+self.username+"' and contraseniausuario='"+self.password+"' and idrol=roldeusuario and roles.codigosucursal = sucursal.codigosucursal limit 1") if (self.response is not None and len(self.response) > 0): if self.debug: print "User "+self.username+" FOUND" return True,self.response[0] #return pair True, JSON else: if self.debug: print "User "+self.username+" NO FOUND" return False,None #return Flase, None
def update_user(self,identifier=None,full_name = None, last_name = None, username = None, password = None, email = None, state = None, phone = None, type_user = None,address=None,description=None): """Saves new user to database. returns None on 'user with that username already exists' Parameters: full_name: Name user last_name: Last name user username: username by ces password: key user email: email user state: state of user - ENABLE - DISABLE date_user: date of creation phone: phone user type_user: rol user - ADMIN - GUESS --- Return: True: wheather insert a new User is insert database False: wheather no insert in database """ if self.debug: print "Connect to database" _cnx= Connection() try: if not self.get_by_identifier(identifier)[0]: return False,"El nombre de usuario <b>"+username+"</b> no existe no se puede actualizar, comuniquese con el administrador" if password: self.response= _cnx.no_single_query("UPDATE usuarios SET nombrecompletousuario='"+full_name+"',apellidosusuario ='"+last_name+"',usuario='"+username+"',contraseniausuario='"+password+"',correousuario='"+email+"',estadousuario='"+state+"',telefonousuario='"+phone+"',roldeusuario='"+type_user+"',direccionusuario='"+address+"',descripcionusuario='"+description+"' where idusuario= '"+identifier+"' ") else: self.response= _cnx.no_single_query("UPDATE usuarios SET nombrecompletousuario='"+full_name+"',apellidosusuario ='"+last_name+"',usuario='"+username+"',correousuario='"+email+"',estadousuario='"+state+"',telefonousuario='"+phone+"',roldeusuario='"+type_user+"',direccionusuario='"+address+"',descripcionusuario='"+description+"' where idusuario= '"+identifier+"' ") _cnx.commit() if self.debug: print "Insert (OK!)" return True,"El usuario <b>"+full_name+"</b>, con nombre de usuario <b>"+username+"</b> ha sido actualizado <br> <a href='/edituser'>Ver lista</a>" except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() if self.debug: print "NO Insert Error %s" % (exceptionValue) return False, "%s" % (exceptionValue)
def save_user(self,full_name = None, last_name = None, username = None, password = None, email = None, state = None, phone = None, type_user = None,subsidiary = None,address=None,description=None): """Saves new user to database. returns None on 'user with that username already exists' Parameters: full_name: Name user last_name: Last name user username: username by ces password: key user email: email user state: state of user - ENABLE - DISABLE date_user: date of creation phone: phone user type_user: rol user - ADMIN - GUESS --- Return: True: wheather insert a new User is insert database False: wheather no insert in database """ if self.debug: print "Connect to database" _cnx= Connection() try: if self.get_by_username(username)[0]: raise Exception("El nombre de usuario <b>"+username+"</b> ya existe") self.response= _cnx.no_single_query("INSERT INTO usuarios (nombrecompletousuario,apellidosusuario,usuario,contraseniausuario,correousuario,estadousuario,telefonousuario,roldeusuario,codigosucursal,direccionusuario,descripcionusuario) "+ "VALUES ('"+full_name+"','"+last_name+"','"+username+"','"+password+"','"+email+"','"+state+"','"+phone+"',(select idrol from roles where roles.nombrerol='"+type_user+"' and codigosucursal= '"+subsidiary+"'),'"+subsidiary+"','"+address+"','"+description+"')") _cnx.commit() if self.debug: print "Insert (OK!)" return True,"El usuario <b>"+full_name+"</b>, con nombre de usuario <b>"+username+"</b> ha sido creado" except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() if self.debug: print "NO Insert Error %s" % (exceptionValue) return False, "%s" % (exceptionValue)
def save_order(self,cedulacliente=None, responsable=None, estado=None, entrega=None, observaciones=None, totalapagar=None, formadepago=None, recepcion=None, numeroorden=None, placa=None, numero_importacion=None, marca=None, linea=None, modelo=None, clase_de_vehiculo=None, tipo_carroceria=None, combustible=None, color=None, cilindraje=None, capacidad=None, sucursal=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() try: if self.seek_NumOrder(numeroorden)[0]: raise Exception("La Orden de Servicio "+numeroorden+"ya existe") self.response= _cnx.no_single_query("INSERT INTO ordendetrabajo("+ "cedulacliente, responsable, estado, observaciones, "+ "totalapagar, formadepago, recepcion, numeroorden, placa, numero_importacion, "+ "marca, linea, modelo, clase_de_vehiculo, tipo_carroceria, combustible, "+ "color, cilindraje, capacidad,codigosucursal)"+ "VALUES ('"+cedulacliente+"', '"+responsable+"', '"+estado+"', '"+observaciones+"', "+ "'"+totalapagar+"', '"+formadepago+"', '"+recepcion+"', '"+numeroorden+"', '"+placa+"', '"+numero_importacion+"', "+ "'"+marca+"', '"+linea+"', '"+modelo+"', '"+clase_de_vehiculo+"', '"+tipo_carroceria+"', '"+combustible+"', "+ "'"+color+"', '"+cilindraje+"', '"+capacidad+"', '"+str(sucursal)+"');") _cnx.commit() if self.debug: print "Insert (OK!)" return True, "La orden <b>'"+numeroorden+"'</b> ha sido <b>Guardada</b> con exito <br/> <b><a href='/setorderservice'>Ver lista</a></b> " except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() if self.debug: print "NO Insert Error %s" % (exceptionValue) return False, "%s" % (exceptionValue)
def all_users(self,subsidiary=None): """ All user in database system Parameters: None Return: True: wheather exits users and return a JSON Object with user map from database False: wheather NOT exits user and return None Object """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query all users" self.response= _cnx.single_query("SELECT * FROM usuarios where codigosucursal "+subsidiary+" ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"user found" #Si no es nulo y la longitud de la consulta es mayor que 1 return True,self.response else: if self.debug: print "NOT found users" #return Flase, None return False,None
def all_offerspublic(self,subsidiary=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query all offers" self.response= _cnx.single_query("SELECT * FROM ofertas WHERE estado ='PUBLICA' AND codigosucursal "+subsidiary+" ORDER BY codigooferta DESC") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"ofertas encontradas" return True,self.response else: if self.debug: print "No hay ofertas" return False,None
def seek_offerbyuid(self,uuid=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query offer uuid= "+uuid+"" self.response= _cnx.single_query("SELECT * FROM ofertas WHERE uuid = '"+uuid+"' ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"offers found --" return True,self.response else: if self.debug: print "No offers found" return False,None
def seek_quotation(self,numerocotizacion=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query "+numerocotizacion+" quotations" self.response= _cnx.single_query("SELECT * FROM cotizacion where numerocotizacion = '"+numerocotizacion+"' ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"quotation found" return True,self.response else: if self.debug: print "NOT found quotations" return False,None
def exist_offerbyId(self,codigooferta): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query all offers" self.response= _cnx.single_query("SELECT * FROM ofertas WHERE codigooferta='"+codigooferta+"'") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"ofertas encontradas" return True else: if self.debug: print "No hay ofertas" return False
def exist_offer(self,codigovehiculo=None,codigorepuesto=None,tipooferta=None,valoroferta=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "Buscando ofertas" self.response= _cnx.single_query("SELECT * FROM ofertas WHERE tipooferta='"+tipooferta+"' AND codigovehiculo='"+codigovehiculo+"' AND codigorepuesto ='"+codigorepuesto+"' AND valoroferta ='"+valoroferta+"'" ) if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"ofertas encontradas" return True else: if self.debug: print "No hay ofertas" return False
def update_style(self,codigosucursal =None,theme= None, size = None, font=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() try: self.response= _cnx.no_single_query("UPDATE sucursal set configuracion = '{\"tema\":\""+theme+"\",\"tamanio\":\""+size+"\",\"fuente\":\""+font+"\"}' where codigosucursal = '"+str(codigosucursal)+"' ") _cnx.commit() if self.debug: print "Update (OK!)" return True,"Todo a ido de maravilla, tu pagina se va actulizar para que veas los cambios." except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() if self.debug: print "No update %s" % (exceptionValue) return False, " %s" % (exceptionValue)
def all_sales(self,codigo_sucursal=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query all sales" self.response = _cnx.single_query("SELECT * FROM venta,cliente where venta.codigosucursal "+codigo_sucursal+" and venta.codigocliente = cliente.codigocliente") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"sales found" return True,self.response else: if self.debug: print "NOT found sales" #return Flase, None return False,None
def delete_inventory(self,codigo_inventario =None): """ """ if self.debug: print "Connect to database" _cnx= Connection() try: if self.debug: print "try delete inventory "+str(codigo_inventario)+" " self.response= _cnx.no_single_query("DELETE from inventario where codigo_inventario='"+str(codigo_inventario)+"'") _cnx.commit() if self.debug: print "DELETED (OK!)" return True,"El inventario ha sido actualizado." except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() if self.debug: print "No update %s" % (exceptionValue)
def all_quotations(self,codigo_sucursal=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query all articles" self.response = _cnx.single_query("SELECT * FROM cotizacion where codigosucursal "+codigo_sucursal+" ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"articles found" return True,self.response else: if self.debug: print "NOT found articles" #return Flase, None return False,None
def seek_inventory_bySubsidiary(self,codigo_sucursal=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query "+str(codigo_sucursal)+" inventory" self.response= _cnx.single_query("SELECT * FROM inventario where codigo_sucursal = '"+str(codigo_sucursal)+"' ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"inventory found" #Si no es nulo y la longitud de la consulta es mayor que 1 return True,self.response else: if self.debug: print "NOT found inventory" #return Flase, None return False,None
def delete_subsidiary(self,codigosucursal =None,): """ """ if self.debug: print "Connect to database" _cnx= Connection() try: if self.debug: print "try delete subsidiary "+str(codigosucursal)+" " self.response= _cnx.no_single_query("DELETE from sucursal where codigosucursal='"+str(codigosucursal)+"'") _cnx.commit() if self.debug: print "DELETED (OK!)" return True except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() if self.debug: print "No update %s" % (exceptionValue) return False, "ERROR EN LA BASE DE DATOS %s" % (exceptionValue)
def all_subsidiaries(self): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query all subsidiaries" self.response= _cnx.single_query("SELECT * FROM sucursal") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"subsidiary found" #Si no es nulo y la longitud de la consulta es mayor que 1 return True,self.response else: if self.debug: print "NOT found subsidiaries" #return Flase, None return False,None
def assign_order(self,codigoorden=None,numeroorden=None,mecanico=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() try: if not self.seek_NumOrder(numeroorden)[0]: raise Exception("La Orden de Servicio "+numeroorden+" NO existe") self.response= _cnx.no_single_query("UPDATE ordendetrabajo SET responsable = '"+mecanico+"' WHERE codigoorden= '"+codigoorden+"' AND numeroorden = '"+numeroorden+"' ") _cnx.commit() if self.debug: print "Update (OK!)" return True, "Orden Asignada Exitosamente" except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() if self.debug: print "NO Insert Error %s" % (exceptionValue) return False, " %s" % (exceptionValue)
def seek_orderbyuid(self,numeroorden=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query "+numeroorden+" orders" self.response= _cnx.single_query("SELECT * FROM ordendetrabajo where numeroorden = '"+numeroorden+"' ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"order found" #Si no es nulo y la longitud de la consulta es mayor que 1 return True,self.response else: if self.debug: print "NOT found orders" #return Flase, None return False,None
def seek_subsidiary_byName(self,nombre=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query "+nombre+" subsidiary" self.response= _cnx.single_query("SELECT * FROM sucursal where nombre = '"+nombre+"' ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"subsidiary found" #Si no es nulo y la longitud de la consulta es mayor que 1 return True,self.response else: if self.debug: print "NOT found subsidiaries" #return Flase, None return False,None
def seek_subsidiary_byId(self,identifier=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query subsidiary with id = "+str(identifier)+" " self.response= _cnx.single_query("SELECT * FROM sucursal where codigosucursal = '"+str(identifier)+"' ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"subsidiary found" #Si no es nulo y la longitud de la consulta es mayor que 1 return True,self.response else: if self.debug: print "NOT found subsidiaries" #return Flase, None return False,None
def seek_vehicle_byImagen(self,identifier=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query car with id = "+str(identifier)+" " self.response= _cnx.single_query("SELECT * FROM vehiculo where imagenes = '"+str(identifier)+"' ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"car found" #Si no es nulo y la longitud de la consulta es mayor que 1 return True,self.response else: if self.debug: print "NOT found cars" #return Flase, None return False,None
def delete_vehicle(self,codigo_carro =None,): """ """ if self.debug: print "Connect to database" _cnx= Connection() try: if self.debug: print "try delete car "+str(codigo_carro)+" " self.response= _cnx.no_single_query("DELETE from vehiculo where codigovehiculo='"+str(codigo_carro)+"'") _cnx.commit() if self.debug: print "DELETED (OK!)" return True except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() if self.debug: print "No update %s" % (exceptionValue) return False, "ERROR EN LA BASE DE DATOS %s" % (exceptionValue)
def seek_vehicle_byImportNumber(self,numero_importacion=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query "+numero_importacion+" car" self.response= _cnx.single_query("SELECT * FROM vehiculo where numero_importacion = '"+numero_importacion+"' ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"car found" #Si no es nulo y la longitud de la consulta es mayor que 1 return True,self.response else: if self.debug: print "NOT found cars" #return Flase, None return False,None
def delete_role(self,idrol =None): """ """ if self.debug: print "Connect to database" _cnx= Connection() try: if self.debug: print "try delete rol: "+str(idrol)+" " self.response= _cnx.no_single_query("DELETE FROM ROLES WHERE idrol='"+str(idrol)+"'") _cnx.commit() if self.debug: print "DELETED (OK!)" return True except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() if self.debug: print "No update %s" % (exceptionValue) return False, "ERROR EN LA BASE DE DATOS %s" % (exceptionValue)
def seek_inventory_byId(self,identifier=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query inventory with id = "+str(identifier)+" " self.response= _cnx.single_query("SELECT * FROM inventario where codigocarro = '"+str(identifier)+"' or codigorepuesto = '"+str(identifier)+"' ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"inventory found" #Si no es nulo y la longitud de la consulta es mayor que 1 return True,self.response else: if self.debug: print "NOT found inventory" #return Flase, None return False,None
def exist_vehicle(self,marca = None,linea = None,modelo = None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "existe el vehiculo con marca <b>"+marca+"</b> linea"+linea+"<b> y modelo <b>"+modelo+"</b>" self.response= _cnx.single_query("SELECT * FROM vehiculo where marca = '"+marca+"' and modelo='"+modelo+"' and linea='"+linea+"' ") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"car found" #Si no es nulo y la longitud de la consulta es mayor que 1 return True else: if self.debug: print "No hay vehiculo con marca <b>"+marca+"</b> linea"+linea+"<b> y modelo <b>"+modelo+"</b>" #return Flase, None return False
def update_quantity_inventory(self,codigo_inventario = None,cantidad= None): """ """ if self.debug: print "Connect to database" _cnx= Connection() try: if self.debug: print "try update inventory "+codigo_inventario+"" print "UPDATE inventario set cantidad = '"+cantidad+"' where codigoinventario = '"+str(codigo_inventario)+"'" self.response= _cnx.no_single_query("UPDATE inventario set cantidad = '"+cantidad+"' where codigoinventario = '"+str(codigo_inventario)+"'") _cnx.commit() if self.debug: print "Update (OK!)" return True,"El inventario ha sido actualizado." except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() if self.debug: print "No update %s" % (exceptionValue)
def all_articles(self,codigo_sucursal=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() if self.debug: print "query all articles" self.response = _cnx.single_query("SELECT * FROM vehiculo,inventario where inventario.codigocarro = vehiculo.codigovehiculo and codigosucursal "+codigo_sucursal+" order by codigovehiculo desc") # self.response += _cnx.single_query("SELECT * FROM repuesto,inventario where inventario.codigorepuesto = repuesto.codigo_repuesto and codigosucursal "+codigo_sucursal+" order by codigo_repuesto desc") if (self.response is not None and len(self.response) > 0): if self.debug: print len(self.response),"articles found" return True,self.response else: if self.debug: print "NOT found articles" #return Flase, None return False,None
def save_offer(self,codigovehiculo=None, codigorepuesto=None, tipooferta=None, descripcionoferta=None, fechaoferta=None, valoroferta=None, fechainicio=None, fechafinal=None, uuid=None,estado=None,sucursal=None): """ """ if self.debug: print "Connect to database" _cnx= Connection() try: if self.exist_offer(codigovehiculo,codigorepuesto,tipooferta,valoroferta): raise Exception("Esta oferta ya existe") self.response= _cnx.no_single_query("INSERT INTO ofertas(codigovehiculo, codigorepuesto, tipooferta, descripcionoferta,fechaoferta, valoroferta, fechainicio, fechafinal,uuid,estado,codigosucursal) VALUES ('"+codigovehiculo+"','"+codigorepuesto+"','"+tipooferta+"','"+descripcionoferta+"','"+fechaoferta+"','"+valoroferta+"','"+fechainicio+"','"+fechafinal+"','"+uuid+"','"+estado+"','"+sucursal+"')") _cnx.commit() if self.debug: print "Insert (OK!)" return True,"<center>La oferta <b>"+uuid+"</b> se ha creado con <b>éxito</b><br><a href='/listoffers'>Ver en la lista </a></center>" except: exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() if self.debug: print "NO Insert Error %s" % (exceptionValue) return False, "%s" % (exceptionValue)