private MainTransaction CreateCashTransactionEntity(MainTransaction cashTransaction, TransactionModel model) { cashTransaction.order_id = model.order_id; cashTransaction.original_price = model.original_price; cashTransaction.discount_percentage = model.discount_percentage; cashTransaction.original_currency = ConstantValues.S_CURRENCY_SGD; cashTransaction.currency = ConstantValues.S_CURRENCY_SGD; cashTransaction.gst = ConstantValues.D_GST; cashTransaction.service_charge = ConstantValues.D_SERVICE_CHARGE; cashTransaction.amount = model.cash_amount; cashTransaction.description = ConstantValues.S_TRANSACTION_TYPE_FOOD; cashTransaction.food_status = (int)GoEat.Models.TransactionStatus.Pending_reconcile; return cashTransaction; }
private object CreatePendingTokenTransaction(int mainTransactionId, TransactionModel model) { GoEatApi goEatApi = GoEatApi.Instance; var trans = goEatApi.GetMainTransaction(mainTransactionId); MainTransaction updatedTrans = CreateTokenTransactionEntity(trans.Data, model); goEatApi.UpdateTokenTransaction(updatedTrans); bool isSuccess = false; if (mainTransactionId > 0) { TransactionInformation transaction = new TransactionInformation { quantity = updatedTrans.drinks, main_transaction_id = mainTransactionId, amount = updatedTrans.token_amount }; NotifyFinalAmountToUser(model.customer_id, transaction); isSuccess = true; } return new { success = isSuccess, mainTransactionId = mainTransactionId, error_code = isSuccess ? string.Empty : ErrorCodes.ServerError.ToErrorMessage() }; }
private MainTransaction CreateTokenTransactionEntity(MainTransaction tokenTransaction, TransactionModel model) { // tokenTransaction.currency = ConstantValues.S_CURRENCY_SGD; // tokenTransaction.gst = ConstantValues.D_GST; // tokenTransaction.service_charge = ConstantValues.D_SERVICE_CHARGE; tokenTransaction.order_id = model.order_id; tokenTransaction.description = ConstantValues.S_TRANSACTION_TYPE_DRINK; tokenTransaction.drink_status = (int)GoEat.Models.TransactionStatus.Pending; tokenTransaction.drinks = model.drinks_quantity; tokenTransaction.token_amount = model.drinks_quantity * ConstantValues.D_TRANSACTION_DRINK_PRICE; return tokenTransaction; }
private object CreatePendingTransaction(TransactionModel model, decimal finalAmount, decimal discountRate) { GoEatApi goEatApi = GoEatApi.Instance; var user = goEatApi.GetUserById(model.customer_id); int mainTransactionId = mainTransactionId = goEatApi.CreatePendingTransaction(CurrentUser.Id, model.restaurant_id, model.customer_id); bool isSuccess = false; if (mainTransactionId > 0) { model.order_id = String.Format(ConstantValues.S_TRANSACTION_ORDER_ID_FORMAT, Urls.GetRestaurantId(), mainTransactionId); var trans = goEatApi.GetMainTransaction(mainTransactionId); trans.Data.order_id = model.order_id; if (model.cash_amount > 0) { MainTransaction updatedTrans = CreateCashTransactionEntity(trans.Data, model); goEatApi.UpdateCashTransaction(updatedTrans); string gTokenTransactionId = CreateGTokenTransaction(discountRate, model.order_id + "_Food", model.original_price, user.Data.username, ConstantValues.S_DESCRIPTION_AMOUNT_WITH_CASH, ConstantValues.D_GST, ConstantValues.D_SERVICE_CHARGE); if (string.IsNullOrEmpty(gTokenTransactionId)) { goEatApi.UpdateMainTransactionStatus(true, mainTransactionId, (int)GoEat.Models.TransactionStatus.Failure); return new { success = isSuccess, error_code = ErrorCodes.ServerError.ToString() }; } goEatApi.UpdateTransGTokenTransactionId(false, mainTransactionId, gTokenTransactionId); } if (model.drinks_quantity > 0) { return CreatePendingTokenTransaction(mainTransactionId, model); } isSuccess = true; } return new { success = isSuccess, mainTransactionId = mainTransactionId, error_code = isSuccess ? string.Empty : ErrorCodes.ServerError.ToErrorMessage() }; }