Example #1
0
        private void Track_FGPartComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Track_FGPartImage.DataContext = null;
            ComboBox PartsCombobox = (ComboBox)sender;

            DisplayParts.Clear();
            FGPart fgpart = (FGPart)PartsCombobox.SelectedItem;

            if (fgpart == null)
            {
                return;
            }
            using (var db = new MTSDB())
            {
                var parts = from p in db.FGParts
                            where p.PartNo == fgpart.PartNo
                            select p;

                FGPart P = parts.SingleOrDefault();


                if (P == null)
                {
                    MessageBox.Show("FG Part Not Found !! Please Verify", "Database Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                fgpart = P;
                fgpart.ImageReference = "./Images/" + fgpart.PartNo + ".png";

                Track_FGPartImage.DataContext = fgpart;
            }
        }
Example #2
0
        private void FGPart_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            AutoCompleteBox a = sender as AutoCompleteBox;

            DisplayParts.Clear();
            FGPart part = (FGPart)a.SelectedItem;

            if (part == null)
            {
                return;
            }
            using (var db = new MTSDB())
            {
                var P = db.FGParts.Where(p => p.PartNo == part.PartNo).SingleOrDefault();



                if (P == null)
                {
                    MessageBox.Show(" Part Not Found !! Please Verify", "Database Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                part = P;


                part.ImageReference = "./Images/" + part.PartNo + ".png";
                FGImage.DataContext = part;
            }
        }
Example #3
0
        private void FG_UpdateButton_Click(object sender, RoutedEventArgs e)
        {
            this.Dispatcher.BeginInvoke(DispatcherPriority.Background,
                                        new Action(() =>
            {
                FG_ShortageGrid.Visibility = Visibility.Collapsed;
            }));
            List <ShortagePart> shortageParts = new List <ShortagePart>();

            if (FG_PartComboBox.SelectedItem == null)
            {
                return;
            }
            FGPart fgpart = (FGPart)FG_PartComboBox.SelectedItem;

            if (fgpart == null)
            {
                return;
            }

            String FGRef = FG_RefTextBox.Text;

            if (FGRef == String.Empty || FGRef == null)
            {
                MessageBox.Show("FG Reference Required !!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (FG_AcceptedTextBox.Text != fgpart.PartNo)
            {
                MessageBox.Show("FG Part No Mismatch. Please Verify ", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            using (var db = new MTSDB())
            {
                var FGEntry = (from p in db.FGs
                               where p.FGRef == FGRef
                               select p).SingleOrDefault();
                if (FGEntry != null)
                {
                    MessageBox.Show("FG Already Completed. Please Verify Reference No", "Update Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                var fgparts = from p in db.FGParts
                              where p.PartNo == fgpart.PartNo
                              select p;

                FGPart FGP = fgparts.SingleOrDefault();


                if (FGP == null)
                {
                    MessageBox.Show("FG Part Not Found !! Please Verify", "Database Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                int qty = 0;
                if (int.TryParse(FG_QuantityTextBox.Text, out qty) == false || (qty == 0))
                {
                    MessageBox.Show("Please Verify Quantity", "Alert", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }

                var bom = (from p in db.BOMs
                           where p.FGPartID == fgpart.FGPartID
                           select p).ToList();

                DateTime?tlTs  = DateTime.Now;
                int      shift = 0;
                if (tlTs.Value.TimeOfDay >= new TimeSpan(14, 00, 0) && tlTs.Value.TimeOfDay < new TimeSpan(22, 00, 0))
                {
                    shift = 2;
                }
                else if (tlTs.Value.TimeOfDay >= new TimeSpan(22, 00, 0) && tlTs.Value.TimeOfDay < new TimeSpan(6, 00, 0))
                {
                    shift = 3;
                }
                else
                {
                    shift = 1;
                }

                foreach (BOM b in bom)
                {
                    FG fgEntry = new FG();
                    fgEntry.FGPart         = FGP;
                    fgEntry.EntryTimestamp = tlTs;
                    fgEntry.JulianDate     = tlTs.Value.DayOfYear;
                    var part = (from prt in db.Parts
                                where prt.PartID == b.PartID
                                select prt).SingleOrDefault();
                    fgEntry.Part     = part;
                    fgEntry.Shift    = shift;
                    fgEntry.Quantity = (int)(b.PartQuantity.Value * qty);
                    fgEntry.FGRef    = FGRef;

                    var toline = (from tl in part.ToLineRecords
                                  where (tl.Timestamp <= tlTs) && tl.Balance > 0
                                  select tl).OrderBy(l => l.Timestamp).ToList();

                    int?FGQty             = fgEntry.Quantity;
                    int totalPartQuantity = 0;

                    foreach (ToLine l in toline)
                    {
                        totalPartQuantity += l.Balance.Value;
                    }

                    if (totalPartQuantity < FGQty)
                    {
                        shortageParts.Add(new ShortagePart
                        {
                            PartNo           = fgEntry.Part.PartNo,
                            Description      = fgEntry.Part.Description,
                            LineQuantity     = totalPartQuantity,
                            RequiredQuantity = (FGQty - totalPartQuantity).Value
                        });
                    }

                    foreach (ToLine l in toline)
                    {
                        if (FGQty > 0)
                        {
                            if (l.Balance >= FGQty)
                            {
                                l.Balance -= FGQty;

                                l.FGs.Add(fgEntry);

                                break;
                            }
                            else
                            {
                                FGQty    -= l.Balance;
                                l.Balance = 0;
                                l.FGs.Add(fgEntry);
                            }
                        }
                    }
                    part.FGRecords.Add(fgEntry);
                }
                if (shortageParts.Count > 0)
                {
                    FG_ShortageGrid.DataContext = shortageParts;
                    MessageBox.Show("Parts Shortage for FG Update" + Environment.NewLine +
                                    "Unable to Update FG ,  Please Verify",
                                    "Update Error", MessageBoxButton.OK, MessageBoxImage.Error);

                    this.Dispatcher.BeginInvoke(DispatcherPriority.Background,
                                                new Action(() =>
                    {
                        FG_ShortageGrid.Visibility = Visibility.Visible;
                    }));

                    return;
                }


                FG Fg = new FG();
                Fg.FGPart         = FGP;
                Fg.EntryTimestamp = tlTs;
                Fg.JulianDate     = tlTs.Value.DayOfYear;
                Fg.Shift          = shift;
                Fg.Quantity       = qty;
                Fg.FGRef          = FG_RefTextBox.Text;
                db.FGs.Add(Fg);
                db.SaveChanges();

                MessageBox.Show("FG Updated", "Information", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }