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 = requests.get(url, params=params, timeout=6)
|
||||||
r.raise_for_status()
|
r.raise_for_status()
|
||||||
data = r.json()
|
data = r.json()
|
||||||
|
print(data)
|
||||||
rates = {k: float(v) for k, v in data["rates"].items()}
|
rates = {k: float(v) for k, v in data["rates"].items()}
|
||||||
rates[base_iso] = 1.0
|
rates[base_iso] = 1.0
|
||||||
return {ui: rates[iso] for ui, iso in ISO.items()}
|
return {ui: rates[iso] for ui, iso in ISO.items()}
|
||||||
@@ -164,8 +165,8 @@ class ReportOrderInPage:
|
|||||||
self.usd.value = f"{fx['USD']:.4f}"
|
self.usd.value = f"{fx['USD']:.4f}"
|
||||||
self.chf.value = f"{fx['CHF']:.4f}"
|
self.chf.value = f"{fx['CHF']:.4f}"
|
||||||
self.gbp.value = f"{fx['GBP']:.4f}"
|
self.gbp.value = f"{fx['GBP']:.4f}"
|
||||||
except Exception:
|
except Exception as e:
|
||||||
pass
|
print(e)
|
||||||
self.convert_courrency_dialog_placeholder.update()
|
self.convert_courrency_dialog_placeholder.update()
|
||||||
|
|
||||||
def on_convert_curency_btn_click(self, e):
|
def on_convert_curency_btn_click(self, e):
|
||||||
|
|||||||
@@ -201,31 +201,51 @@ class ReportsPage:
|
|||||||
for order_in in all_orders_in:
|
for order_in in all_orders_in:
|
||||||
if order_in['order_number'] not in orders_in_ids:
|
if order_in['order_number'] not in orders_in_ids:
|
||||||
all_orders.append(order_in)
|
all_orders.append(order_in)
|
||||||
|
#print('Total Orders: ', all_orders)
|
||||||
|
|
||||||
total = 0
|
total = 0
|
||||||
for order in all_orders:
|
for order in all_orders:
|
||||||
|
#print('Order: ',order)
|
||||||
self.convert_currency_placeholder.content = self.convert_currency
|
self.convert_currency_placeholder.content = self.convert_currency
|
||||||
|
if 'currency_received' in order:
|
||||||
if order['currency_received'] not in self.currency_list:
|
if order['currency_received'] not in self.currency_list:
|
||||||
self.currency_list.append(order['currency_received'])
|
self.currency_list.append(order['currency_received'])
|
||||||
|
if 'currency_paid' in order:
|
||||||
if order['currency_paid'] not in self.currency_list:
|
if order['currency_paid'] not in self.currency_list:
|
||||||
self.currency_list.append(order['currency_paid'])
|
self.currency_list.append(order['currency_paid'])
|
||||||
|
if 'order_in_number' in order:
|
||||||
if order.get('status') != 'active':
|
if order.get('status') != 'active':
|
||||||
continue
|
continue
|
||||||
order_number = order['order_number']
|
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']
|
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]
|
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']}"
|
received = f"{order['received_price']} {order['currency_received']}"
|
||||||
|
if 'currency_paid' in order:
|
||||||
currency = order['currency_received'] if order['currency_paid'] == order['currency_received'] else ''
|
currency = order['currency_received'] if order['currency_paid'] == order['currency_received'] else ''
|
||||||
|
else:
|
||||||
|
currency = order['currency_received']
|
||||||
expenses = 0
|
expenses = 0
|
||||||
|
if 'order_in_number' in order:
|
||||||
for order_in in all_orders_in:
|
for order_in in all_orders_in:
|
||||||
if 'order_in_number' in order and order['order_in_number'] == order_in['order_number']:
|
if order['order_in_number'] == order_in['order_number']:
|
||||||
expenses = order_in.get('expenses', 0) or 0
|
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'
|
order_type = 'Out' if 'order_in_number' in order else 'In'
|
||||||
if currency:
|
if currency:
|
||||||
try:
|
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}"
|
profit = f"{profit_value} {currency}"
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
print(e)
|
||||||
@@ -268,7 +288,9 @@ class ReportsPage:
|
|||||||
total += float(profit.split(" ")[0])
|
total += float(profit.split(" ")[0])
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
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)
|
self.rows_copy = list(self.rows)
|
||||||
|
|
||||||
def on_report_orders_in_btn_click(self, e):
|
def on_report_orders_in_btn_click(self, e):
|
||||||
@@ -414,12 +436,15 @@ class ReportsPage:
|
|||||||
received_number, received_currency = received_str.split(" ")
|
received_number, received_currency = received_str.split(" ")
|
||||||
except ValueError:
|
except ValueError:
|
||||||
received_number, received_currency = "0", base
|
received_number, received_currency = "0", base
|
||||||
|
try:
|
||||||
expenses_number = expenses_str or "0"
|
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)
|
paid_base = to_base(paid_number, paid_currency)
|
||||||
received_base = to_base(received_number, received_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)
|
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(client_name)),
|
||||||
ft.DataCell(ft.Text(transporter_name)),
|
ft.DataCell(ft.Text(transporter_name)),
|
||||||
ft.DataCell(ft.Text(order_date)),
|
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"{paid_base:.2f} {base}")),
|
||||||
ft.DataCell(ft.Text(f"{received_base:.2f} {base}")),
|
ft.DataCell(ft.Text(f"{received_base:.2f} {base}")),
|
||||||
ft.DataCell(ft.Text(f"{profit_base:.2f} {base}")),
|
ft.DataCell(ft.Text(f"{profit_base:.2f} {base}")),
|
||||||
@@ -502,7 +527,7 @@ class ReportsPage:
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
self.data_table.update()
|
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.total.update()
|
||||||
self.start_date.value = ""
|
self.start_date.value = ""
|
||||||
self.start_date.update()
|
self.start_date.update()
|
||||||
@@ -540,7 +565,7 @@ class ReportsPage:
|
|||||||
pass
|
pass
|
||||||
self.rows_copy = buffer
|
self.rows_copy = buffer
|
||||||
self.data_table.update()
|
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.total.update()
|
||||||
|
|
||||||
def on_end_date_click(self, e):
|
def on_end_date_click(self, e):
|
||||||
@@ -574,7 +599,7 @@ class ReportsPage:
|
|||||||
pass
|
pass
|
||||||
self.rows_copy = buffer
|
self.rows_copy = buffer
|
||||||
self.data_table.update()
|
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.total.update()
|
||||||
|
|
||||||
def filter_by_client(self, e):
|
def filter_by_client(self, e):
|
||||||
@@ -603,7 +628,7 @@ class ReportsPage:
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
self.data_table.update()
|
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.total.update()
|
||||||
return
|
return
|
||||||
buffer = []
|
buffer = []
|
||||||
@@ -630,7 +655,7 @@ class ReportsPage:
|
|||||||
pass
|
pass
|
||||||
self.rows_copy = buffer
|
self.rows_copy = buffer
|
||||||
self.data_table.update()
|
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.total.update()
|
||||||
|
|
||||||
def filter_by_transporter(self, e):
|
def filter_by_transporter(self, e):
|
||||||
@@ -659,7 +684,7 @@ class ReportsPage:
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
self.data_table.update()
|
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.total.update()
|
||||||
return
|
return
|
||||||
buffer = []
|
buffer = []
|
||||||
@@ -686,7 +711,7 @@ class ReportsPage:
|
|||||||
pass
|
pass
|
||||||
self.rows_copy = buffer
|
self.rows_copy = buffer
|
||||||
self.data_table.update()
|
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.total.update()
|
||||||
|
|
||||||
def build(self):
|
def build(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user