The client is written in c# and is implemented in Xamarin:
def produzione(dbnow, filtri, *argv):
object_list = []
if filtri == 0:
rows = dbnow(dbnow.Produzione.ID != None).select()
else:
data1 = fixDate(argv[Filter.DataIn.value])
data2 = fixDate(argv[Filter.DataFin.value])
rows = dbnow((dbnow.Produzione.OraInizio >= data1)&(dbnow.Produzione.OraInizio <= data2)&(dbnow.Produzione.Macchina == argv[Filter.IdMac.value])).select()
for record in rows:
d = collections.OrderedDict()
d['ID'] = record.ID
d['DataLoggerID'] = record.DataLoggerID
d['DataLoggerIDRiga'] = record.DataLoggerIDRiga
d['Utente'] = record.Utente if (record.Utente != None) else 0
d['Commessa'] = str(record.Commessa)
d['Lotto'] = str(record.Lotto)
d['Fase'] = record.Fase if (record.Fase != None) else 0
d['Programma'] = str(record.Programma)
d['OraInizio'] = str(record.OraInizio)
d['OraProgrammazione'] = str(record.OraProgrammazione)
d['OraAttrezzaggio'] = str(record.OraAttrezzaggio)
d['OraPrimoPezzo'] = str(record.OraPrimoPezzo)
d['OraProduzione'] = str(record.OraProduzione)
d['OraFine'] = str(record.OraFine)
d['NPieghe'] = record.NPieghe if (record.NPieghe != None) else 0
d['Macchina'] = record.Macchina if (record.Macchina != None) else 0
d['PezziProdotti'] = record.PezziProdotti if (record.PezziProdotti != None) else 0
object_list.append(d)
return json.dumps(object_list)
Hi Dave,thanks for the reply, but I have notice that the code is wrong, I will explain.Since I need three function in task I used another one to collector and after I redirect by an if statement.
@action("produzione", method="GET")
@action("produzione/<db>/<idmac>/")
@action("produzione/<db>/<idmac>/<datafrom>/<datato>/")
def produzione(db, idmac, datafrom=None, datato=None):
object_list = []
sIstancePrd = "mssql4://{}:{}@{}/{}".format("<my_user>", "<my_pass>", "<my_istance>", db)
dbPrd = DAL(sIstancePrd, folder=settings.DB_FOLDER, pool_size=settings.DB_POOL_SIZE, migrate_enabled=False)
dbPrd.define_table(
'Produzione',
Field('ID','id'),
Field('DataLoggerID', type='integer'),
Field('DataLoggerIDRiga', type='integer'),
Field('Utente', type='integer'),
Field('Commessa', type='string'),
Field('Lotto', type='string'),
Field('Fase', type='integer'),
Field('Programma', type='string'),
Field('OraInizio',type='datetime',default=lambda r:datetime.datetime.now()),
Field('OraProgrammazione',type='datetime',default=lambda r:datetime.datetime.now()),
Field('OraAttrezzaggio',type='datetime',default=lambda r:datetime.datetime.now()),
Field('OraPrimoPezzo',type='datetime',default=lambda r:datetime.datetime.now()),
Field('OraProduzione',type='datetime',default=lambda r:datetime.datetime.now()),
Field('OraFine',type='datetime',default=lambda r:datetime.datetime.now()),
Field('NPieghe', type='integer'),
Field('Macchina', type='integer'),
Field('PezziProdotti', type='integer'))
try:
if datafrom != None and datato != None:
sSQL = "SELECT * FROM Produzione WHERE OraInizio>='{}' AND OraFine<='{}' AND Macchina={}".format(datafrom, datato, idmac)
rows = dbPrd.executesql(sSQL)
else:
rows = dbPrd(dbPrd.Produzione.Macchina == idmac).select()
for record in rows:
d = collections.OrderedDict()
d['ID'] = record.ID
d['DataLoggerID'] = record.DataLoggerID
d['DataLoggerIDRiga'] = record.DataLoggerIDRiga
d['Utente'] = record.Utente if (record.Utente != None) else 0
d['Commessa'] = str(record.Commessa)
d['Lotto'] = str(record.Lotto)
d['Fase'] = record.Fase if (record.Fase != None) else 0
d['Programma'] = str(record.Programma)
d['OraInizio'] = str(record.OraInizio)
d['OraProgrammazione'] = str(record.OraProgrammazione)
d['OraAttrezzaggio'] = str(record.OraAttrezzaggio)
d['OraPrimoPezzo'] = str(record.OraPrimoPezzo)
d['OraProduzione'] = str(record.OraProduzione)
d['OraFine'] = str(record.OraFine)
d['NPieghe'] = record.NPieghe if (record.NPieghe != None) else 0
d['Macchina'] = record.Macchina if (record.Macchina != None) else 0
d['PezziProdotti'] = record.PezziProdotti if (record.PezziProdotti != None) else 0
object_list.append(d)
except Exception as inst:
if settings.LOG_ENABLE:
with open(settings.LOG_PATH, "a+") as f:
f.write("Error Type: {}, Error: {}".format(type(inst), inst))
else:
print ("Error Type: {}, Error: {}".format(type(inst), inst))
return json.dumps(object_list)