def confirm_select_order(self): inputs = self.getInput() try: product = Products.get(Products.id == int(inputs['product'])) user =Users.get(Users.name == self.isLogin()) price = inputs['price'] if inputs.has_key('add'): order = Orders.create( owner = user, price = price, description = product.category.name, ) else: if not inputs.has_key('selected'): return self.orders_list() order = Orders.get(Orders.id == int(inputs['selected'])) details = OrderDetails.create( name = product.category.name + " "+product.diameter, product = product, count = user, price = price, ratio = 0.0, order = order, ) return web.seeother(self.makeUrl('/wap/edit_price_sheet', {'id': order.id})) except Exception, e: print 'exc',e return self.error(msg='保存订单失败!')
def export_price_sheet(self): inputParams = self.getInput() try: order = Orders.get(Orders.id == int(inputParams['id'])) details = OrderDetails.select().where(OrderDetails.order == order).order_by(OrderDetails.id.desc()) self.privData['ORDER'] = order self.privData['DETAILS'] = details import pdfcrowd # create an API client instance client = pdfcrowd.Client("luo_brian", "8fee9a05739553c92673004a3ec80201") # convert an HTML string and save the result to a file import os import config import utils tmpFile = os.path.join(config.UPLOAD_DIR, 'temp', '%s.pdf' % utils.uuidgen()) ofile = open(tmpFile, 'wb') html = self.display('price-sheet-details-pdf') #html="<head></head><body>我的转换</body>" client.convertHtml(html, ofile) ofile.close() buf = open(tmpFile).read() os.unlink(tmpFile) web.header('Content-Type', 'application/pdf') return buf except Exception, e: print e return self.error(msg='获取订单详情失败!')
def save_price_sheet(self): inputs = self.getInput() print inputs try: if inputs.has_key('add'): return web.seeother(self.makeUrl('/wap/categories', {'parent': 1, 'order': int(inputs['id'])})) order = Orders.get(Orders.id == int(inputs['id'])) attrs = {} for k, v in inputs.items(): try: attr, oid = k.split('_') except Exception, e: continue if not attrs.has_key(oid): attrs[oid] = {} attrs[oid][attr] = v if not inputs['customer'] or not inputs['description']: raise Exception("询价方或备注不能为空!") order.customer = inputs['customer'] order.description = inputs['description'] order.owner = Users.get(Users.name == self.isLogin()) order.save() for k, v in attrs.items(): #import pdb;pdb.set_trace() import traceback if not v['count'] or not v['ratio']: raise Exception("数量或利润率不能为空!") nameform = v['name'] diameterform = v['diameter'] oldinput= v['can'] name, diameter = oldinput.split(' ') details = OrderDetails.get(OrderDetails.id == int(k)) details.name = oldinput flag = v['bool'] if flag.find("True")>=0: details.flag=True elif details.name!=(details.product.category.name+' '+details.product.diameter): details.flag=True else: details.flag=False try: product = Products().get(Products.name==name,Products.diameter == diameter) except Exception,e: details.price = float(v['input']) details.count = v['count'] details.ratio = float(v['ratio'])/100.0 details.save() details.price = float(v['input']) details.count = v['count'] details.ratio = float(v['ratio'])/100.0 details.save()
def delete_price_sheet(self): inputs = self.getInput() try: order = Orders.get(Orders.id == int(inputs['id'])) order.delete_instance() return self.orders_list() except Exceptions, e: return self.error(msg='删除订单失败!')
def delete(self): inputParams = self.getInput() try: order = Orders.get(Orders.id == int(inputParams['id'])) order.delete_instance() except Exception, e: return self.error(msg = '删除失败: %s' % e, url=self.makeUrl('/admin/orders/list'))
def price_sheet_details(self): inputParams = self.getInput() try: #import pdb;pdb.set_trace(); order = Orders.get(Orders.id == int(inputParams['id'])) details = OrderDetails.select().where(OrderDetails.order == order).order_by(OrderDetails.id.desc()) for od in details: print od.product.diameter self.privData['ORDER'] = order self.privData['DETAILS'] = details return self.display('price-sheet-details') except Exception, e: print e return self.error(msg='获取订单详情失败!')
def edit_price_sheet(self): inputs = self.getInput() try: #import pdb; pdb.set_trace() order = Orders.get(Orders.id == int(inputs['id'])) details = OrderDetails.select().where(OrderDetails.order == order).order_by(OrderDetails.id.desc()) for each_d in details: print each_d.name print each_d.flag self.privData['ORDER'] = order self.privData['DETAILS'] = details return self.display('edit-price-sheet') except Exception,e: print e return self.error(msg='获取报价单详情信息失败!')