Example #1
0
 def GET(self, hsID):
     form = Book.form()
     order = model.get_order(hsID)
     form.fill(order)
     if order!=None:
         return render.orderinfo(order, form)
     else:
         raise web.seeother('/noorder')
Example #2
0
def get_orders(req, token):
    res = yield from model.get_order(token)
    if not res:
        return web.Response(body=bytes(json.dumps([]), 'utf-8'))
    else:
        ret = []
        ret.append({
            'id': res['orderid'],
            'items': res['items'],
            'total': res['total']
        })
        return web.Response(body=bytes(json.dumps(ret), 'utf-8'))
Example #3
0
def get_orders(req, token):
    res = yield from model.get_order(token)
    if not res:
        return web.Response(body=bytes(json.dumps([]), 'utf-8'))
    else:
        ret = []
        ret.append({
            'id': res['orderid'],
            'items': res['items'],
            'total': res['total']
        })
        return web.Response(body=bytes(json.dumps(ret), 'utf-8'))
Example #4
0
    def GET(self):
        info = {}
        i = web.input()
        oid = i.get('oid')
        o_details = list(model.get_detail(oid))
        o_info = list(model.get_order(oid))
        info["i"] = o_info[0]
        info["d"] = o_details
        '''
        opt = i.get('opt')

        ot_ts = int(time.mktime(time.strptime(str(ord_info[0].OrderDate)+" 10:30:00", "%Y-%m-%d %H:%M:%S")))
        cur_ts = int(time.time())
        if cur_ts > ot_ts:
            OT=True
        else:
            OT=False
        '''
        return render.orderinfo(info)
Example #5
0
    def GET(self):
        i = web.input()
        oid = i.get('oid')
        order = model.get_order(oid)
        orderdate = list(order)[0].OrderDate
        details = model.get_details(oid)
        for detail in details:
            model.upd_meal_sold(detail.lunchid,orderdate,-detail.num)
            
        model.update_order(oid, 2, time.strftime('%Y-%m-%d %X', time.localtime()))                
        #print oid
        #refund = Refund_pub()
        #refund.setParameter('transaction_id')
        #refund.setParameter('out_trade_no',str(session.out_trade_no))
        #refund.setParameter('out_trade_no','1234567890')
        #refund.setParameter('total_fee','1')
        #refund.setParameter('refund_fee','1')
        #refund.setParameter('out_refund_no','1234567890')
        #refund.setParameter('op_user_id','1240046802')

        #res = refund.getResult()
        #print res["return_code"]
        #print res["return_msg"]
        return web.seeother('/orders')
Example #6
0
    def GET(self):
        # guard code, back step
        if web.ctx.session.webpage=="receipt":
            return web.seeother("\menus")

        i = web.input()
        oid_list = i.oids.split("_")

        shopping_list=[]

        global access_token
        global jsapi_ticket
        global token_timestamp

        js_api = JsApi_pub()
        openid = web.ctx.session.openid
        #print openid
        if (not access_token.strip()) or (int(time.time())-token_timestamp > 7200):
            access_token = sign.get_token()
            jsapi_ticket = sign.get_ticket(access_token)
            token_timestamp = int(time.time())

        total_fee = 0.0
        for oid in oid_list:
            # oid = session.pay_oid
            # print oid
            order_it = model.get_order(oid)
            order = list(order_it)
            total_fee += order[0].Price
            shopping_list.append(oid)
        
        if len(oid_list) > 1:
            out_trade_no = str(int(oid_list[0])/1000)
        else:
            out_trade_no = str(int(oid_list[0]))

        js_sign = Sign(jsapi_ticket, web.ctx.home+web.ctx.fullpath)
        sign_data = js_sign.sign()
        nonceStr = sign_data['nonceStr']
        signature = sign_data['signature']
        timestamp = sign_data['timestamp']
        url = sign_data['url']
        #print url
        #total_fee = web.cookies().get('total_price')
        #total_fee = str(int(order[0].Price)*100)  #TODO:dup orderid
        unify_pay = UnifiedOrder_pub()
        #print oid
        #print total_fee
        #print openid
        unify_pay.setParameter('out_trade_no', out_trade_no)
        unify_pay.setParameter('body','准时开饭 套餐')
        unify_pay.setParameter('total_fee',str(int(total_fee)*100))
        unify_pay.setParameter('notify_url','http://x.zhunshikaifan.com/')
        unify_pay.setParameter('trade_type','JSAPI')
        unify_pay.setParameter('openid',openid)
        prepay_id = unify_pay.getPrepayId()
        #print prepay_id

        js_api.setPrepayId(prepay_id)
        pay_data = js_api.getParameters()

        if not web.ctx.session.shoppinglist:
             web.ctx.session.shoppinglist = shopping_list

        web.ctx.session.webpage="webchatpay"
        return render.webchatpay(signature,nonceStr,timestamp,json.loads(pay_data))
Example #7
0
    def GET(self):
        shopping_list = web.ctx.session.shoppinglist
        user_info = web.ctx.session.userinfo
        #menu_date = web.ctx.session.menudate
        #route_id = web.ctx.session.routeid
        order_list = {}
        order_cost = {}        

        for oid in shopping_list:
            #i = web.input()
            model.update_order_1(oid,1)
            order = list(model.get_order(oid))

            date_time = datetime.datetime.strptime(str(order[0].OrderDate), '%Y-%m-%d')
            _date_time = str(order[0].OrderDate)
            order_list[_date_time] = {}
            order_cost[_date_time] = order[0].price
            weekday = model.get_chinese_weekday(date_time.weekday())
            # Notice-Start
            lunch_info = list(model.get_details_1(oid))
            meal_str = '\n'
            for l in lunch_info:
                if not order_list[_date_time].has_key(l.ID):
                    order_list[_date_time][l.ID] = {}
                order_list[_date_time][l.ID]["Name"] = l.Meal
                order_list[_date_time][l.ID]["Price"] = l.Price
                order_list[_date_time][l.ID]["Count"] = l.num   
                meal_str += l.Meal
                meal_str += str(l.num)
                meal_str += u'份'
                meal_str += '\n'
            meal_str_0 = meal_str.rstrip('\n')

            disp_tm = ""
            if str(order[0].tminterval) == "0":
                disp_tm = "12:00-12:20"
            elif str(order[0].tminterval) == "1":
                disp_tm = "12:20-12:40"
            elif str(order[0].tminterval) == "2":
                disp_tm = "12:40-13:00"
        '''
        weixin_url = 'https://api.weixin.qq.com/cgi-bin/token'
        weixin_payload = 'grant_type=client_credential&appid=wx9e8d00301079061b&secret=6021e0985185092b430c4182db3b3f62'
        data=urllib2.urlopen(weixin_url, weixin_payload).read()
        weixin_access_token=json.loads(data)['access_token']
        send_url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token='+weixin_access_token
        urlObj = {}
        urlObj['touser'] = web.ctx.session.openid
        urlObj['template_id']='OBRKVZrD68qGejXB1ujq2OcZ1Rg2zHIKhqumF-l6UyM'
        #urlObj['url']='www.zhunshikaifan.com'
        urlObj['data']={}
        urlObj['data']['first']={}
        urlObj['data']['first']['value'] = '您好,你的午餐下单成功'
        urlObj['data']['first']['color'] = '#173177'
        urlObj['data']['keyword1'] = {}
        urlObj['data']['keyword1']['value'] = meal_str_0
        urlObj['data']['keyword1']['color'] = '#173177'
        urlObj['data']['keyword2']={}
        urlObj['data']['keyword2']['value'] = str(order[0].OrderDate)+" "+weekday+" "+disp_tm
        urlObj['data']['keyword2']['color'] = '#173177'
        urlObj['data']['keyword3']={}
        urlObj['data']['keyword3']['value'] = order[0].OfficeName+" "+order[0].orderaddr
        urlObj['data']['keyword3']['color'] = '#173177'
        urlObj['data']['remark']={}
        urlObj['data']['remark']['value'] = '感谢您的惠顾,祝用餐愉快。'
        urlObj['data']['remark']['color'] = '#173177'
        json_data = json.dumps(urlObj)
        data = urllib.quote_plus(str(json_data))
        res = urllib2.urlopen(send_url,data=json_data).read()
       '''
        if web.ctx.session.shoppingbasket:
            web.ctx.session.shoppingbasket.clear()
        if web.ctx.session.shoppingcost:
            web.ctx.session.shoppingcost.clear()
        if web.ctx.session.shoppinglist:
            del web.ctx.session.shoppinglist[:]

        web.ctx.session.webpage="receipt"
        return render.receipt(user_info, order_list, order_cost, disp_tm)
Example #8
0
def cek_order(bot, update):
    db_data = {}
    push = {}
    date_check = 'A'
    text = update.message.text
    user = update.message.from_user
    user_id = get_id(user.id)
    if text == "⬅️ Kembali":
        return bot_main.start(bot, update, db_data)

    status_id = model.get_status_id(text)
    order_data = model.get_order(user_id, status_id)
    records = order_data.fetchall()
    if order_data.rowcount > 0:
        for row in records:
            db_data['TRACK_ID'] = row[5]
            db_data['ORDER_DATE'] = row[6]
            db_data['CUSTOMER_NAME'] = row[24]
            db_data['KCONTACT'] = row[8]
            db_data['ADDRESS_INSTALLATION'] = row[29]
            db_data['PACKAGE'] = row[30]
            db_data['CUSTOMER_PHONE'] = row[25]
            db_data['STO'] = row[3]
            db_data['DATE'] = row[11]
            date_check = 'B'
            if text == 'Not FU':
                date_check = 'C'
                update.message.reply_text(
                    "📋 <b>List Order</b>\n"
                    "{}".format(bot_main.array_to_str(db_data)),
                    parse_mode=ParseMode.HTML, reply_markup=ReplyKeyboardMarkup([['⬅️ Kembali']],
                                                                                one_time_keyboard=True,
                                                                                resize_keyboard=True))
            elif text == 'Kendala Pelanggan':
                    date_check = 'C'
                    push['TRACK_ID'] = row[5]
                    push['SC'] = row[31]
                    push['KENDALA'] = row[37]
                    push['DETIL KENDALA'] = row[9]
                    push['TECHNICIAN_NAME'] = get_teknisi(row[12])
                    push['CUSTOMER_NAME'] = row[24]
                    push['CUSTOMER_PHONE'] = row[25]
                    push['ADDRESS_INSTALLATION'] = row[29]
                    update.message.reply_text(
                        "📋 <b>List Order</b>\n"
                        "{}".format(bot_main.array_to_str(push)),
                        parse_mode=ParseMode.HTML, reply_markup=ReplyKeyboardMarkup([['⬅️ Kembali']],
                                                                                    one_time_keyboard=True,
                                                                                    resize_keyboard=True))
            elif text == 'Kendala Teknis':
                    date_check = 'C'
                    push['TRACK_ID'] = row[5]
                    push['SC'] = row[31]
                    push['KENDALA'] = row[37]
                    push['DETIL KENDALA'] = row[9]
                    push['TECHNICIAN_NAME'] = get_teknisi(row[12])
                    push['CUSTOMER_NAME'] = row[24]
                    push['CUSTOMER_PHONE'] = row[25]
                    push['ADDRESS_INSTALLATION'] = row[29]
                    update.message.reply_text(
                        "📋 <b>List Order</b>\n"
                        "{}".format(bot_main.array_to_str(push)),
                        parse_mode=ParseMode.HTML, reply_markup=ReplyKeyboardMarkup([['⬅️ Kembali']],
                                                                                    one_time_keyboard=True,
                                                                                    resize_keyboard=True))
            elif text == 'Assign Teknisi':
                date_check = 'C'
                push['TRACK_ID'] = row[5]
                push['SC'] = row[31]
                push['TECHNICIAN_NAME'] = get_teknisi(row[12])
                push['CUSTOMER_NAME'] = row[24]
                push['CUSTOMER_PHONE'] = row[25]
                push['ADDRESS_INSTALLATION'] = row[29]
                update.message.reply_text(
                    "📋 <b>List Order</b>\n"
                    "{}".format(bot_main.array_to_str(push)),
                    parse_mode=ParseMode.HTML, reply_markup=ReplyKeyboardMarkup([['⬅️ Kembali']],
                                                                                one_time_keyboard=True,
                                                                                resize_keyboard=True))
            elif text == 'Push PI':
                date_check = 'C'
                push['TRACK_ID'] = row[5]
                push['SC'] = row[31]
                push['TECHNICIAN_NAME'] = get_teknisi(row[12])
                push['CUSTOMER_NAME'] = row[24]
                push['CUSTOMER_PHONE'] = row[25]
                push['ADDRESS_INSTALLATION'] = row[29]
                update.message.reply_text(
                    "📋 <b>List Order</b>\n"
                    "{}".format(bot_main.array_to_str(push)),
                    parse_mode=ParseMode.HTML, reply_markup=ReplyKeyboardMarkup([['⬅️ Kembali']],
                                                                                one_time_keyboard=True,
                                                                                resize_keyboard=True))
            elif text == 'PI':
                    date_check = 'C'
                    push['TRACK_ID'] = row[5]
                    push['SC'] = row[31]
                    push['TECHNICIAN_NAME'] = get_teknisi(row[12])
                    push['CUSTOMER_NAME'] = row[24]
                    push['CUSTOMER_PHONE'] = row[25]
                    push['ADDRESS_INSTALLATION'] = row[29]
                    update.message.reply_text(
                        "📋 <b>List Order</b>\n"
                        "{}".format(bot_main.array_to_str(push)),
                        parse_mode=ParseMode.HTML, reply_markup=ReplyKeyboardMarkup([['⬅️ Kembali']],
                                                                                    one_time_keyboard=True,
                                                                                    resize_keyboard=True))
            else:
                update.message.reply_text("Data SCBE tidak ditemukan",
                                          reply_markup=ReplyKeyboardMarkup([['⬅️ Kembali']], one_time_keyboard=True,
                                                                           resize_keyboard=True))
                bot_main.db.commit()
                return ConversationHandler.END
        if date_check == 'B':
            update.message.reply_text("Data Order tidak ditemukan",
                                      reply_markup=ReplyKeyboardMarkup([['⬅️ Kembali']], one_time_keyboard=True,
                                                                       resize_keyboard=True))
            bot_main.db.commit()
            return ConversationHandler.END

        bot_main.db.commit()
        return bot_main.GET_MYIR_WO
    else:
        update.message.reply_text("Data Order tidak ditemukan",
                                  reply_markup=ReplyKeyboardMarkup([['⬅️ Kembali']], one_time_keyboard=True,
                                                                   resize_keyboard=True))
        bot_main.db.commit()
        return ConversationHandler.END