Integrated Credit Card Processing
Configuration ... you can configure external processing or integrated processing. If processing is set to external, it behaves as it does now, ie you can create a ticket, settle it, and tag that it was payed using a credit card. If it's set to integrated the following happens:
Cashier creates a ticket with food items
Customer get's the bill and provides a credit card
Cashier clicks settle, then swipes the credit card
If the credit card strip isn't readable, or the CC is given over the phone, like for deliveries, Cashier enters the information by hand in the terminal using the keyboard.
The terminal does a CC auth (pre-authorizes the amount + 30% to accommodate any tip that's left on the card)
If approved the terminal prints a receipt that contains the stared out credit card number and information, the name on the card, etc., the amount, and a blank line for the tip amount and signature.
Customer signs and returns to server.
We still need to capture the Tip Amount, and "force" the transaction for the total amount of the bill (bill + tip), which, depending on how busy the restaurant is might be done at that time or at the end of the night/shift, etc.
The total amount of tips could be added as a line item in the report, because it needs to be paid to the cashier.
I can help with coding on this if you like, or maybe this is a candidate for an external module?