private void SaveDataFiles()
 {
     StaticInventoryTracker.SaveDefaults();
     StaticFactoryValuesManager.SaveValues();
     if (schedule != null)
     {
         schedule.Save();
     }
 }
Пример #2
0
        public void AddPastSaleTestAdd12MonthsAgo()
        {
            ProductMasterItem master = new ProductMasterItem(1, "TestMaster01", "Testing master item", 48, 92, .5, "OM", 40, 50, "", true, "", "", 0, 0, 0, 0);

            StaticInventoryTracker.ProductMasterList.Add(master);

            StaticInventoryTracker.AddPastSale(1, DateTime.Today.AddDays(-DateTime.Today.Day).AddMonths(-12), 100);

            // item should be added
            Assert.AreEqual(StaticInventoryTracker.ForecastItems.Count, 1);
        }
Пример #3
0
        public void AddPastSaleTestDontAddCurrentMonth()
        {
            ProductMasterItem master = new ProductMasterItem(1, "TestMaster01", "Testing master item", 48, 92, .5, "OM", 40, 50, "", true, "", "", 0, 0, 0, 0);

            StaticInventoryTracker.ProductMasterList.Add(master);

            StaticInventoryTracker.AddPastSale(1, DateTime.Today, 100);

            // item should not be added
            Assert.AreEqual(StaticInventoryTracker.ForecastItems.Count, 0);
        }
        private void LoadDataFiles()
        {
            StaticInventoryTracker.LoadDefaults();
            StaticFactoryValuesManager.LoadValues(true);
            var loadschedule = CoatingSchedule.Load();

            if (loadschedule != null)
            {
                schedule = loadschedule;
            }
        }
Пример #5
0
        public void AddProductionToInventory()
        {
            foreach (var pressMasterItem in Produced)
            {
                double            units = pressMasterItem.UnitsMade;
                ProductMasterItem item  = pressMasterItem.MasterItem;

                InventoryItem inventoryItem =
                    StaticInventoryTracker.AllInventoryItems.FirstOrDefault(x => x.MasterID == item.MasterID && x.Grade == "WiP");
                if (inventoryItem != null)
                {
                    inventoryItem.AddUnits(units);
                }
                else
                {
                    StaticInventoryTracker.AddInventory(item.ProductionCode, item.PiecesPerUnit, units, "WiP",
                                                        item.MasterID);
                }
            }
        }
Пример #6
0
        public void ComputeInvChange()
        {
            // ask user how much was made
            UnitChangeWindow window = new UnitChangeWindow(Product.ProductCode, Product.Units);

            window.ShowDialog();

            // get expected units
            double unitsExpected = Double.Parse(Product.Units);

            // add the change to tracker
            StaticInventoryTracker.InventoryChanges.Add(new InventoryChange(unitsExpected, window.Units, Product.MasterID, ((LineControl)((ShiftControl)ParentControl).ParentControl).Line.Date));

            if (Config != null)
            {
                ProductMasterItem consumedItem =
                    StaticInventoryTracker.ProductMasterList.FirstOrDefault(
                        master => master.MasterID == Product.MasterID);
                ProductMasterItem createdItem =
                    StaticInventoryTracker.ProductMasterList.FirstOrDefault(
                        master => master.MasterID == Product.MasterID);

                if (consumedItem != null && createdItem != null)
                {
                    double unitsConsumed = Config.GetUnitsConsumed(consumedItem, window.Units, createdItem);
                    // remove units from inventory
                    var invItem =
                        StaticInventoryTracker.InventoryItems.FirstOrDefault(
                            item => item.MasterID == consumedItem.MasterID);
                    if (invItem != null)
                    {
                        invItem.Units -= unitsConsumed;
                    }
                    else // start tracking it
                    {
                        StaticInventoryTracker.AddInventoryItem(new InventoryItem(consumedItem.ProductionCode, -unitsConsumed, consumedItem.PiecesPerUnit, "WiP", consumedItem.MasterID));
                    }
                }
            }
        }
Пример #7
0
        private void LoadContolData()
        {
            if (StaticInventoryTracker.InventoryChanges.Count == 0 && StaticInventoryTracker.IsLoaded)
            {
                EfficiencyListView.ItemsSource = new List <Label>()
                {
                    new Label()
                    {
                        Content = "No efficiency data"
                    }
                };

                return;
            }

            // try to load if not loaded and no changes logged.
            if (StaticInventoryTracker.InventoryChanges.Count == 0 && !StaticInventoryTracker.IsLoaded)
            {
                if (!StaticInventoryTracker.LoadDefaults())
                {
                    EfficiencyListView.ItemsSource = new List <Label>()
                    {
                        new Label()
                        {
                            Content = "Failed to load efficiency data"
                        }
                    };

                    return;
                }
            }

            // if there are still none, exit
            if (StaticInventoryTracker.InventoryChanges.Count == 0)
            {
                EfficiencyListView.ItemsSource = new List <Label>()
                {
                    new Label()
                    {
                        Content = "No efficiency data loaded"
                    }
                };
                return;
            }

            var trackers = new List <InventoryChange>();

            trackers.AddRange(StaticInventoryTracker.InventoryChanges); // make a copy of the list

            DateTime date = trackers.Min(change => change.Date);

            while (trackers.Count > 0)
            {
                // get starting day, and then that days start of week

                while (date.DayOfWeek != CalendarControl.StartOfWeek)
                {
                    date = date.AddDays(-1);
                }

                var weeklyChanges = new List <InventoryChange>();
                weeklyChanges.AddRange(trackers.Where(change => change.Date >= date && change.Date < date.AddDays(7))); // get the weeks changes.

                WeekControls.Add(new WeeklyEfficiencyControl(weeklyChanges, date));

                foreach (var inventoryChange in weeklyChanges)
                {
                    trackers.Remove(inventoryChange);
                }

                date = date.AddDays(7);
            }
        }
 private void OnClosing(object sender, CancelEventArgs cancelEventArgs)
 {
     StaticInventoryTracker.SaveDefaults();
 }