Example #1
0
        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);
        }
Example #2
0
        /// <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);
            }
        }
Example #3
0
        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();
        }
Example #4
0
        /// <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);
            }
        }
Example #5
0
        /// <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);
                }
            }
        }
Example #6
0
 public static void CreateWarehouseProductConnection(WarehouseProductConnection connection)
 {
     TcpClient.sendObject <WarehouseProductConnection>(new DBMsg(ManagerType.WarehouseManager, "CreateWarehouseProductConnection", JsonConvert.SerializeObject(connection)));
 }