def imprime(_id): from aplicacion.modelos.Orden import Orden info = Orden.ordenFullInfo(_id) deff = 0 for tot in info[0]["detalle"]: deff = deff + tot["precio_total"] info[0]["total_orden"] = deff + info[0]["delivery"] info[0][ "paga"] = info[0]["pago"][0]["monto"] + info[0]["pago"][0]["vuelto"] # return info[0] return render_template("orden.html", data=info)
def mailing(_id): from aplicacion.modelos.Orden import Orden info = Orden.ordenFullInfo(_id) deff = 0 for tot in info[0]["detalle"]: deff = deff + tot["precio_total"] info[0]["total_orden"] = deff + info[0]["delivery"] info[0][ "paga"] = info[0]["pago"][0]["monto"] + info[0]["pago"][0]["vuelto"] # return info[0] body = render_template("mail_orden.html", data=info) mail = Utilidades.send_mail(info[0]["correo"], 'Orden ' + str(_id), body) return info[0]
def webpay(): from aplicacion.helpers.transbank import transbank from aplicacion.modelos.Orden import Orden from aplicacion.modelos.OrdenPago import OrdenPago try: if request.method == 'GET': parser = reqparse.RequestParser() parser.add_argument('token', type=str, required=True, help="Debe indicar una atención") # parser.add_argument('amount', # type=str, # required=True, # help="Debe indicar una atención" # ) # parser.add_argument('order', # type=str, # required=True, # help="Debe indicar una atención" # ) data = parser.parse_args() token = data["token"] data = base64.b64decode(data["token"]) data = json.loads(data) infoOrden = Orden.ordenFullInfo(data["order"]) if len(infoOrden) == 0: return { "estado": 0, "msj": "La orden que desea pagar no esta registrada" } deff = 0 for tot in infoOrden[0]["detalle"]: deff = deff + tot["precio_total"] infoOrden[0]["total_orden"] = deff + infoOrden[0]["delivery"] monto = infoOrden[0]["total_orden"] body = { "order": data["order"], "session": datetime.now().timestamp(), "amount": monto, "url_return": "http://rypsystems.cl:5000/webpayresponse?token=" + str(token) } result = transbank.crearToken(body) upOp = { "url_redirect": data["url_return"], "tb_token": result["token"] } OrdenPago.update_data_by_orden(data["order"], upOp) result["method"] = "POST" return render_template('redirect.html', data=result) if request.method == 'POST': dataJson = request.get_json() token = json.dumps(dataJson).encode('utf-8') token = base64.b64encode(token) token = str(token).replace("b'", "") token = token.replace("'", "") return {"token": token} except Exception as e: print("=======================E") print(e) exc_type, exc_obj, exc_tb = sys.exc_info() fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] msj = 'Error: ' + str(exc_obj) + ' File: ' + fname + ' linea: ' + str( exc_tb.tb_lineno) return msj
def put(self): exist = None try: first = 'Hola, que orden deseas consultar' r = requests.get( 'https://api.telegram.org/bot1285646573:AAG8TM4f1ghE9rCU8DoP66s-SWVN63NcFYM/getUpdates') info = r.json() for x in info["result"]: msj = x["message"]["text"].strip() if msj.upper() == 'ENTRAR': entro = Asistencia.entrada() indicador = x["message"]["from"]["id"] respondido = Telegram.get_data(x["update_id"]) if not respondido: bot.send_message(indicador, entro) ins = { "id_update" : x["update_id"], "id_chat" : x["message"]["from"]["id"] } Telegram.insert(ins) elif msj.upper() == 'SALIR': salgo = Asistencia.salida() indicador = x["message"]["from"]["id"] respondido = Telegram.get_data(x["update_id"]) if not respondido: bot.send_message(indicador, salgo) ins = { "id_update" : x["update_id"], "id_chat" : x["message"]["from"]["id"] } Telegram.insert(ins) else: orden = x["message"]["text"].split(" ") if len(orden) > 1: if orden[1]: try: exist = Orden.ordenFullInfo(orden[1]) except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] msj = 'Error: '+ str(exc_obj) + ' File: ' + fname +' linea: '+ str(exc_tb.tb_lineno) return {'mensaje': str(msj) }, 500 if exist: first ="Nombre= " + str(exist[0]["nombre"]) +" \n" first +="Teléfono= " + str(exist[0]["telefono"]) +" \n" first +="Dirección= " + str(exist[0]["direccion"]) +" \n" llamar = exist[0]["telefono"] if orden[0] == 'o' or orden[0] == 'O' and exist: indicador = x["message"]["from"]["id"] respondido = Telegram.get_data(x["update_id"]) if not respondido: bot.send_message(indicador, first) bot.send_message(indicador, llamar) ins = { "id_update" : x["update_id"], "id_chat" : x["message"]["from"]["id"] } Telegram.insert(ins) return r.json() except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] msj = 'Error: '+ str(exc_obj) + ' File: ' + fname +' linea: '+ str(exc_tb.tb_lineno) return {'mensaje': str(msj) }, 500