示例#1
0
 def create_payments(sale):
     for payment_index in self.payment_handler.payments_tree.get_children():
         payment_values = self.payment_handler.payments_tree.item(payment_index)['values']
         Payment.create(
             sale=sale,
             date=datetime.strptime(payment_values[2], DATE_FORMAT),
             type=Payment.TYPES[payment_values[3]],
             amount=string_to_float(payment_values[4]),
             currency=Payment.CURRENCIES[payment_values[5]],
             method=Payment.METHODS[payment_values[6]],
             rate= string_to_float(payment_values[7]),
             account=Payment.ACCOUNTS[payment_values[8]]
         )
示例#2
0
def create_payment():

    params = request.get_json()
    token_user = params.get('token')
    amount = params.get('amount')
    label = params.get('label')
    card_number = params.get('card_number')
    card_month = params.get('card_month')
    card_year = params.get('card_year')
    card_cvc = params.get('card_cvc')

    card = {
        "number": card_number,
        "exp_month": card_month,
        "exp_year": card_year,
        "cvc": card_cvc
    }
    token = stripe.Token.create(card=card)

    if check_token(token_user) is False:
        return jsonify({'error': True, 'message': 'Not connected or token expired'}), 400

    else:
        userToken = check_token(token_user)

        try:
            charge = stripe.Charge.create(card=token.id, currency="eur", amount=amount, capture=False)
            
            payment = Payment.create(amount=amount, label=label, user=userToken.user_id)
            payment.save()

            code = Code.create(user_id=userToken.user_id.id, value=random.randint(1000, 9999), charge_id=charge.id)
            code.save()

            sender = "Aperture"
            text = "Here is your code {code} to authentify your transaction.".format(code=code.value)
            sending_message = send_message(sender, text)

            return jsonify({'error': False, 'message': "A code to authentify your transaction has been sent to you."}), 201

        except Exception as e:
            return jsonify({'error': True, 'message': '{error}'.format(error=e) }), 400
示例#3
0
def create_new_payment(request_data):
    request_data = dict(request_data.items())
    log.debug(request_data)
    new_payment = Payment.create(**request_data)
    return new_payment
示例#4
0
def create_payments(debts, student):
    for debt in debts:
        Payment.create(debt=debt, student=student, exemption=False)
示例#5
0
    def update_sale(self):
        # Sale Info.
        sale_date = self.sale.date.strftime(DATE_FORMAT)
        sale_desc = self.sale.description
        sale_client = self.sale.client

        try:
            if sale_date != self.sale_date_entry.get():
                self.sale.date = datetime.strptime(self.sale_date_entry.get(),
                                                   DATE_FORMAT)

            if sale_desc != self.sale_desc_text.get():
                self.sale.description = self.sale_desc_text.get()

            if sale_client != self.client_handler.client:
                self.sale.client = self.client_handler.client

            if not self.order_tree.orders_tree.get_children():
                raise Exception("No puede existir una venta sin órdenes!")

            for order_index in self.order_tree.orders_tree.get_children():
                if self.order_tree.orders_tree.item(
                        order_index)['values'][0] == 'None':
                    new_order_values = self.order_tree.orders_tree.item(
                        order_index)['values']
                    Order.create(product=new_order_values[1],
                                 sale=self.sale.id,
                                 date=datetime.strptime(TODAY, DATE_FORMAT),
                                 amount=new_order_values[3],
                                 price=get_dollars(new_order_values[5]),
                                 discount=int(new_order_values[7]))

            for payment_index in self.payments_handler.payments_tree.get_children(
            ):
                if self.payments_handler.payments_tree.item(
                        payment_index)['values'][0] == 'None':
                    payment_values = self.payments_handler.payments_tree.item(
                        payment_index)['values']
                    Payment.create(
                        sale=self.sale,
                        date=datetime.strptime(payment_values[2], DATE_FORMAT),
                        type=Payment.TYPES[payment_values[3]],
                        amount=string_to_float(payment_values[4]),
                        currency=Payment.CURRENCIES[payment_values[5]],
                        method=Payment.METHODS[payment_values[6]],
                        rate=string_to_float(payment_values[7]),
                        account=Payment.ACCOUNTS[payment_values[8]])

            for order_index in self.order_tree.orders_to_update:
                updated_order_values = self.order_tree.orders_tree.item(
                    order_index)['values']
                order_id = updated_order_values[0]
                amount = updated_order_values[3]
                # discount = int(updated_order_values[7])
                price = get_dollars(updated_order_values[5])
                order = Order.get(order_id)
                order.amount = amount
                order.price = price
                # order.discount = discount
                order.save()

            for order_id in self.order_tree.orders_to_delete:
                try:
                    order = Order.get(Order.id == order_id)
                    order.delete_instance()
                except Exception as err:
                    pass

            for payment_id in self.payments_handler.payments_to_delete:
                payment = Payment.get(Payment.id == payment_id)
                payment.delete_instance()

            total_sale = float(self.order_tree.total_orders_usd)
            total_payments = float(
                self.payments_handler.total_payments_dollars_label["text"].
                rstrip("$"))
            if es_casi_igual(total_sale, total_payments):
                self.sale.is_finished = True
                self.sale.finished_date = date.today()
            else:
                self.sale.is_finished = False

            self.sale.save()
            self.detail_sale_window.destroy()

            if self.callbacks and self.params:
                self.callbacks[0](self.params)
            elif self.callbacks:
                for callback in self.callbacks:
                    callback(self.query_date)

        except Exception as err:
            messagebox.showerror("Error!", err, parent=self.detail_sale_window)