Beispiel #1
0
    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='获取订单详情失败!')
Beispiel #2
0
    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='加入订单失败!')
Beispiel #3
0
 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='保存订单失败!')
Beispiel #4
0
    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()
Beispiel #5
0
 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)
Beispiel #7
0
 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='获取订单详情失败!')
Beispiel #8
0
 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='获取报价单详情信息失败!')
Beispiel #9
0
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)