Thanks for your tests. One more time please.
On Dec 8, 9:37 pm, drayco <antrod...@gmail.com> wrote: > Hi, I updated trunk version, but error still happens > > this the track > > Traceback (most recent call last): > File "/home/drayco/web2py/gluon/restricted.py", line 188, in > restricted > exec ccode in environment > File "/home/drayco/web2py/applications/opticaluz/controllers/ > gerencia.py", line 1417, in <module> > File "/home/drayco/web2py/gluon/globals.py", line 95, in <lambda> > self._caller = lambda f: f() > File "/home/drayco/web2py/gluon/tools.py", line 2315, in f > return action(*a, **b) > File "/home/drayco/web2py/applications/opticaluz/controllers/ > gerencia.py", line 278, in ventas > if form.accepts(request.vars,session): > File "/home/drayco/web2py/gluon/sqlhtml.py", line 1159, in accepts > self.vars.id = self.table.insert(**fields) > File "/home/drayco/web2py/gluon/sql.py", line 3735, in insert > return self._db._adapter.insert(self,self._listify(fields)) > File "/home/drayco/web2py/gluon/sql.py", line 690, in insert > raise e > AttributeError: 'BaseAdapter' object has no attribute 'cursor' > > On Dec 8, 9:07 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > I think this is now fixed. Please give it a try. > > > On Dec 8, 6:42 pm, drayco <antrod...@gmail.com> wrote: > > > > Hi this the code in the controller: > > > > def form_factory(*a): > > > return SQLFORM(SQLDB(None).define_table(*a)) > > > > def ventas(): > > > form=form_factory('myform', > > > > SQLField('inicio','date',default=request.now.date(),requires=IS_NOT_EMPTY()), > > > SQLField('fin','date',default=request.now.date())) > > > total='' > > > regs='' > > > totalcorte='' > > > cortesias='' > > > totalc='' > > > cancel='' > > > totalgaran='' > > > garantias='' > > > totalcero='' > > > cero='' > > > inicio = '' > > > fin = '' > > > if form.accepts(request.vars,session): > > > response.flash='Formulario aceptado' > > > from datetime import datetime > > > inicio = datetime.strptime(str(form.vars.inicio) + " > > > 00:00:00", "%Y-%m-%d %H:%M:%S") > > > if form.vars.fin==None: > > > fin = inicio > > > fin = fin.replace(hour=23,minute=59,second=59) > > > else: > > > fin = datetime.strptime(str(form.vars.fin) + " 23:59:59", > > > "%Y-%m-%d %H:%M:%S") > > > Gerente = db.auth_user(user_id) > > > total = > > > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id==Gerente.store_id)&(db.notas.active==True)&(db.notas.garantia==None)&(db.notas.vale==None)). > > > \ > > > > select(db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),db.notas.total.sum()/ > > > db.notas.id.count()),\ > > > headers={'COUNT(notas.id)':'Num.Notas', > > > 'SUM(notas.total)':'Total', 'SUM(notas.anticipo)':'Anticipo', > > > 'SUM(notas.pagos)':'Pagos', > > > 'SUM(notas.saldo)':'Saldo','SUM(notas.total)/ > > > COUNT(notas.id)':'Promedio'}) > > > regs = > > > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id > > > == > > > Gerente.store_id)&(db.notas.active==True)&(db.notas.garantia==None)&(db.notas.vale==None)). > > > \ > > > > select(db.notas.vendedor,db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),db.notas.total.sum()/ > > > db.notas.id.count(),\ > > > orderby=~(db.notas.total.sum()/ > > > db.notas.id.count()),groupby=db.notas.vendedor),\ > > > > headers={'notas.vendedor':'Vendedor','COUNT(notas.id)':'Num.Notas','SUM(notas.total)':'Total','SUM(notas.anticipo)':'Anticipo','SUM(notas.pagos)':'Pagos','SUM(notas.saldo)':'Saldo','SUM(notas.total)/ > > > COUNT(notas.id)':'Promedio'}) > > > totalc = > > > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id==Gerente.store_id)&(db.notas.active==False)). > > > \ > > > > select(db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum()), > > > \ > > > headers={'COUNT(notas.id)':'Num.Notas', > > > 'SUM(notas.total)':'Total', 'SUM(notas.anticipo)':'Anticipo', > > > 'SUM(notas.pagos)':'Pagos', 'SUM(notas.saldo)':'Saldo'}) > > > cancel = > > > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id > > > == Gerente.store_id)&(db.notas.active==False)).\ > > > > select(db.notas.vendedor,db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(), > > > \ > > > orderby=~db.notas.id.count(),groupby=db.notas.vendedor),\ > > > > headers={'notas.vendedor':'Vendedor','COUNT(notas.id)':'Notas','SUM(notas.total)':'Total','SUM(notas.anticipo)':'Anticipo','SUM(notas.pagos)':'Pagos','SUM(notas.saldo)':'Saldo'}) > > > totalcorte = > > > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id==Gerente.store_id)&(db.notas.active==True)&(db.notas.vale! > > > =None)).\ > > > > select(db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum()), > > > \ > > > headers={'COUNT(notas.id)':'Num.Notas', > > > 'SUM(notas.total)':'Total', 'SUM(notas.anticipo)':'Anticipo', > > > 'SUM(notas.pagos)':'Pagos', 'SUM(notas.saldo)':'Saldo'}) > > > cortesias = > > > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id > > > == Gerente.store_id)&(db.notas.active==True)&(db.notas.vale!=None)).\ > > > > select(db.notas.vendedor,db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(), > > > \ > > > orderby=~db.notas.id.count(),groupby=db.notas.vendedor),\ > > > > headers={'notas.vendedor':'Vendedor','COUNT(notas.id)':'Notas','SUM(notas.total)':'Total','SUM(notas.anticipo)':'Anticipo','SUM(notas.pagos)':'Pagos','SUM(notas.saldo)':'Saldo'}) > > > totalgaran = > > > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id==Gerente.store_id)&(db.notas.active==True)&(db.notas.garantia! > > > =None)).\ > > > > select(db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),db.notas.total.sum()/ > > > db.notas.id.count()),\ > > > headers={'COUNT(notas.id)':'Num.Notas', > > > 'SUM(notas.total)':'Total', 'SUM(notas.anticipo)':'Anticipo', > > > 'SUM(notas.pagos)':'Pagos', > > > 'SUM(notas.saldo)':'Saldo','SUM(notas.total)/ > > > COUNT(notas.id)':'Promedio'}) > > > garantias = > > > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id > > > == Gerente.store_id)&(db.notas.active==True)&(db.notas.garantia! > > > =None)).\ > > > > select(db.notas.vendedor,db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(),db.notas.total.sum()/ > > > db.notas.id.count(),\ > > > orderby=~db.notas.id.count(),groupby=db.notas.vendedor),\ > > > > headers={'notas.vendedor':'Vendedor','COUNT(notas.id)':'Notas','SUM(notas.total)':'Total','SUM(notas.anticipo)':'Anticipo','SUM(notas.pagos)':'Pagos','SUM(notas.saldo)':'Saldo','SUM(notas.total)/ > > > COUNT(notas.id)':'Promedio'}) > > > totalcero = > > > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id==Gerente.store_id)&(db.notas.active==True)&(db.notas.total==0)). > > > \ > > > > select(db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum()), > > > \ > > > headers={'COUNT(notas.id)':'Notas', > > > 'SUM(notas.total)':'Total', 'SUM(notas.anticipo)':'Anticipo', > > > 'SUM(notas.pagos)':'Pagos', 'SUM(notas.saldo)':'Saldo'}) > > > cero = > > > SQLTABLE(db((db.notas.created_on>inicio)&(db.notas.created_on<fin)&(db.notas.store_id > > > == Gerente.store_id)&(db.notas.active==True)&(db.notas.garantia! > > > =None)&(db.notas.vale!=None)&(db.notas.total==0)).\ > > > > select(db.notas.vendedor,db.notas.id.count(),db.notas.total.sum(),db.notas.anticipo.sum(),db.notas.pagos.sum(),db.notas.saldo.sum(), > > > \ > > > orderby=~db.notas.id.count(),groupby=db.notas.vendedor),\ > > > > headers={'notas.vendedor':'Vendedor','COUNT(notas.id)':'Notas','SUM(notas.total)':'Total','SUM(notas.anticipo)':'Anticipo','SUM(notas.pagos)':'Pagos','SUM(notas.saldo)':'Saldo'}) > > > elif form.errors: > > > response.flash='Error en el formulario' > > > else: > > > response.flash='Por favor conteste el formulario' > > > return dict(form=form,total=total, regs=regs, > > > totalcorte=totalcorte,cortesias=cortesias, > > > totalc=totalc,cancel=cancel, > > > totalgaran=totalgaran,garantias=garantias,inicio=inicio,fin=fin,totalcero=totalcero,cero=cero) > > > > It work in web2py 1.89.5, however after update trunk version it didn't > > > work, it give me this error: > > > > Traceback (most recent call last): > > > File "/home/drayco/web2py/gluon/restricted.py", line 188, in > > > restricted > > > exec ccode in environment > > > File "/home/drayco/web2py/applications/opticaluz/controllers/ > > > gerencia.py", line 1417, in <module> > > > File "/home/drayco/web2py/gluon/globals.py", line 95, in <lambda> > > > self._caller = lambda f: f() > > > File "/home/drayco/web2py/gluon/tools.py", line 2315, in f > > > return action(*a, **b) > > > File "/home/drayco/web2py/applications/opticaluz/controllers/ > > > gerencia.py", line 265, in ventas > > > SQLField('fin','date',default=request.now.date())) > > > File "/home/drayco/web2py/gluon/tools.py", line 2315, in f > > > return action(*a, **b) > > > File "/home/drayco/web2py/applications/opticaluz/controllers/ > > > gerencia.py", line 259, in form_factory > > > return SQLFORM(SQLDB(None).define_table(*a)) > > ... > > read more »