/// <summary> /// Fetches an onsite transaction from database given a paramref name="transactionID" /// </summary> /// <param name="transactionID"> /// Passes a transaction id as parameter /// </param> /// <returns> /// <para>Returns an object of onsitetransaction</para> /// <para>Type: OnsiteTransactionModel</para> /// </returns> public async Task <OnsiteTransactionModel> FetchOnsiteTransaction(int transactionID) { OnsiteTransactionModel onsiteTransactionModel = null; using (MySqlConnection connection = new MySqlConnection(DbConnString.DBCONN_STRING)) { await connection.OpenAsync(); string queryString = "SELECT * FROM onsite_transaction_table WHERE transaction_id=@transactionID"; MySqlCommand command = new MySqlCommand(queryString, connection); command.Parameters.AddWithValue("@transactionID", transactionID); MySqlDataReader reader = (MySqlDataReader)await command.ExecuteReaderAsync(); while (await reader.ReadAsync()) { onsiteTransactionModel = new OnsiteTransactionModel() { TransactionID = int.Parse(reader["transaction_id"].ToString()), //Generate Customer Model TotalSale = int.Parse(reader["total_sale"].ToString()), OnsiteProductTransactionList = await OnsiteProductsTransactionRepository.SingleInstance.FetchTransactionsGivenByIDAsync(int.Parse(reader["transaction_id"].ToString())) }; } } return(onsiteTransactionModel); }
protected async void BtnConfirmCartOrder_Click(object sender, EventArgs e) { UpdateProgress2.Visible = true; if (Cart.GetCartItems().Count == 0) { BuildSweetAlert("#ffcccb", AlertStatus.error, "Error Processing Request", "Cart has no items"); return; } var onSiteTransaction = new OnsiteTransactionModel { Customer = null, TotalSale = Cart.CalculateTotalSales() }; var connection = await OnsiteTransactionRepository.SingleInstance.InsertNewTransaction(onSiteTransaction); var transactionID = await OnsiteTransactionRepository.SingleInstance.FetchLastInsertID(connection); var onsiteProducts = Cart.ListOfOnsiteProducts(transactionID); BuildSale(onsiteProducts, transactionID); BuildNotification(onsiteProducts); BuildSweetAlert("#90EE90", AlertStatus.success, "Successfully Added Sales", null); Cart.ClearCartItems(); LoadCart(); LoadSales(); LoadProducts(); UpdateProgress2.Visible = false; }
/// <summary> /// <para> /// <br>Inserts a new transaction object inside the database</br> /// <br>and returns a MySqlConnection to be used on last_insert_id()</br> /// <br>Mysql function due to the reason of a single connection is required</br> /// </para> /// </summary> /// <param name="onsiteTransaction"> /// Passes an onsitetransaction model async parameter /// </param> /// <returns> /// <para>Returns the used MysqlConnection</para> /// <para>Type: MySqlConnection</para> /// </returns> public async Task <MySqlConnection> InsertNewTransaction(OnsiteTransactionModel onsiteTransaction) { MySqlConnection connection = new MySqlConnection(DbConnString.DBCONN_STRING); await connection.OpenAsync(); string queryString = "INSERT INTO onsite_transaction_table(total_sale)VALUES(@totalSale)"; MySqlCommand command = new MySqlCommand(queryString, connection); command.Parameters.AddWithValue("@totalSale", onsiteTransaction.TotalSale); await command.ExecuteNonQueryAsync(); return(connection); }