def send_venue_sms(venue, order, move=False): if venue.phones: if move: text = u'Заказ №%s перенесен на эту точку приготовления' % order.key.id() else: text = u'Новый заказ №%s поступил в систему из мобильного приложения' % order.key.id() send_sms(venue.phones, text)
def send_demo_sms(client): text = u'Поздравляем! На Вашу почту поступил тестовый заказ. Хотите боевой?\nhttp://rbcn.mobi/' try: send_sms([client.tel], text, company_footer=False) except Exception as e: error_text = str(e) error_text += u' В демо компании "%s" (%s).' % (config.APP_NAME, namespace_manager.get_namespace()) send_error('sms_error', 'Send sms', error_text)
def post(self): namespace = self.request.get('namespace') namespace_manager.set_namespace(namespace) order_id = self.request.get_range('order_id') order = Order.get_by_id(order_id) if not order.response_success: client = Client.get(order.client_id) sms_text = u"%s, Ваш заказ №%s принят. Проверьте историю заказов." % ( client.name, order_id) sms_pilot.send_sms([sms_phone(client.tel)], sms_text)
def send_confirmation(order): conf = config.Config.get() phone = order.customer.get().phone sms_text = _CONFIRMATION_TEXT % (order.number, conf.APP_NAME) success, _ = sms_pilot.send_sms("INFORM", [phone[1:]], sms_text)
def _notify_sms(phone, login, password): sms_pilot.send_sms([ phone ], u"Логин для входа в демо-приложение: %s, пароль %s. Скачать: http://rbcn.mobi/get/dem?m=sms" % (login, password))
def cancel_order(order, status, namespace, comment=None): success = True if order.has_card_payment: legal = Venue.get(order.venue_id).legal.get() return_result = alfa_bank.reverse(legal.alfa_login, legal.alfa_password, order.payment_id) success = str(return_result['errorCode']) == '0' elif order.has_paypal_payment: success, error = paypal.void(order.payment_id) if success: for gift_detail in order.gift_details: try: empatika_promos.cancel_activation(gift_detail.activation_id) except empatika_promos.EmpatikaPromosError as e: logging.exception(e) admins.send_error("payment", "Cancel activation", str(e)) success = False if success: success_wallet_payment_reverse = False if order.wallet_payment > 0 and config.APP_KIND == AUTO_APP: try: empatika_wallet.reverse(order.client_id, order.key.id()) deferred.defer(get_balance, order.client_id, raise_error=True) # just to update memcache success_wallet_payment_reverse = True except empatika_wallet.EmpatikaWalletError as e: logging.exception(e) admins.send_error("payment", "Wallet reversal failed", str(e)) # main payment reversed -- do not abort for share_gift in order.shared_gift_details: gift = share_gift.gift.get() gift.recover() for performing in order.promo_code_performings: performing = performing.get() performing.recover() if order.subscription_details: subscription = order.subscription_details.subscription.get() subscription.recover(order.subscription_details.amount) if order.geo_push: geo_push = order.geo_push.get() geo_push.recover() if order.left_basket_promo: left_basket_promo = order.left_basket_promo.get() left_basket_promo.recover() order.status = status order.return_datetime = datetime.utcnow() order.return_comment = comment order.email_key_done = None order.email_key_cancel = None order.email_key_postpone = None order.email_key_confirm = None order.put() if order.shared_promo: shared_promo = order.shared_promo.get() if order.client_id == shared_promo.recipient.id(): shared_promo.recipient_promo_success = False elif order.client_id == shared_promo.sender.id(): shared_promo.sender_promo_success = False shared_promo.put() if status == CANCELED_BY_BARISTA_ORDER: client = Client.get(order.client_id) push_text = u"%s, заказ №%s отменен." % (client.name, order.number) if order.has_card_payment: push_text += u" Ваш платеж будет возвращен на карту в течение нескольких минут.\n" if success_wallet_payment_reverse: push_text += u" Бонусные баллы были возвращены на Ваш счет.\n" if comment: push_text += " " + comment OrderPush(push_text, order, namespace).send() elif status == CANCELED_BY_CLIENT_ORDER: message = u"Заказ из мобильного приложения №%s отменен клиентом" % order.key.id( ) venue = Venue.get(order.venue_id) try: sms_pilot.send_sms(venue.phones, message) except: pass for email in venue.emails: if email: deferred.defer(postmark.send_email, EMAIL_FROM, email, message, "<html></html>") return success