For few days I’m reading lots of issues related with refund operation. SambaPOS supports at least 3 ways (creating a new ticket with negative amounts, creating refund tickets and altering old tickets) to make refunds. The problem is while reading these issues I don’t know which methods people referring to so it becomes a puzzle for me
Can you please explain your issue with refund in detail here so I can see what we are missing…
Let me explain one more thing. The basic refund operation we support is creating a new ticket type called Refund Ticket, defining specific payment types for it and define whole accounting behind it for your needs. Since it requires good understanding of accounting system I’ve also implemented other methods for simple operations.
That clears up a lot of what I was trying to do. I didn’t even think about that approach. I will dig deeper into it I am sure I can design what I need. Sorry for all the confusing discussion lately on it.
EDIT: Thank you @emre you finally opened up my eyes to exactly what I needed. Here is what I was able to do. Cant thank you enough you just saved me a huge headache… it only took me about 30 minutes to come up with this. I was wrestling with refunds for last 2 days.
EDIT: I will probably write a quick tutorial how to get all of this together and include the custom report.
I am attempting to build a system that is integrated with the Accounting system above but will allow single item refunds and still record the REFUND amount in the correct account etc.
My approach is to store information with Ticket Tags and recall it to aide in the separation of what to process as a Refund Transaction.
Something I want it to do: Calculate tax with the refund so it is accurate
Example:
5 items on ticket: Tax Total = [XAMOUNT]
You refund 1 of the 5 items it will put the [ITEM PRICE + THAT ITEMS INDIVIDUAL TAX TOTAL] into the Customer Refunds Account
You resettle account and it adds the new [:ProcessedAmount] back into Cash Account
I am wrapping my head around how to build this… Im thinking storing some of the values into Ticket Tags will help So I have it setup to store {ORDER COUNT},{CHANGE TOTAL}.[:ProcessedAmount], {TAX TOTAL}. I may or may not use them so I am including them anyway it will not hurt later down road to have these values stored even if I end up not using them in this build.
I have looked at Change Payment Type that sounds interesting but I may not be completely sure on what it does however it sounds like it may be useful for this setup.
Here is the tricky part…I want everything to be done with the original ticket But I also want a copy of the ticket made as Ticket Type: Refund I know it doesnt exactly work this way but basically I want the original Ticket to show the refund transaction on it… but I want to be able to have it also isolated into Customer Refunds account as a Ticket Type: Refund I just do not want the entire balance of the Refund ticket affecting the Customer Refunds Account # only the item refunded…
Hmm that’s a good idea I will keep that in mind. I will be using a barcode system on the receipts that stores the Ticket ID so when scanned to be returned it pulls up that ticket and if the customer returns item x… then comes back 2 days later to return more items it will pull up that same receipt and show me what has and has not been returned. Was going to attempt a custom entity screen for this interaction using the Ticket Lister but instead of listing every ticket you just scan receipt and it pulls the ticket up.
BTW this is for a Retail implementation not food service. We have a retail business as well and I am planning to use Samba for it which is why I need a more accurate Return system built in.
Create a new Task Type and name it as Load Ticket.
Add a Task Editor widget.
Edit Settings and set Task Type as Load Ticket.
Enable Don't create task history.
Enter an automation command name into Task Create Commands editor.
Create a Display Ticket action and set Ticket Id as a variable.
Create a rule to handle that autoamtion command and execute Display Ticket.
Set Command Value to Action’s Ticket Id variable.
PS: While testing it I’ve noticed it crashes when a non existing ticket id entered but it would work fine on next version.
PS2: That method executes an automation command and sets entered value as command value. You can also enter customer id’s or whatever you want to handle…
A thought I had… not sure if I want to actually do it… but its a pretty cool thought. I could use this to enhance the TimeTrex integration to use Name Badges with barcodes on them and a barcode scanner or a USB card swiper.
They could scan their badge while at the Entity Screen to input their Login ID for punches.
PS: I dont know if it would all be possible… but it seems like the idea behind this could drive alot of other additional functions using Entity Screens. Being able to scan bar codes to interact with entity screen opens it up for tons of possibilities.
I assume you can capture the input from a bar code scanner with Device Event Generated rule?
No not device event generated. Most barcode scanner and magnetic card reader models sends scanned data as if it typed from keyboard. Look for “keyboard emulation” feature while searching such devices.
Ah, thank you that actually simplifies it a lot. I plan to use a badge system… so when my employee needs a manager override instead of me typing my password in I can just swipe my badge.
So what would a Device Event be? Maybe something like a register with a keyturn… turn key: Device Event recorded: Opens up Functions only available on key turn? Or am I completely off base on that feature?
Hmm I was going to test that setup you mentioned with the Task Type … I double and tripple checked I set it up right but it does nothing when I enter a ticket ID
EDIT: Never mind I got it to work. Had to add 2 actions to the rule. Load ticket first then display ticket.
Very cool feature.
I am curious as well. I could not figure out any use for it so I didnt even bother looking at it for longest time. This kind of opened up my eyes to it.