def index(): from shops import Shop from gluon.contrib.pysimplesoap.client import SoapClient import time Shop(db) shops = db((db.shop.id > 0) & (db.shop.user == auth.user_id)).select() form = None if not shops: from queuemail import Queuemail Queuemail(db) firstname = Field( 'first_name', 'string', length=128, notnull=True, requires=IS_NOT_EMPTY( error_message= 'Para dirigirnos a usted y para los clientes en su tienda')) lastname = Field( 'last_name', 'string', length=128, notnull=True, requires=IS_NOT_EMPTY( error_message= 'Para dirigirnos a usted y para los clientes en su tienda')) shopname = Field( 'name', 'string', length=80, notnull=True, unique=True, requires=[ IS_NOT_EMPTY( error_message='No olvide decirnos el nombre de su tienda'), IS_NOT_IN_DB(db, 'shop.name', error_message="Este nombre ya está siendo usado") ]) hostname = Field( 'host', 'string', length=45, notnull=True, unique=True, requires=[ IS_MATCH( '^\w+$', 'Sólo letras y números, ni espacios ni caracteres especiales' ), IS_NOT_EMPTY( error_message= 'Más adelante podrás poner tu propio dominio, pero ahora es importante este dato' ), IS_NOT_IN_DB(db, 'shop.host', error_message="Este nombre ya está siendo usado") ]) form = SQLFORM.factory(firstname, lastname, shopname, hostname, submit_button='Crear Tienda') if form.validate(): try: #almacena los datos dbdata = "%s" % str(time.time()).replace('.', '') shopid = db.shop.insert( user=auth.user_id, host=form.vars.host, db_name="gex%s" % dbdata, db_user="******" % dbdata, name=form.vars.name, email=auth.user.email, first_name=form.vars.first_name, last_name=form.vars.last_name, country='es', language='es', ) db(db.auth_user.id == auth.user).update( first_name=form.vars.first_name, last_name=form.vars.last_name) client = SoapClient( wsdl= "http://localhost:8000/internalgexcommerce/default/call/soap?WSDL=None" ) if client.addShopSite(auth.user_id, shopid)['result'] == "0": db(db.shop.id == shopid).update(status="enabled") db.commit() else: db.rollback() session.flash = "Ocurrió un error al generar la tienda." redirect(URL('index')) except Exception as ex: logger.debug(ex) db.rollback() session.flash = "Ocurrió un error al generar la tienda." redirect(URL('index')) session.flash = "En unos minutos recibirá un correo con los datos de su nueva tienda" redirect(URL('index')) elif form.errors: response.flash = 'Revise los campos erróneos' return dict(shops=shops, form=form)
def InfoProducto(): ID = request.vars.ID client = SoapClient(wsdl="http://localhost:8000/ServiciosSOAP/Servicios/call/soap?WSDL") result = client.InformacionProducto(ID) return str(result['Producto'])
def newshop(): # if settings.prelaunch==True and not (auth.has_membership('administradores') or auth.has_membership('superadministradores')): # redirect(URL(request.application, 'communications','prelaunch')) from shops import Shop, DomainShop from gluon.contrib.pysimplesoap.client import SoapClient import time Shop(db), DomainShop(db) lenshops = db((db.shop.id > 0) & (db.shop.user == auth.user_id)).count() count = db.domainshops.id.count() countsdomainshops = int( db((db.shop.id > 0) & (db.shop.user == auth.user_id) & (db.domainshops.shop == db.shop.id)).select( count, left=[db.domainshops.on(db.domainshops.shop == db.shop.id) ]).first()['COUNT(domainshops.id)']) shopid = None if lenshops <= 10 + countsdomainshops: form = None from queuemail import Queuemail Queuemail(db) firstname = Field( 'first_name', 'string', length=128, notnull=True, requires=IS_NOT_EMPTY( error_message= 'Para dirigirnos a usted y para los clientes en su tienda')) lastname = Field( 'last_name', 'string', length=128, notnull=True, requires=IS_NOT_EMPTY( error_message= 'Para dirigirnos a usted y para los clientes en su tienda')) shopname = Field( 'name', 'string', length=80, notnull=True, unique=True, requires=[ IS_NOT_EMPTY( error_message='No olvide decirnos el nombre de su tienda'), IS_NOT_IN_DB(db, 'shop.name', error_message="Este nombre ya está siendo usado") ]) hostname = Field( 'host', 'string', length=45, notnull=True, unique=True, requires=[ IS_MATCH( '^\w+$', 'Sólo letras y números, ni espacios ni caracteres especiales' ), IS_NOT_EMPTY( error_message= 'Más adelante podrás poner tu propio dominio, pero ahora es importante este dato' ), IS_NOT_IN_DB(db, 'shop.host', error_message="Este nombre ya está siendo usado") ]) form = SQLFORM.factory(firstname, lastname, shopname, hostname, submit_button=T('Create new store')) if form.validate(): try: #almacena los datos dbdata = "%s" % str(time.time()).replace('.', '') shopid = db.shop.insert( user=auth.user_id, host=form.vars.host, db_name="gex%s" % dbdata, db_user="******" % dbdata, name=form.vars.name, email=auth.user.email, first_name=form.vars.first_name, last_name=form.vars.last_name, country='es', language='es', ip=__get_ip_address('wlan0'), ) client = SoapClient( wsdl= "http://localhost:8000/internalgexcommerce/default/call/soap?WSDL=None" ) if client.addShopSite(auth.user_id, shopid)['result'] == "0": db(db.shop.id == shopid).update(status="enabled") db.commit() else: db.rollback() response.flash = "Ocurrió un error al generar la tienda." session.shopname = form.vars.host except Exception as ex: logger.debug(ex) db.rollback() response.flash = "Ocurrió un error al generar la tienda." session.flash = "En unos minutos recibirá un correo con los datos de su nueva instancia de tienda" redirect(URL('account', 'index')) # if request.vars.priceplan: # plan=db.priceplans(request.vars.priceplan) # if plan.paymode=='free': # redirect(URL('index')) # else: # redirect(URL('setdomain', vars=dict(plan=request.vars.priceplan, shop=shopid))) # else: # redirect(URL('plans')) elif form.errors: response.flash = 'Revise los campos erróneos' else: session.flash = "Ńo puede crear más tiendas. Contrate alguno de los planes de pago" return dict(form=form, domainshops=countsdomainshops)