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 select_order(self): inputs = self.getInput() if inputs.has_key('query'): return self.orders_list() try: price, product_id = inputs['product'].split(' ') product = Products.get(Products.id == int(product_id)) order = int(inputs['order']) if order > 0: details = OrderDetails.create( name = product.category.name +" "+product.diameter, product = product, count = 1, price = price, ratio = 0.0, order = order, ) return web.seeother(self.makeUrl('/wap/edit_price_sheet', {'id': order})) else: ordersList = Orders.select().order_by(Orders.id.desc()) self.privData['ORDERS_LIST'] = ordersList self.privData['PRICE'] = price self.privData['PRODUCT'] = product return self.display('select-order') except Exception, e: print e return self.error(msg='加入订单失败!')
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 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_order_details(self): inputs = self.getInput() try: details = OrderDetails.get(OrderDetails.id == int(inputs['id'])) details.delete_instance() return web.seeother(self.makeUrl('/wap/edit_price_sheet', {'id': details.order.id})) except Exceptions, e: return self.error(msg='删除订单失败!')
def get_orders(): data = request.form skip_orders = data['skip_orders'] step_orders = data['step_orders'] orders_details = OrderDetails.select_orders(connection, skip_orders, step_orders) output = { 'orders_details': [json.loads(json.dumps(detail)) for detail in orders_details] } return jsonify(output)
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='获取报价单详情信息失败!')
def save_order(): user_data = session.get('user_data', None) user=json.loads(user_data) username = user['username'] prods = [] if request.method == "POST": total = request.form.get('total') now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") print(now) if Order.insert_order(connection,Order(0,username,now,total)): cart_products = session['mycart'][username] if cart_products: for k, v in cart_products.items(): prods.append(Cart(k,v['name'],v['quantity'],v['price'],v['total'])) for prod in prods: OrderDetails.insert_order_details(connection,OrderDetails(0,0,prod.id_product,prod.quantity,prod.total)) UserProductRating.insert_product_notrated(connection,UserProductRating(username,prod.id_product,0,0)) flash('Order Saved Successfully!') session.modified = True session['mycart'].pop(username) return redirect(url_for(".my_cart")) else: flash("Error saving order, try again later.") return redirect(request.referrer)