示例#1
0
文件: payment.py 项目: Ciwara/GCiss
    def popup(self, pos):

        # from ui.ligne_edit import EditLigneViewWidget
        from ui.deleteview import DeleteViewWidget
        from data_helper import check_befor_update_payment

        if (len(self.data) -
                1) < self.selectionModel().selection().indexes()[0].row():
            return False
        menu = QMenu()
        editaction = menu.addAction("Modifier cette ligne")
        delaction = menu.addAction("Supprimer cette ligne")
        action = menu.exec_(self.mapToGlobal(pos))
        row = self.selectionModel().selection().indexes()[0].row()
        payment = Payment.get(id=self.data[row][-1])
        if action == editaction:
            self.parent.open_dialog(EditOrAddPaymentrDialog,
                                    modal=True,
                                    payment=payment,
                                    table_p=self)

        if action == delaction:
            self.parent.open_dialog(DeleteViewWidget,
                                    modal=True,
                                    table_p=self,
                                    obj=payment)
def check_user(token, payment):
    try:
        test_token = Token.get(Token.value == token)
        test_payment = Payment.get(Payment.id == payment)
    
        if test_token.user_id.id == test_payment.user.id:
            return True
        else:
            return False
    
    except Exception as error:
        return False
示例#3
0
def get_transaction(id):

    params = request.get_json()
    token = params.get('token')
    
    if check_token(token) is False:
        return jsonify({'error': True, 'message': 'Not connected or token expired'}), 400
    
    else:
        userToken = check_token(token)

    try:
        payment = Payment.get(Payment.id == id)
        
        if check_user(token, id) is False:
            return jsonify({'error': False, 'message': 'This user can not access this transaction'}), 400

        else:
            data = model_to_dict(payment)
            return jsonify({'data': data}), 201

    except Exception as error:
        return jsonify({'error': False, 'message': 'Not found {error}'.format(error=error) }), 400
 def get(self):
     payment_key = self.request.get('payment_key')
     payment = Payment.get(payment_key)
     transactions_list = payment.getTenantTransactions()
     transactions_list_json = json.dumps(transactions_list)
     self.response.out.write(transactions_list_json)
示例#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)