fix reports bugs
This commit is contained in:
@@ -13,6 +13,7 @@ def fetch_rates_for_base(base_ui: str) -> dict:
|
||||
r = requests.get(url, params=params, timeout=6)
|
||||
r.raise_for_status()
|
||||
data = r.json()
|
||||
print(data)
|
||||
rates = {k: float(v) for k, v in data["rates"].items()}
|
||||
rates[base_iso] = 1.0
|
||||
return {ui: rates[iso] for ui, iso in ISO.items()}
|
||||
@@ -164,8 +165,8 @@ class ReportOrderInPage:
|
||||
self.usd.value = f"{fx['USD']:.4f}"
|
||||
self.chf.value = f"{fx['CHF']:.4f}"
|
||||
self.gbp.value = f"{fx['GBP']:.4f}"
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as e:
|
||||
print(e)
|
||||
self.convert_courrency_dialog_placeholder.update()
|
||||
|
||||
def on_convert_curency_btn_click(self, e):
|
||||
|
||||
@@ -201,31 +201,51 @@ class ReportsPage:
|
||||
for order_in in all_orders_in:
|
||||
if order_in['order_number'] not in orders_in_ids:
|
||||
all_orders.append(order_in)
|
||||
#print('Total Orders: ', all_orders)
|
||||
|
||||
total = 0
|
||||
for order in all_orders:
|
||||
#print('Order: ',order)
|
||||
self.convert_currency_placeholder.content = self.convert_currency
|
||||
if order['currency_received'] not in self.currency_list:
|
||||
self.currency_list.append(order['currency_received'])
|
||||
if order['currency_paid'] not in self.currency_list:
|
||||
self.currency_list.append(order['currency_paid'])
|
||||
if order.get('status') != 'active':
|
||||
continue
|
||||
order_number = order['order_number']
|
||||
if 'currency_received' in order:
|
||||
if order['currency_received'] not in self.currency_list:
|
||||
self.currency_list.append(order['currency_received'])
|
||||
if 'currency_paid' in order:
|
||||
if order['currency_paid'] not in self.currency_list:
|
||||
self.currency_list.append(order['currency_paid'])
|
||||
if 'order_in_number' in order:
|
||||
if order.get('status') != 'active':
|
||||
continue
|
||||
order_number = f"Order In: {order['order_number']}"
|
||||
if 'order_in_number' in order:
|
||||
if order['order_in_number']:
|
||||
order_number = f"Order Out: {order['order_number']}\nOrder In:{order['order_in_number']}"
|
||||
else:
|
||||
order_number = f"Order Out: {order['order_number']}"
|
||||
client_name = self.get_client(order['client_id'])['name']
|
||||
transporter_name = self.get_transporter(order['transporter_id'])['name']
|
||||
transporter_name = self.get_transporter(order['transporter_id'])['name'] if 'transporter_id' in order else ''
|
||||
order_date = order['created_at'].split("T")[0]
|
||||
paid = f"{order['paid_price']} {order['currency_paid']}"
|
||||
order_pay_price = order['paid_price'] if 'paid_price' in order else 0
|
||||
order_curency_paid = order['currency_paid'] if 'currency_paid' in order else ''
|
||||
paid = f"{order_pay_price} {order_curency_paid}"
|
||||
received = f"{order['received_price']} {order['currency_received']}"
|
||||
currency = order['currency_received'] if order['currency_paid'] == order['currency_received'] else ''
|
||||
if 'currency_paid' in order:
|
||||
currency = order['currency_received'] if order['currency_paid'] == order['currency_received'] else ''
|
||||
else:
|
||||
currency = order['currency_received']
|
||||
expenses = 0
|
||||
for order_in in all_orders_in:
|
||||
if 'order_in_number' in order and order['order_in_number'] == order_in['order_number']:
|
||||
expenses = order_in.get('expenses', 0) or 0
|
||||
if 'order_in_number' in order:
|
||||
for order_in in all_orders_in:
|
||||
if order['order_in_number'] == order_in['order_number']:
|
||||
expenses = f"{order_in['expenses']} {order_in['currency_expenses']}" if order_in['expenses'] else 0
|
||||
else:
|
||||
expenses = f"{order['expenses']} {order['currency_expenses']}" if order['expenses'] else 0
|
||||
order_type = 'Out' if 'order_in_number' in order else 'In'
|
||||
if currency:
|
||||
try:
|
||||
profit_value = round(float(order['received_price']) - float(order['paid_price']) - float(expenses), 2)
|
||||
_expences = expenses.split(' ')[0] if expenses != 0 else 0
|
||||
_pay_price = order['paid_price'] if 'paid_price' in order else 0
|
||||
profit_value = round(float(order['received_price']) - float(_pay_price) - float(_expences), 2)
|
||||
profit = f"{profit_value} {currency}"
|
||||
except Exception as e:
|
||||
print(e)
|
||||
@@ -268,7 +288,9 @@ class ReportsPage:
|
||||
total += float(profit.split(" ")[0])
|
||||
except Exception:
|
||||
pass
|
||||
self.total.value = f"Total: {total}" if len(self.currency_list)==1 else ""
|
||||
#print('Row data: ', row_data)
|
||||
#print('Rows: ', self.rows)
|
||||
self.total.value = f"Total: {total:.2f}" if len(self.currency_list)==1 else ""
|
||||
self.rows_copy = list(self.rows)
|
||||
|
||||
def on_report_orders_in_btn_click(self, e):
|
||||
@@ -414,12 +436,15 @@ class ReportsPage:
|
||||
received_number, received_currency = received_str.split(" ")
|
||||
except ValueError:
|
||||
received_number, received_currency = "0", base
|
||||
|
||||
expenses_number = expenses_str or "0"
|
||||
try:
|
||||
expenses_currency = None
|
||||
expenses_number, expenses_currency = expenses_str.split(" ")
|
||||
except:
|
||||
expenses_number = expenses_str or "0", base
|
||||
|
||||
paid_base = to_base(paid_number, paid_currency)
|
||||
received_base = to_base(received_number, received_currency)
|
||||
expenses_base = to_base(expenses_number, paid_currency)
|
||||
expenses_base = to_base(expenses_number, expenses_currency) if expenses_currency else 0
|
||||
|
||||
profit_base = round(float(received_base) - float(paid_base) - float(expenses_base), 2)
|
||||
|
||||
@@ -430,7 +455,7 @@ class ReportsPage:
|
||||
ft.DataCell(ft.Text(client_name)),
|
||||
ft.DataCell(ft.Text(transporter_name)),
|
||||
ft.DataCell(ft.Text(order_date)),
|
||||
ft.DataCell(ft.Text(expenses_str)),
|
||||
ft.DataCell(ft.Text(f"{expenses_base:.2f} {base}")),
|
||||
ft.DataCell(ft.Text(f"{paid_base:.2f} {base}")),
|
||||
ft.DataCell(ft.Text(f"{received_base:.2f} {base}")),
|
||||
ft.DataCell(ft.Text(f"{profit_base:.2f} {base}")),
|
||||
@@ -502,7 +527,7 @@ class ReportsPage:
|
||||
except Exception:
|
||||
pass
|
||||
self.data_table.update()
|
||||
self.total.value = f"Total: {total}" if len(self.currency_list)==1 else ""
|
||||
self.total.value = f"Total: {total:.2f}" if len(self.currency_list)==1 else ""
|
||||
self.total.update()
|
||||
self.start_date.value = ""
|
||||
self.start_date.update()
|
||||
@@ -540,7 +565,7 @@ class ReportsPage:
|
||||
pass
|
||||
self.rows_copy = buffer
|
||||
self.data_table.update()
|
||||
self.total.value = f"Total: {total}" if len(self.currency_list)==1 else ""
|
||||
self.total.value = f"Total: {total:.2f}" if len(self.currency_list)==1 else ""
|
||||
self.total.update()
|
||||
|
||||
def on_end_date_click(self, e):
|
||||
@@ -574,7 +599,7 @@ class ReportsPage:
|
||||
pass
|
||||
self.rows_copy = buffer
|
||||
self.data_table.update()
|
||||
self.total.value = f"Total: {total}" if len(self.currency_list)==1 else ""
|
||||
self.total.value = f"Total: {total:.2f}" if len(self.currency_list)==1 else ""
|
||||
self.total.update()
|
||||
|
||||
def filter_by_client(self, e):
|
||||
@@ -603,7 +628,7 @@ class ReportsPage:
|
||||
except Exception:
|
||||
pass
|
||||
self.data_table.update()
|
||||
self.total.value = f"Total: {total}" if len(self.currency_list)==1 else ""
|
||||
self.total.value = f"Total: {total:.2f}" if len(self.currency_list)==1 else ""
|
||||
self.total.update()
|
||||
return
|
||||
buffer = []
|
||||
@@ -630,7 +655,7 @@ class ReportsPage:
|
||||
pass
|
||||
self.rows_copy = buffer
|
||||
self.data_table.update()
|
||||
self.total.value = f"Total: {total}" if len(self.currency_list)==1 else ""
|
||||
self.total.value = f"Total: {total:.2f}" if len(self.currency_list)==1 else ""
|
||||
self.total.update()
|
||||
|
||||
def filter_by_transporter(self, e):
|
||||
@@ -659,7 +684,7 @@ class ReportsPage:
|
||||
except Exception:
|
||||
pass
|
||||
self.data_table.update()
|
||||
self.total.value = f"Total: {total}" if len(self.currency_list)==1 else ""
|
||||
self.total.value = f"Total: {total:.2f}" if len(self.currency_list)==1 else ""
|
||||
self.total.update()
|
||||
return
|
||||
buffer = []
|
||||
@@ -686,7 +711,7 @@ class ReportsPage:
|
||||
pass
|
||||
self.rows_copy = buffer
|
||||
self.data_table.update()
|
||||
self.total.value = f"Total: {total}" if len(self.currency_list)==1 else ""
|
||||
self.total.value = f"Total: {total:.2f}" if len(self.currency_list)==1 else ""
|
||||
self.total.update()
|
||||
|
||||
def build(self):
|
||||
|
||||
Reference in New Issue
Block a user