예제 #1
0
def revisar_pago(request, sale_id):
    pedido = Sale.objects.get(pk=sale_id)

    user_conekta = ConektaUser.objects.get(user=pedido.user)

    # conekta.api_key = "key_wHTbNqNviFswU6kY8Grr7w"
    openpay.api_key = APP_OPENPAY_API_KEY
    openpay.verify_ssl_certs = APP_OPENPAY_VERIFY_SSL_CERTS
    openpay.merchant_id = APP_OPENPAY_MERCHANT_ID
    openpay.production = APP_OPENPAY_PRODUCTION  # By default this works in sandbox mode, production = True

    customer = openpay.Customer.retrieve(user_conekta.conekta_user)

    if len(pedido.charge_conekta) > 0:
        charge = customer.charges.retrieve(pedido.charge_conekta)
        # import pdb; pdb.set_trace()
        if charge.status == "completed":
            pedido.status = PAID
            pedido.vendor = request.user
            pedido.save()
            pedido.discount_inventory
            detalles = pedido.detail_sales.all()
            enviar_mensaje = EmailSendSale(pedido, detalles, pedido.user)
            enviar_mensaje.enviarMensaje()
            str_pedido = str(pedido.id).zfill(6)
            str_total = "{:20,.2f}".format(pedido.total)
            message = "Tu orden #{0} con un monto de ${1} ha sido entregada.".format(str_pedido, str_total)
            create_notification_ionic_push_carrito(pedido, pedido.user, "FarmaApp", message)

    if request.is_ajax():
        template = "item_pedido.html"
    else:
        template = "detalle_pedido.html"

    return render(request, template, {"pedido": pedido, "detalles": detalles})
예제 #2
0
def send_sale_for_email(request, sale_id):
    pedido = Sale.objects.get(pk=sale_id)
    user = pedido.user
    detalles = DetailSale.objects.filter(sale=pedido.id)
    # import pdb; pdb.set_trace()
    enviar_mensaje = EmailSendSale(pedido, detalles, user)
    enviar_mensaje.enviarMensaje()
    return HttpResponse("Email enviado")
예제 #3
0
def detalle_entregar(request, sale_id):
    pedido = Sale.objects.get(pk=sale_id)
    if pedido.status != DELIVERED:
        pedido.status = DELIVERED
        pedido.vendor = request.user
        user_conekta = ConektaUser.objects.get(user=pedido.user)

        device_session_id = request.GET.get("device_session_id")

        # conekta.api_key = "key_wHTbNqNviFswU6kY8Grr7w"
        openpay.api_key = APP_OPENPAY_API_KEY
        openpay.verify_ssl_certs = APP_OPENPAY_VERIFY_SSL_CERTS
        openpay.merchant_id = APP_OPENPAY_MERCHANT_ID
        openpay.production = APP_OPENPAY_PRODUCTION  # By default this works in sandbox mode, production = True

        customer = openpay.Customer.retrieve(user_conekta.conekta_user)

        # import pdb; pdb.set_trace();
        card_conekta = pedido.card_conekta
        amount = pedido.total
        detalles = pedido.detail_sales.all()
        lista = []
        charge = None
        if len(pedido.charge_conekta) == 0:
            charge = customer.charges.create(
                source_id=card_conekta.card,
                method="card",
                amount=amount,
                description="Pedido de FarmaApp",
                order_id="pedido-" + str(pedido.id) + "-farmaapp",
                device_session_id=device_session_id,
            )
        else:
            charge = customer.charges.retrieve(pedido.charge_conekta)

        if charge is None:
            pedido.status = NO_PAID
            pedido.save()
        elif charge.status == "completed":
            pedido.charge_conekta = charge.id
            pedido.status = PAID
            pedido.vendor = request.user
            pedido.save()
            pedido.discount_inventory
            enviar_mensaje = EmailSendSale(pedido, detalles, pedido.user)
            enviar_mensaje.enviarMensaje()
            #  import pdb; pdb.set_trace()
            str_pedido = str(pedido.id).zfill(6)
            str_total = "{:20,.2f}".format(pedido.total)
            message = "Tu orden #{0} con un monto de ${1} ha sido entregada.".format(str_pedido, str_total)
            create_notification_ionic_push_carrito(pedido, pedido.user, "FarmaApp", message)
            # import pdb; pdb.set_trace()
        elif charge.status == "in_progress":
            pedido.charge_conekta = charge.id
            pedido.status = NO_PAID
            pedido.vendor = request.user
            pedido.save()
        elif charge.status == "failed":
            pedido.status = NO_PAID
            pedido.save()

    if request.is_ajax():
        template = "item_pedido.html"
    else:
        template = "detalle_pedido.html"

    return render(request, template, {"pedido": pedido, "detalles": detalles})