public static List <WarehouseProductConnection> GetWarehouseProductConnection() { MySqlCommand cmd = new MySqlCommand("GetWarehouseProductConnection", new MySqlConnection(connectionString)); cmd.CommandType = CommandType.StoredProcedure; cmd.Connection.Open(); MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); List <WarehouseProductConnection> connections = new List <WarehouseProductConnection>(); while (rdr.Read()) { WarehouseProductConnection connection = new WarehouseProductConnection(); connection.connectionId = int.Parse(rdr[0].ToString()); connection.warehouseId = int.Parse(rdr[1].ToString()); connection.productId = int.Parse(rdr[2].ToString()); connection.amount = double.Parse(rdr[3].ToString()); connections.Add(connection); } rdr.Close(); return(connections); }
/// <summary> /// Transfer products from one warehouse to another /// </summary> private void documentIntermediateWarehouseAction() { foreach (ProductDisplay product in documentProducts) { //Get origin warehouse connection index int originIndex = WarehouseHolder.warehouseProductConnections.FindIndex((elem) => elem.productId == product.id && elem.warehouseId == ((Warehouse)cmb_document_option1.SelectedItem).id); //Create temp origin warehouse connection object to update database WarehouseProductConnection connectionOrigin = new WarehouseProductConnection(); connectionOrigin.connectionId = WarehouseHolder.warehouseProductConnections.Find((elem) => elem.productId == product.id && elem.warehouseId == ((Warehouse)cmb_document_option1.SelectedItem).id).connectionId; connectionOrigin.productId = product.id; connectionOrigin.warehouseId = ((Warehouse)cmb_document_option1.SelectedItem).id; connectionOrigin.amount = WarehouseHolder.warehouseProductConnections[originIndex].amount - product.inUnit; WarehouseHolder.warehouseProductConnections[originIndex].amount -= product.inUnit; DatabaseManagers.WarehouseClient.CreateWarehouseProductConnection(connectionOrigin); //Create temp destination warehouse connection object to update database WarehouseProductConnection connectionDestination = new WarehouseProductConnection(); if (WarehouseHolder.warehouseProductConnections.Exists((elem) => elem.productId == product.id && elem.warehouseId == ((Warehouse)cmb_document_option2.SelectedItem).id)) { //Connection already exists connectionDestination.connectionId = WarehouseHolder.warehouseProductConnections.Find((elem) => elem.productId == product.id && elem.warehouseId == ((Warehouse)cmb_document_option2.SelectedItem).id).connectionId; } else { //Connection does not exist connectionDestination.connectionId = WarehouseHolder.warehouseProductConnections.Count == 0 ? 1 : WarehouseHolder.warehouseProductConnections.Count + 1; } connectionDestination.productId = product.id; connectionDestination.warehouseId = ((Warehouse)cmb_document_option2.SelectedItem).id; connectionDestination.amount = WarehouseHolder.warehouseProductConnections[originIndex].amount + product.inUnit; WarehouseHolder.warehouseProductConnections[originIndex].amount -= product.inUnit; DatabaseManagers.WarehouseClient.CreateWarehouseProductConnection(connectionOrigin); if (WarehouseHolder.warehouseProductConnections.Exists((elem) => elem.productId == product.id && elem.warehouseId == ((Warehouse)cmb_document_option2.SelectedItem).id)) { //Get destination warehouse connection index int destinationIndex = WarehouseHolder.warehouseProductConnections.FindIndex((elem) => elem.productId == product.id && elem.warehouseId == ((Warehouse)cmb_document_option2.SelectedItem).id); WarehouseHolder.warehouseProductConnections[destinationIndex].amount += product.inUnit; } else { WarehouseHolder.warehouseProductConnections.Add(connectionDestination); } DatabaseManagers.WarehouseClient.CreateWarehouseProductConnection(connectionDestination); } }
public static void CreateWarehouseProductConnection(WarehouseProductConnection connection) { List <string> propertyesToIgnore = new List <string> { }; MySqlCommand cmd = new MySqlCommand("CreateWarehouseProductConnection", new MySqlConnection(connectionString)); cmd.CommandType = CommandType.StoredProcedure; foreach (PropertyInfo property in typeof(WarehouseProductConnection).GetProperties()) { if (!propertyesToIgnore.Contains(property.Name)) { cmd.Parameters.Add(new MySqlParameter(("_" + property.Name), property.GetValue(connection))); } } cmd.Connection.Open(); cmd.ExecuteNonQuery(); cmd.Connection.Close(); }
/// <summary> /// Removes items from warehouse /// </summary> private void documentRemoveitemsAction() { foreach (ProductDisplay product in documentProducts) { //Connection exist, get it's index int index = WarehouseHolder.warehouseProductConnections.FindIndex((elem) => elem.productId == product.id && elem.warehouseId == WarehouseHolder.selectedWarehouse.id); //Create temp connection object to update database WarehouseProductConnection connection = new WarehouseProductConnection(); connection.connectionId = WarehouseHolder.warehouseProductConnections.Find((elem) => elem.productId == product.id && elem.warehouseId == WarehouseHolder.selectedWarehouse.id).connectionId; connection.productId = product.id; connection.warehouseId = WarehouseHolder.selectedWarehouse.id; connection.amount = WarehouseHolder.warehouseProductConnections[index].amount - product.inUnit; WarehouseHolder.warehouseProductConnections[index].amount -= product.inUnit; DatabaseManagers.WarehouseClient.CreateWarehouseProductConnection(connection); } }
/// <summary> /// Adds products to selected warehouse /// </summary> private void documentReceiveAction() { foreach (ProductDisplay product in documentProducts) { //Check if connection exist if (WarehouseHolder.warehouseProductConnections.Exists( (elem) => elem.productId == product.id && elem.warehouseId == WarehouseHolder.selectedWarehouse.id)) { //Connection exist, get it's index int index = WarehouseHolder.warehouseProductConnections.FindIndex((elem) => elem.productId == product.id && elem.warehouseId == WarehouseHolder.selectedWarehouse.id); //Create temp connection object to update database WarehouseProductConnection connection = new WarehouseProductConnection(); connection.connectionId = WarehouseHolder.warehouseProductConnections.Find((elem) => elem.productId == product.id && elem.warehouseId == WarehouseHolder.selectedWarehouse.id).connectionId; connection.productId = product.id; connection.warehouseId = WarehouseHolder.selectedWarehouse.id; connection.amount = WarehouseHolder.warehouseProductConnections[index].amount + product.inUnit; WarehouseHolder.warehouseProductConnections[index].amount += product.inUnit; DatabaseManagers.WarehouseClient.CreateWarehouseProductConnection(connection); } //Connection does not exist create it and add amounts else { WarehouseProductConnection connection = new WarehouseProductConnection(); connection.connectionId = WarehouseHolder.warehouseProductConnections.Count == 0 ? 1 : WarehouseHolder.warehouseProductConnections.Count + 1; connection.productId = product.id; connection.warehouseId = WarehouseHolder.selectedWarehouse.id; connection.amount = product.inUnit; WarehouseHolder.warehouseProductConnections.Add(connection); DatabaseManagers.WarehouseClient.CreateWarehouseProductConnection(connection); } } }
public static void CreateWarehouseProductConnection(WarehouseProductConnection connection) { TcpClient.sendObject <WarehouseProductConnection>(new DBMsg(ManagerType.WarehouseManager, "CreateWarehouseProductConnection", JsonConvert.SerializeObject(connection))); }