Because the Invoice Number is stored as a Ticket State and/or Ticket Tag, it might be difficult to locate them at a later time, because the Ticket Explorer does not display States or Tags. So here is a mechanism we can use to Search for and Display Tickets based on the Invoice Number stored in the Ticket State/Tag.
Hi. Is this still working three years later? I have followed all of the above but am unable to get the InvA number to print on my tickets… the rest works great
Anything that might need to be altered for the most recent version?
Can see at a glance anything that would effect it. Likely a mistake in your automation but cant offer any sigestions without seeing your implementation.
Hi,
I’m new in sambapos and is setting up my first sambapos unit.
Is this tutorial on creating own invoice number still valid for version 5.5.8.
I was about to go live using sambapos when I realize there’s a lot of 0 value on tickets that are move or merge. This will become big issue when. We get tax audited, they will said it can be a potential fraud on that ticket.
I see the tutorial is very advance and apply for 2 ticket type and using serial + number with limits for the invoice number . When my system is a very basic one. I just need the number sequence without skipping from the day the sambapos alive until forever we use it, so no need to limit it.
Can anyone help on how to do it the simplest way? As I don’t really understand the scripts command, I understand a bit on the code flow but don’t know the exact codes or tags to use.
I’m hoping that the ticket number can always in sequence even though we merge the ticket, there’s no ticket with 0 value even if we merge ticket or void all item of the ticket. Cause the 0 value will become a big issue during tax audit.
How is that possible? It moves items to new ticket… number is generated in sequence… old ticket is old number… there is no way to logically do that. Also for tax regulators you can add Ticket Logs to show moving of items to new tickets.
Example you start ticket 1. THen you do ticket 2, then 3 then 4. Then you decide you want t move items from ticket 2 to ticket 4. How can you ignore ticket 2? It must stay with 0 balance or the sequence is wrong.
As jessie says, surely if audit is that speculitave on fraud a lower ticket number date stamped after numbers following it will scream fraud just as much if in that mindset.
Perhaps you should look at stamping a sequenced number via ticket tag at time of final payment where balance greater than 0, that should give a sequence of non 0 values.
I’m curious how other POS’s handles this situation? (It’s not the first time this topic has been mentioned)
I believe something could be built where all the items on an original ticket could be voided (or some other similar state) and copied to a new or existing ticket. Also updating the original ticket with a ticket tag of the ticket number the ticket was transfer to…sorta like a paper trail. Maybe also creating a ticket tag on the new ticket of the old/original ticket number.
Again, I’m curious how other POS’s handles this situation.
Kindly point me in the right direction if you can, i have implemented everything according to the tutorial with some minor changes to suit customer request. Everything works great except i cannot close the searched ticket when i use the search feature in this tutorial without crashing the app. When ticket is opened from tickets, it closes just fine. The error looks like its expecting to land on tickets page when ticket is closed but the page is not available.
Here is part of the error:
Inner Exception 1 Type: System.Reflection.TargetInvocationException Message: Property accessor 'CommandLogs' on object 'System.Data.Entity.DynamicProxies.Ticket_CFF633D3352C757204101122CE42097AA4729BB08F1EAC362431BAE8DE9FF3DE' threw the following exception:'The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.' Source: System Stack Trace: at System.ComponentModel.ReflectPropertyDescriptor.GetValue(Object component) at Omu.ValueInjecter.ConventionInjection.Inject(Object source, Object target) at Omu.ValueInjecter.ValueInjection.Map(Object source, Object target) at Omu.ValueInjecter.StaticValueInjecter.InjectFrom[T](Object target, Object[] source) at Samba.Infrastructure.Data.Serializer.ObjectCloner.Clone2[T](T item) at Samba.Services.Implementations.TicketModule.TicketServiceBase.CloseTicket(Ticket ticket, AppState appState) at Samba.Presentation.Services.Implementations.TicketModule.TicketService.CloseTicket(Ticket ticket) at Samba.Presentation.ClientLibrary.Modules.PosModule.PosViewModel.() at Samba.Presentation.ClientLibrary.Modules.PosModule.PosViewModel.(EventParameters1 )`
Thanks @YILDIZHANPOS that actually worked! But how does the search know what ticket without passing a ticketId? Just trying to understand why the ticketId was not needed and why it crashed the application. Thanks again! really appreciate it.