Add some awareness of suspend/resume for POS batch
This commit is contained in:
		
							parent
							
								
									d66dd5f199
								
							
						
					
					
						commit
						1a15d70568
					
				
					 2 changed files with 35 additions and 8 deletions
				
			
		|  | @ -53,21 +53,21 @@ class POSBatchView(BatchMasterView): | ||||||
| 
 | 
 | ||||||
|     grid_columns = [ |     grid_columns = [ | ||||||
|         'id', |         'id', | ||||||
|         'terminal_id', |  | ||||||
|         'customer', |  | ||||||
|         'created', |         'created', | ||||||
|         'created_by', |         'terminal_id', | ||||||
|  |         'cashier', | ||||||
|  |         'customer', | ||||||
|         'rowcount', |         'rowcount', | ||||||
|         'sales_total', |         'sales_total', | ||||||
|         'void', |         'void', | ||||||
|         'status_code', |         'status_code', | ||||||
|         'executed', |         'executed', | ||||||
|         'executed_by', |  | ||||||
|     ] |     ] | ||||||
| 
 | 
 | ||||||
|     form_fields = [ |     form_fields = [ | ||||||
|         'id', |         'id', | ||||||
|         'terminal_id', |         'terminal_id', | ||||||
|  |         'cashier', | ||||||
|         'customer', |         'customer', | ||||||
|         'params', |         'params', | ||||||
|         'rowcount', |         'rowcount', | ||||||
|  | @ -121,13 +121,26 @@ class POSBatchView(BatchMasterView): | ||||||
| 
 | 
 | ||||||
|     def configure_grid(self, g): |     def configure_grid(self, g): | ||||||
|         super().configure_grid(g) |         super().configure_grid(g) | ||||||
|  |         model = self.model | ||||||
| 
 | 
 | ||||||
|         # terminal_id |         # terminal_id | ||||||
|         g.set_label('terminal_id', "Terminal") |         g.set_label('terminal_id', "Terminal") | ||||||
|         if 'terminal_id' in g.filters: |         if 'terminal_id' in g.filters: | ||||||
|             g.filters['terminal_id'].label = self.labels.get('terminal_id', "Terminal ID") |             g.filters['terminal_id'].label = self.labels.get('terminal_id', "Terminal ID") | ||||||
| 
 | 
 | ||||||
|  |         # cashier | ||||||
|  |         def join_cashier(q): | ||||||
|  |             return q.outerjoin(model.Employee, | ||||||
|  |                                model.Employee.uuid == model.POSBatch.cashier_uuid)\ | ||||||
|  |                     .outerjoin(model.Person, | ||||||
|  |                                model.Person.uuid == model.Employee.person_uuid) | ||||||
|  |         g.set_joiner('cashier', join_cashier) | ||||||
|  |         g.set_sorter('cashier', model.Person.display_name) | ||||||
|  | 
 | ||||||
|  |         # customer | ||||||
|         g.set_link('customer') |         g.set_link('customer') | ||||||
|  |         g.set_joiner('customer', lambda q: q.outerjoin(model.Customer)) | ||||||
|  |         g.set_sorter('customer', model.Customer.name) | ||||||
| 
 | 
 | ||||||
|         g.set_link('created') |         g.set_link('created') | ||||||
|         g.set_link('created_by') |         g.set_link('created_by') | ||||||
|  | @ -144,20 +157,26 @@ class POSBatchView(BatchMasterView): | ||||||
|     def grid_extra_class(self, batch, i): |     def grid_extra_class(self, batch, i): | ||||||
|         if batch.void: |         if batch.void: | ||||||
|             return 'warning' |             return 'warning' | ||||||
|         if batch.training_mode: |         if (batch.training_mode | ||||||
|  |             or batch.status_code == batch.STATUS_SUSPENDED): | ||||||
|             return 'notice' |             return 'notice' | ||||||
| 
 | 
 | ||||||
|     def configure_form(self, f): |     def configure_form(self, f): | ||||||
|         super().configure_form(f) |         super().configure_form(f) | ||||||
|         app = self.get_rattail_app() |         app = self.get_rattail_app() | ||||||
| 
 | 
 | ||||||
|  |         # cashier | ||||||
|  |         f.set_renderer('cashier', self.render_employee) | ||||||
|  | 
 | ||||||
|  |         # customer | ||||||
|         f.set_renderer('customer', self.render_customer) |         f.set_renderer('customer', self.render_customer) | ||||||
| 
 | 
 | ||||||
|         f.set_type('sales_total', 'currency') |         f.set_type('sales_total', 'currency') | ||||||
|         f.set_type('tender_total', 'currency') |         f.set_type('tender_total', 'currency') | ||||||
|         f.set_type('tender_total', 'currency') |         f.set_type('tender_total', 'currency') | ||||||
| 
 | 
 | ||||||
|         f.set_renderer('taxes', self.render_taxes) |         if self.viewing: | ||||||
|  |             f.set_renderer('taxes', self.render_taxes) | ||||||
| 
 | 
 | ||||||
|         f.set_renderer('balance', lambda batch, field: app.render_currency(batch.get_balance())) |         f.set_renderer('balance', lambda batch, field: app.render_currency(batch.get_balance())) | ||||||
| 
 | 
 | ||||||
|  | @ -257,8 +276,8 @@ class POSBatchView(BatchMasterView): | ||||||
|                                            "Make transactions (ring up sales)") |                                            "Make transactions (ring up sales)") | ||||||
|             # config.add_tailbone_permission('pos', 'pos.resume', |             # config.add_tailbone_permission('pos', 'pos.resume', | ||||||
|             #                                "Resume previously-suspended transaction") |             #                                "Resume previously-suspended transaction") | ||||||
|             # config.add_tailbone_permission('pos', 'pos.suspend', |             config.add_tailbone_permission('pos', 'pos.suspend', | ||||||
|             #                                "Suspend current transaction") |                                            "Suspend current transaction") | ||||||
|             config.add_tailbone_permission('pos', 'pos.swap_customer', |             config.add_tailbone_permission('pos', 'pos.swap_customer', | ||||||
|                                            "Swap customer for current transaction") |                                            "Swap customer for current transaction") | ||||||
|             config.add_tailbone_permission('pos', 'pos.void_txn', |             config.add_tailbone_permission('pos', 'pos.void_txn', | ||||||
|  |  | ||||||
|  | @ -1010,6 +1010,14 @@ class MasterView(View): | ||||||
|             items.append(HTML.tag('li', c=[tags.link_to(text, url)])) |             items.append(HTML.tag('li', c=[tags.link_to(text, url)])) | ||||||
|         return HTML.tag('ul', c=items) |         return HTML.tag('ul', c=items) | ||||||
| 
 | 
 | ||||||
|  |     def render_employee(self, obj, field): | ||||||
|  |         employee = getattr(obj, field) | ||||||
|  |         if not employee: | ||||||
|  |             return "" | ||||||
|  |         text = str(employee) | ||||||
|  |         url = self.request.route_url('employees.view', uuid=employee.uuid) | ||||||
|  |         return tags.link_to(text, url) | ||||||
|  | 
 | ||||||
|     def render_customer(self, obj, field): |     def render_customer(self, obj, field): | ||||||
|         customer = getattr(obj, field) |         customer = getattr(obj, field) | ||||||
|         if not customer: |         if not customer: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lance Edgar
						Lance Edgar