Cleanup some logic for tracking current txn/cust

This commit is contained in:
Lance Edgar 2023-09-25 21:57:43 -05:00
parent 1fd78d0c2f
commit 6caee556df

View file

@ -74,10 +74,9 @@ class POSView(WuttaView):
handler = self.get_batch_handler()
handler.set_customer(batch, customer)
key_field = self.app.get_customer_key_field()
customer_key = getattr(customer, key_field)
self.page.session.set('txn_display', handler.get_screen_txn_display(batch))
self.page.session.set('cust_uuid', customer.uuid)
self.page.session.set('cust_display', str(customer_key or ''))
self.page.session.set('cust_display', handler.get_screen_cust_display(customer=customer))
self.informed_refresh()
self.page.snack_bar = ft.SnackBar(ft.Text(f"CUSTOMER SET: {customer}",
@ -685,17 +684,28 @@ class POSView(WuttaView):
def did_mount(self):
session = self.app.make_session()
batch = self.get_current_batch(session)
self.page.session.set('txn_display', batch.id_str)
batch = self.get_current_batch(session, create=False)
if batch:
handler = self.get_batch_handler()
self.page.session.set('txn_display', handler.get_screen_txn_display(batch))
self.page.session.set('cust_uuid', batch.customer_uuid)
self.page.session.set('cust_display', handler.get_screen_cust_display(batch=batch))
self.items.controls.clear()
for row in batch.active_rows():
self.add_row_item(row)
self.items.scroll_to(offset=-1, duration=100)
self.txn_total.value = self.app.render_currency(batch.sales_total)
else:
self.page.session.set('txn_display', None)
self.page.session.set('cust_uuid', None)
self.page.session.set('cust_display', None)
self.informed_refresh()
session.commit()
session.close()
self.page.update()
@ -747,16 +757,10 @@ class POSView(WuttaView):
# void current batch
handler.void_batch(batch, user)
session.flush()
self.clear_all()
# make new batch
batch = handler.get_current_batch(user, create=True)
self.page.session.set('txn_display', batch.id_str)
session.commit()
session.close()
self.clear_all()
self.main_input.focus()
self.page.update()
@ -805,17 +809,10 @@ class POSView(WuttaView):
# tender / execute batch
tender = e.control.content.value
handler.tender_and_execute(batch, user, tender)
self.clear_all()
# make new batch
batch = handler.get_current_batch(user, create=True)
self.page.session.set('txn_display', batch.id_str)
self.header.update_txn_display()
self.header.update()
session.commit()
session.close()
self.clear_all()
self.main_input.focus()
self.page.update()
@ -840,7 +837,10 @@ class POSView(WuttaView):
model = self.model
user = session.get(model.User, self.page.session.get('user_uuid'))
batch = handler.get_current_batch(user)
batch, created = handler.get_current_batch(user, return_created=True)
if created:
self.page.session.set('txn_display', handler.get_screen_txn_display(batch))
self.informed_refresh()
kwargs = {}
if self.set_quantity.data is not None: