//method called by USATech if sale successful
        //creates a record in MSKData.transact
        public USASettleResponse Settle(
            int transactionID, DateTime transactionDateTime,
            string terminalName, string cardNumber, string currency,
            int amount, string approvalCode
            )
        {
            USASettleResponse response = new USASettleResponse();
            string            payType  = SQL.findPayType(cardNumber, Parse.readSchool(terminalName))[0];

            if (payType == "")
            {
                response.ResponseMessage = "Invalid Pay Type.";
                return(response);
            }
            double dollarAmount = amount / 100.0;

            try
            {
                SQL.createVendingTransaction(cardNumber, terminalName, transactionDateTime,
                                             "Vending Item", dollarAmount, payType, transactionID.ToString());
                response.StatusCode = 0;
            }
            catch
            {
                response.StatusCode = 1;
            }

            response.TransactionID   = transactionID;
            response.ResponseMessage = "Settled: $" + dollarAmount;
            return(response);
        }
        //method called by USATech to refund a transaction
        //we currently do not allow this feature.
        public USASettleResponse Refund(
            int transactionID, DateTime transactionDateTime, string terminalName,
            string cardNumber, string currency, int amount
            )
        {
            USASettleResponse response = new USASettleResponse();

            response.ResponseMessage = "Please see cafeteria manager for refunds.";
            response.StatusCode      = 1;
            response.TransactionID   = transactionID;
            return(response);
        }