Esempio n. 1
0
        private void SeedDostawa(ProContext context)
        {
            var idUzytkownika1 = context.Set <Uzytkownik>().Where(u => u.UserName == "*****@*****.**").FirstOrDefault().Id;
            var idUzytkownika2 = context.Set <Uzytkownik>().Where(u => u.UserName == "*****@*****.**").FirstOrDefault().Id;
            var idUzytkownika3 = context.Set <Uzytkownik>().Where(u => u.UserName == "*****@*****.**").FirstOrDefault().Id;
            var idUzytkownika4 = context.Set <Uzytkownik>().Where(u => u.UserName == "*****@*****.**").FirstOrDefault().Id;

            for (int i = 1; i < 6; i++)
            {
                var a = new Wydatek
                {
                    Nazwa        = "Nazwa z dostawy" + i.ToString(),
                    Data_wydatku = DateTime.Now.AddDays(-i),
                    Opis         = "Brak z dostawy",
                    UzytkownikId = idUzytkownika1,
                    Cena_Netto   = 2 * i * 10,
                    Cena_Brutto  = 2 * i * 12.3m
                };
                var Dos = new Dostawa()
                {
                    Wydatek      = a,
                    Nazwa        = "Nazwa" + i.ToString(),
                    Data_dostawy = DateTime.Now.AddDays(-i),
                    Zakonczona   = true,
                    UzytkownikId = idUzytkownika1,
                    Cena_Netto   = 2 * i * 10,
                    Cena_Brutto  = 2 * i * 12.3m
                };
                context.Set <Dostawa>().AddOrUpdate(Dos);
            }
            context.SaveChanges();
        }
Esempio n. 2
0
        public IHttpActionResult PutDostawa(int id, Dostawa dostawa)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != dostawa.id_dostawa)
            {
                return(BadRequest());
            }

            db.Entry(dostawa).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!DostawaExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Esempio n. 3
0
        public ActionResult Create([Bind(Include = "Nazwa,Cena_Netto,Cena_Brutto")] DostawaView dostawaView)
        {
            if (ModelState.IsValid)
            {
                Dostawa dostawa = new Dostawa {
                    Cena_Netto = dostawaView.Cena_Netto, Cena_Brutto = dostawaView.Cena_Brutto, Nazwa = dostawaView.Nazwa
                };
                dostawa.UzytkownikId = User.Identity.GetUserId();
                dostawa.Data_dostawy = DateTime.Now;
                dostawa.Wydatek      = new Wydatek
                {
                    Id           = dostawa.Id,
                    Nazwa        = "Z dostawy: " + dostawa.Nazwa,
                    UzytkownikId = User.Identity.GetUserId(),
                    Cena_Netto   = 0m,
                    Cena_Brutto  = 0m,
                    Data_wydatku = DateTime.Now
                };
                try
                {
                    _repo.Dodaj_Dostawe(dostawa);
                    _repo.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                catch
                {
                    return(View(dostawaView));
                }
            }

            return(View(dostawaView));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Gatunek,Wytop,Srednica,Dlugosc,Masa,DataDostawy,Dostawca")] Dostawa dostawa)
        {
            if (id != dostawa.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(dostawa);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!DostawaExists(dostawa.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(dostawa));
        }
Esempio n. 5
0
        public ActionResult DeleteConfirmed(int id)
        {
            Dostawa dostawa = db.Dostawas.Find(id);

            db.Dostawas.Remove(dostawa);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 6
0
        public async Task <IActionResult> OnPostLoadDostawyAsync()
        {
            int    chunkSize = 20000;
            string backupDir = $"./Snapshots/{Date.Day}{Date.Month}{Date.Year}";

            if (!Directory.Exists("./Snapshots"))
            {
                return(Page());
            }

            if (!Directory.Exists(backupDir))
            {
                return(Page());
            }

            _db.RemoveRange(_db.VtToDostawa);

            await _db.SaveChangesAsync();

            if (System.IO.File.Exists(backupDir + "/Dostawa.csv"))
            {
                using (var reader = new StreamReader(backupDir + "/Dostawa.csv"))
                    using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
                    {
                        _db.RemoveRange(_db.Dostawa);
                        int i = 0;
                        await csv.ReadAsync();

                        csv.ReadHeader();
                        while (await csv.ReadAsync())
                        {
                            var record = new Dostawa
                            {
                                Data      = csv.GetField <DateTime>("Data"),
                                Ilosc     = csv.GetField <int>("Ilosc"),
                                Kod       = csv.GetField <string>("Kod"),
                                DostawaId = csv.GetField <Guid>("DostawaId"),
                                Skany     = new List <VtToDostawa>(),
                                Technical = await _db.Technical.FindAsync(csv.GetField <string>("CietyWiazka")),
                                Uwagi     = csv.GetField <string>("Uwagi")
                            };
                            await _db.Dostawa.AddAsync(record);

                            i++;

                            if (i >= chunkSize)
                            {
                                await _db.SaveChangesAsync();

                                i = 0;
                            }
                        }
                    }
            }
            await _db.SaveChangesAsync();

            return(RedirectToPage("/Manager/AdminManager/LoadDbFromFiles"));
        }
Esempio n. 7
0
        public ActionResult Create(Dostawa dostawa)
        {
            try
            {
                // TODO: Add insert logic here
                using (var dbContext = new DbContext())
                {
                    var zamowiewnie = dbContext.Zamowienia.GetById(dostawa.Id_zamowienia);
                    var ileDoszlo   = dostawa.Ilosc_dostarczonych;


                    zamowiewnie.Ilosc_dostarczonych += dostawa.Ilosc_dostarczonych;
                    var samochod = dbContext.Samochody_fabryczne.GetAll().Where(s => s.Id == zamowiewnie.Id_samochodu_fabryka).FirstOrDefault();

                    if (zamowiewnie.Ilosc_dostarczonych > zamowiewnie.Ilosc_zamowionych)
                    {
                        zamowiewnie.Obecny_status = "Zrealizowane";
                        var zamowione   = zamowiewnie.Ilosc_zamowionych;
                        var dostarczone = zamowiewnie.Ilosc_dostarczonych;
                        ileDoszlo = zamowione - (dostarczone - ileDoszlo) ?? 0;
                        zamowiewnie.Ilosc_dostarczonych = zamowiewnie.Ilosc_zamowionych;
                    }
                    else if (zamowiewnie.Ilosc_dostarczonych == zamowiewnie.Ilosc_zamowionych)
                    {
                        zamowiewnie.Obecny_status = "Zrealizowane";
                    }

                    dbContext.Zamowienia.Update(zamowiewnie);
                    dbContext.Dostawy.Add(dostawa);

                    for (int i = 0; i < ileDoszlo; i++)
                    {
                        Samochod s = new Samochod
                        {
                            Cena              = samochod.Cena_fabryka + 3000,
                            Data_produkcji    = samochod.Data_produkcji,
                            Marka             = samochod.Marka,
                            Moc_silnika       = samochod.Moc_silnika,
                            Id_dostawy        = dostawa.Id,
                            Model             = samochod.Model,
                            Pojemnosc_silnika = samochod.Pojemnosc_silnika,
                            Typ_wyposazenia   = samochod.Typ_wyposazenia,
                            Status            = "Niesprzedany"
                        };

                        dbContext.Samochody.Add(s);
                    }
                    dbContext.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                return(View());
            }
        }
Esempio n. 8
0
 public ActionResult Edit([Bind(Include = "DostawaId,Nazwa,Cena")] Dostawa dostawa)
 {
     if (ModelState.IsValid)
     {
         db.Entry(dostawa).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(dostawa));
 }
Esempio n. 9
0
        public IHttpActionResult GetDostawa(int id)
        {
            Dostawa dostawa = db.Dostawas.Find(id);

            if (dostawa == null)
            {
                return(NotFound());
            }

            return(Ok(dostawa));
        }
Esempio n. 10
0
        public ActionResult Create([Bind(Include = "DostawaId,Nazwa,Cena")] Dostawa dostawa)
        {
            if (ModelState.IsValid)
            {
                db.Dostawas.Add(dostawa);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(dostawa));
        }
        public async Task <IActionResult> Create([Bind("Id,Gatunek,Wytop,Srednica,Dlugosc,Masa,DataDostawy,Dostawca")] Dostawa dostawa)
        {
            if (ModelState.IsValid)
            {
                _context.Add(dostawa);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(dostawa));
        }
Esempio n. 12
0
        public IHttpActionResult PostDostawa(Dostawa dostawa)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Dostawas.Add(dostawa);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = dostawa.id_dostawa }, dostawa));
        }
Esempio n. 13
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }
            using (StreamReader sr = new StreamReader(dataFile.OpenReadStream()))
            {
                var deliveriesForDay = await _db.Dostawa.Where(c => c.Data.Date == date.Date).ToListAsync();

                while (sr.Peek() >= 0)
                {
                    string[] fields   = sr.ReadLine().Split(',');
                    var      tech     = _db.Technical.FirstOrDefault(c => c.IndeksScala == fields[0]);
                    var      delivery = deliveriesForDay.FirstOrDefault(c => c.Kod == fields[0]);
                    if (delivery != null)
                    {
                        delivery.Ilosc          = int.Parse(fields[1]);
                        delivery.DataUtworzenia = DateTime.Now;
                        _db.Update(delivery);
                    }
                    else if (tech != null)
                    {
                        Dostawa dostawa = new Dostawa
                        {
                            Kod            = fields[0],
                            Ilosc          = int.Parse(fields[1]),
                            Data           = date,
                            Uwagi          = "",
                            DataUtworzenia = DateTime.Now,
                            Technical      = tech
                        };
                        await _db.Dostawa.AddAsync(dostawa);
                    }
                    else
                    {
                        PendingDostawa pDostawa = new PendingDostawa
                        {
                            Kod   = fields[0],
                            Ilosc = int.Parse(fields[1]),
                            Data  = date,
                            Uwagi = ""
                        };
                        await _db.PendingDostawa.AddAsync(pDostawa);
                    }
                }
            }

            await _db.SaveChangesAsync();

            return(RedirectToPage("/Department/Office/ConfirmMissing"));
        }
Esempio n. 14
0
        /// <summary>
        /// Update relation between Dostawa and VTMagazyn when adding to already existing scan
        /// </summary>
        /// <param name="dostawaEntry"></param>
        /// <param name="vt">Scan to update</param>
        public void UpdateVT(Dostawa dostawaEntry, VTMagazyn vt)
        {
            VtToDostawa vttd = new VtToDostawa();

            vttd.DostawaId   = dostawaEntry.DostawaId;
            vttd.VTMagazynId = vt.VTMagazynId;
            vttd.VTMagazyn   = vt;
            vttd.Dostawa     = dostawaEntry;
            if (vt.Dostawy.FirstOrDefault(c => c.VTMagazynId == vttd.VTMagazynId && c.DostawaId == vttd.DostawaId) == null)
            {
                vt.Dostawy.Add(vttd);
            }
        }
Esempio n. 15
0
        public IHttpActionResult DeleteDostawa(int id)
        {
            Dostawa dostawa = db.Dostawas.Find(id);

            if (dostawa == null)
            {
                return(NotFound());
            }

            db.Dostawas.Remove(dostawa);
            db.SaveChanges();

            return(Ok(dostawa));
        }
Esempio n. 16
0
        // GET: Dostawas/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Dostawa dostawa = db.Dostawas.Find(id);

            if (dostawa == null)
            {
                return(HttpNotFound());
            }
            return(View(dostawa));
        }
Esempio n. 17
0
        // GET: Dostawa/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Dostawa dostawa = _repo.PobierzDostawe((int)id);

            if (dostawa == null)
            {
                return(HttpNotFound());
            }
            ViewBag.CenaBrutto = _repo.Pobierz_CeneBrutto_Wszystkich((int)id);
            return(View(dostawa));
        }
Esempio n. 18
0
        // GET: Dostawa/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Dostawa dostawa = _repo.PobierzDostawe((int)id);

            if (dostawa == null)
            {
                return(HttpNotFound());
            }
            //DostawaView dostawaview = new DostawaView { Id=dostawa.Id, Nazwa = dostawa.Nazwa, Cena_Netto = dostawa.Cena_Netto, Cena_Brutto = dostawa.Cena_Brutto };
            return(View(dostawa));
        }
Esempio n. 19
0
 public ActionResult Edit(int id, Dostawa collection)
 {
     try
     {
         // TODO: Add update logic here
         using (var dbContext = new DbContext())
         {
             dbContext.Dostawy.Update(collection);
             dbContext.SaveChanges();
         }
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View());
     }
 }
Esempio n. 20
0
        // GET: Dostawa/Delete/5
        public ActionResult Delete(int?id, bool?blad)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Dostawa dostawa = _repo.PobierzDostawe((int)id);

            if (dostawa == null || dostawa.Zakonczona == true)
            {
                return(HttpNotFound());
            }
            if (blad != null)
            {
                ViewBag.Blad = true;
            }
            return(View(dostawa));
        }
Esempio n. 21
0
        private void dodajDostaweButton_Click(object sender, EventArgs e)
        {
            if (!DesignMode)
            {
                using (var db = new KsiegarniaEntities())
                {
                    var dostawa = new Dostawa
                    {
                        Oferent_IdOferenta     = (Funkcje.Instance._context.Oferents.ToList()[(int)(comboBox1.SelectedValue) - 1].IdOferenta),
                        Pracownik_IdPracownika = Funkcje.Instance.pracownik.IdPracownika,
                        Status = false
                    };

                    db.Dostawas.Add(dostawa);
                    db.SaveChanges();
                    DostawaControl_Load(sender, e);
                    return;
                }
            }
        }
Esempio n. 22
0
        private void ChangeText(object sender, RoutedEventArgs e)
        {
            var selectedIndex = DataGridRow.GetRowContainingElement
                                    (sender as FrameworkElement).GetIndex();

            if (mode == 1)
            {
                Bron       obiekt = DataFromDatabase.ElementAt(selectedIndex);
                ModifyForm mForm  = new ModifyForm(obiekt, mode, this);
                mForm.Show();
            }
            else if (mode == 2)
            {
                Amunicja   obiekt = DataFromDatabase.ElementAt(selectedIndex);
                ModifyForm mForm  = new ModifyForm(obiekt, mode, this);
                mForm.Show();
            }
            else if (mode == 3)
            {
                Hurtowe    obiekt = DataFromDatabase.ElementAt(selectedIndex);
                ModifyForm mForm  = new ModifyForm(obiekt, mode, this);
                mForm.Show();
            }
            else if (mode == 4)
            {
                Detaliczne obiekt = DataFromDatabase.ElementAt(selectedIndex);
                ModifyForm mForm  = new ModifyForm(obiekt, mode, this);
                mForm.Show();
            }
            else if (mode == 5)
            {
                Dostawa    obiekt = DataFromDatabase.ElementAt(selectedIndex);
                ModifyForm mForm  = new ModifyForm(obiekt, mode, this);
                mForm.Show();
            }
            else if (mode == 6)
            {
                Kategoria  obiekt = DataFromDatabase.ElementAt(selectedIndex);
                ModifyForm mForm  = new ModifyForm(obiekt, mode, this);
                mForm.Show();
            }
            else if (mode == 7)
            {
                Material   obiekt = DataFromDatabase.ElementAt(selectedIndex);
                ModifyForm mForm  = new ModifyForm(obiekt, mode, this);
                mForm.Show();
            }
            else if (mode == 8)
            {
                Pracownik  obiekt = DataFromDatabase.ElementAt(selectedIndex);
                ModifyForm mForm  = new ModifyForm(obiekt, mode, this);
                mForm.Show();
            }
            else if (mode == 9)
            {
                Produkcja  obiekt = DataFromDatabase.ElementAt(selectedIndex);
                ModifyForm mForm  = new ModifyForm(obiekt, mode, this);
                mForm.Show();
            }
            else
            {
                Zamowienie obiekt = DataFromDatabase.ElementAt(selectedIndex);
                ModifyForm mForm  = new ModifyForm(obiekt, mode, this);
                mForm.Show();
            }
        }
Esempio n. 23
0
        /// <summary>
        /// Adds scan to the database
        /// </summary>
        /// <param name="technical"></param>
        /// <param name="scanned"></param>
        /// <param name="dostawa"></param>
        /// <param name="newCmplt">Does it need to create new set</param>
        public void AddToVT(Technical technical, ScannedCode scanned, Dostawa dostawa, bool newCmplt = false)
        {
            if (dostawa != null && dostawa.Uwagi != "")
            {
                scanned.complete = true;
            }

            // Set proper set ID depending which set ID is missing
            if (!newCmplt)
            {
                scanned.NumerKompletu = 0;
            }
            else
            {
                int nextKpl    = 0;
                var SetNumbers = GetCompleteID(scanned);
                foreach (var kplNumber in SetNumbers)
                {
                    if (nextKpl != kplNumber)
                    {
                        break;
                    }
                    nextKpl++;
                }

                scanned.NumerKompletu = nextKpl;
            }



            VtToDostawa vtToDostawa = new VtToDostawa();

            vtToDostawa.Dostawa = dostawa;

            VTMagazyn vt = new VTMagazyn
            {
                NumerKompletu       = scanned.NumerKompletu,
                SztukiZeskanowane   = scanned.sztukiSkanowane,
                SztukiDeklarowane   = 0,
                Wiazka              = technical.Wiazka,
                KodCiety            = technical.PrzewodCiety,
                Pracownik           = scanned.User,
                DokDostawy          = scanned.DokDostawy,
                DataUtworzenia      = scanned.dataUtworzenia,
                DataDostawy         = scanned.dataDostawyOld == DateTime.MinValue ? scanned.dataDostawy : scanned.dataDostawyOld,
                Komplet             = scanned.complete,
                Deklarowany         = scanned.Declared,
                DataDopisu          = scanned.DataDopisu,
                DostawaDopis        = scanned.DostawaDopis,
                DopisanaIlosc       = scanned.DopisanaIlosc,
                Uwagi               = scanned.Uwagi,
                autocompleteEnabled = true,
                wymuszonaIlosc      = false,
                Technical           = technical
            };

            vtToDostawa.VTMagazyn = vt;

            // Create a relation between Dostawa and VTMagazyn scan
            vt.Dostawy = new List <VtToDostawa>();
            if (dostawa != null)
            {
                vt.Dostawy.Add(vtToDostawa);
            }

            _db.VTMagazyn.Add(vt);
        }
Esempio n. 24
0
 public void Aktualizuj_Dostawe(Dostawa dostawa)
 {
     _db.Entry(dostawa).State = EntityState.Modified;
 }
Esempio n. 25
0
        private void dodajDostaweButton_Click(object sender, EventArgs e)
        {
            if (!DesignMode)
            {
                using (var db = new KsiegarniaEntities())
                {
                    var dostawa = new Dostawa
                    {
                        Oferent_IdOferenta = (Funkcje.Instance._context.Oferents.ToList()[(int)(comboBox1.SelectedValue) - 1].IdOferenta),
                        Pracownik_IdPracownika = Funkcje.Instance.pracownik.IdPracownika,
                        Status = false
                    };

                    db.Dostawas.Add(dostawa);
                    db.SaveChanges();
                    DostawaControl_Load(sender, e);
                    return;
                }
            }
        }
Esempio n. 26
0
        static void Main(string[] args)
        {
            Dostawa dostawa = new Dostawa();

WybracDzielnice:
            Console.WriteLine("Prosze wybrac dzielnice z której startujesz dostaw (1-12)");
            Console.WriteLine();
            Console.Write("Dzielnica: ");
            int dzielnicaNaStarcie = int.Parse(Console.ReadLine().Trim());

            if (dzielnicaNaStarcie <= 12 && dzielnicaNaStarcie > 0)
            {
                Console.Clear();
                W($"Zaczyasz dostaw od dzielnicy {dzielnicaNaStarcie}");
                W("");
                W("Naciśnij klawisz ENTER aby kontynuować");
                Console.ReadLine();
                Console.Clear();
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                W("Error: Proszę wybrac ponownie dzielnice 1-12");
                Console.ForegroundColor = ConsoleColor.White;
                W("");
                W("Naciśnij klawisz ENTER aby spróbowac ponownie");
                Console.ReadLine();
                Console.Clear();
                goto WybracDzielnice;
            }
GodzinySzczytu:
            Console.WriteLine("Jezdzisz w godzinach szczytu? (Tak/Nie)");
            string godzinaSzczytuStr = Console.ReadLine().Trim().ToLower();
            bool   godzinaSzczytu    = new bool();

            if (godzinaSzczytuStr == "tak")
            {
                godzinaSzczytu = true;
                Console.Clear();
                W("Jezdzisz w godzinach szczytu");
                W("");
            }
            else if (godzinaSzczytuStr == "nie")
            {
                Console.Clear();
                W("Nie jezdzisz w godzinach szczytu");
                W("");
                // godzinaSzczytu bedzie false (default)
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                W("Error: Proszę napisac TAK albo NIE");
                Console.ForegroundColor = ConsoleColor.White;
                W("");
                W("Naciśnij klawisz ENTER aby spróbowac ponownie");
                Console.ReadLine();
                Console.Clear();
                goto GodzinySzczytu;
            }
            List <ZestawPaczek> losowaneZestawy = dostawa.WylosujZestawyPaczek();

WybracZestawPaczek:
            W("Prosze wybrac Zestaw Paczek 1, 2, 3 albo 4");
            WyswietlZestawPaczek(losowaneZestawy);
            Console.Write("Opcja: ");
            int wybranaopcja = Convert.ToInt32(Console.ReadLine());

            W("Naciśnij klawisz ENTER aby potwierdzic");
            Console.ReadLine();

            if (wybranaopcja >= 1 && wybranaopcja <= 4)
            {
                Console.Clear();
                List <Paczka> wybrany = losowaneZestawy[wybranaopcja - 1].ListaPaczekWzestawie;
                ObliczycSciezke(wybrany, dzielnicaNaStarcie, godzinaSzczytu, wybranaopcja); //meter aqui o bool
                Console.ReadLine();
            }
            else
            {
                W("Prosze wybrac 1, 2, 3 lub 4");
                W("Naciśnij klawisz ENTER aby spróbowac ponownie");
                Console.ReadLine();
                Console.Clear();
                goto WybracZestawPaczek;
            }
        }
Esempio n. 27
0
        /// <summary>
        /// Tries to add current scan as a whole
        /// </summary>
        /// <param name="response"></param>
        /// <param name="techEntry"></param>
        /// <param name="sc"></param>
        /// <param name="dostawaEntry"></param>
        /// <returns></returns>
        public bool AddOrCreateNewSet(ScannedResponse response, Technical techEntry, ScannedCode sc, Dostawa dostawaEntry)
        {
            VTMagazyn VT = ExistsInVT(sc);

            if (VT == null && !sc.addedBefore)
            {
                // If no instance of this scan exists
                AddToVT(techEntry, sc, dostawaEntry);
            }
            else if (VT == null && sc.addedBefore)
            {
                if (sc.isForcedInsert)
                {
                    // If instance of this code have been added to previous scans
                    AddToVT(techEntry, sc, dostawaEntry);
                }
                else
                {
                    response.Header = HeaderTypes.error;
                    response.Flag   = FlagType.codeExistsBack;
                    return(false);
                }
            }
            else
            {
                if (sc.isForcedInsert)
                {
                    var deliveriesForToday = _db.Dostawa.AsNoTracking().Include(c => c.Technical)
                                             .Where(c => c.Technical.Wiazka == sc.Wiazka && c.Data.Date == sc.dataDostawyOld.Date).ToList();
                    var VTList = new List <VTMagazyn>();
                    VTList.Add(VT);
                    // ?
                    // If instance of this scan have been added for todays delivery
                    if (VT.SztukiZeskanowane < GetPossibleDeclaredValue(sc, VTList, deliveriesForToday))
                    {
                        return(AddQuantityIncorrect(deliveriesForToday, response, techEntry, sc, dostawaEntry));
                    }
                    else
                    {
                        AddToVT(techEntry, sc, dostawaEntry, true);
                    }
                }
                else
                {
                    response.Header = HeaderTypes.error;
                    response.Flag   = FlagType.codeExists;
                    return(false);
                }
            }

            return(true);
        }
Esempio n. 28
0
        /// <summary>
        /// Browse old scans in hope to find somewhere to add current scan to
        /// </summary>
        /// <param name="technical"></param>
        /// <param name="scanned"></param>
        /// <param name="dostawa"></param>
        /// <returns></returns>
        public bool SearchBack(Technical technical, ScannedCode scanned, Dostawa dostawa)
        {
            if (!scanned.isLookingBack || _scanCache.LookedBack == true)
            {
                return(false);
            }

            // Find all scans between dates
            var pastScans = _db.VTMagazyn.Include(c => c.Dostawy).Where(c =>
                                                                        c.Wiazka == scanned.Wiazka &&
                                                                        c.DataDostawy.Date < scanned.dataDostawy.Date &&
                                                                        c.autocompleteEnabled == true &&
                                                                        c.DataDostawy.Date >= scanned.dataDostawy.Date.AddDays(-7))
                            .OrderBy(c => c.DataDostawy).ToList().GroupBy(c => c.DataDostawy).Select(g => g.ToList()).ToList();

            var pastDeliveries = _db.Dostawa.AsNoTracking().Include(c => c.Technical)
                                 .Where(c => c.Technical.Wiazka == scanned.Wiazka &&
                                        c.Data.Date <scanned.dataDostawy.Date &&
                                                     c.Data.Date> scanned.dataDostawy.Date.AddDays(-7)).ToList();

            foreach (var scanPerDate in pastScans)
            {
                // Look if there are any duplicate scans (multiple sets)
                var duplicateScans    = scanPerDate.Where(c => c.KodCiety == scanned.kodCiety).OrderBy(c => c.NumerKompletu).ToList();
                int mostFrequentCount = 0;

                if (duplicateScans.Count > 0)
                {
                    foreach (var scan in duplicateScans)
                    {
                        mostFrequentCount = GetPossibleDeclaredValue(new ScannedCode {
                            Wiazka = scan.Wiazka, dataDostawyOld = scan.DataDostawy
                        }, scanPerDate, pastDeliveries, scan.NumerKompletu);

                        // If this scan have already been added set flags and notify user
                        if (scan.DataDopisu != null &&
                            ((DateTime)scan.DataDopisu).Date == scanned.dataDostawy.Date &&
                            !scanned.isForcedInsert)
                        {
                            scanned.addedBefore = true;
                            return(false);
                        }

                        // Check if we can add current scan to previous one
                        if (scan.SztukiZeskanowane + scanned.sztukiSkanowane == mostFrequentCount &&
                            scan.SztukiZeskanowane != mostFrequentCount)
                        {
                            scan.SztukiZeskanowane += scanned.sztukiSkanowane;
                            scan.DataDopisu         = scanned.dataDostawy;
                            scan.DopisanaIlosc      = scanned.sztukiSkanowane;
                            scan.DostawaDopis       = scanned.DokDostawy;
                            scanned.dataDostawyOld  = scan.DataDostawy;
                            if (dostawa != null)
                            {
                                UpdateVT(dostawa, scan);
                            }
                            _db.Update(scan);
                            _db.SaveChanges();

                            return(true);
                        }
                    }

                    // Check if any set is missing current scan
                    int[] setIDs = scanPerDate.Where(c => c.Komplet == false).Select(c => c.NumerKompletu).Distinct().ToArray();
                    foreach (int setID in setIDs)
                    {
                        mostFrequentCount = GetPossibleDeclaredValue(new ScannedCode {
                            Wiazka = scanned.Wiazka, dataDostawyOld = scanPerDate[0].DataDostawy
                        }, scanPerDate, pastDeliveries, setID);
                        // Only add on the previous date if "declared" value is the same as scanned
                        if (scanned.sztukiSkanowane == mostFrequentCount && duplicateScans.Where(c => c.NumerKompletu == setID).Select(c => c.KodCiety).FirstOrDefault() != scanned.kodCiety)
                        {
                            scanned.DataDopisu     = scanned.dataDostawy;
                            scanned.DopisanaIlosc  = scanned.sztukiSkanowane;
                            scanned.dataDostawyOld = scanPerDate[0].DataDostawy;
                            scanned.DostawaDopis   = scanned.DokDostawy;
                            AddToVT(technical, scanned, dostawa, true);
                            return(true);
                        }
                    }
                }
                else
                {
                    mostFrequentCount = GetPossibleDeclaredValue(new ScannedCode {
                        Wiazka = scanned.Wiazka, dataDostawyOld = scanPerDate[0].DataDostawy
                    }, scanPerDate, pastDeliveries, 0);
                    // Only add on the previous date if "declared" value is the same as scanned
                    if (scanned.sztukiSkanowane == mostFrequentCount)
                    {
                        scanned.DataDopisu     = scanned.dataDostawy;
                        scanned.DopisanaIlosc  = scanned.sztukiSkanowane;
                        scanned.dataDostawyOld = scanPerDate[0].DataDostawy;
                        scanned.DostawaDopis   = scanned.DokDostawy;
                        AddToVT(technical, scanned, dostawa);
                        return(true);
                    }
                }
            }

            _scanCache.LookedBack = true;
            _db.Update(_scanCache);
            _db.SaveChanges();
            return(false);
        }
Esempio n. 29
0
        /// <summary>
        /// Adds record to current scan or if it can't adds it as a brand new one
        /// </summary>
        /// <param name="response"></param>
        /// <param name="techEntry"></param>
        /// <param name="sc"></param>
        /// <param name="dostawaEntry"></param>
        /// <returns></returns>
        public bool AddQuantityIncorrect(List <Dostawa> deliveriesForToday, ScannedResponse response, Technical techEntry, ScannedCode sc, Dostawa dostawaEntry)
        {
            if (!sc.isForcedQuantity)
            {
                response.Header = HeaderTypes.error;
                response.Flag   = FlagType.quantityIncorrect;
                response.Args.Add(dostawaEntry.Ilosc.ToString());
                var sets     = _db.VTMagazyn.Where(c => c.Wiazka == sc.Wiazka && c.DataDostawy == sc.dataDostawyOld).ToList();
                int declared = GetPossibleDeclaredValue(sc, sets, deliveriesForToday, sc.NumerKompletu);
                response.Args.Add(GetScannedForDay(sc, sets).ToString());
                response.Args.Add(declared.ToString());
                response.Args.Add($"{declared - sc.sztukiSkanowane}");
                return(false);
            }
            else
            {
                var VTList      = ExistInVTList(sc);
                var scansForDay = _db.VTMagazyn.Where(c => c.Wiazka == sc.Wiazka && c.DataDostawy.Date == sc.dataDostawyOld.Date).ToList();

                if (VTList.Count <= 0 && !sc.addedBefore)
                {
                    // if record doesn't exist add it
                    AddToVT(techEntry, sc, dostawaEntry);
                }
                else if (VTList.Count <= 0 && sc.addedBefore)
                {
                    if (sc.isForcedInsert)
                    {
                        // if record have been added previously add for today
                        AddToVT(techEntry, sc, dostawaEntry);
                    }
                    else
                    {
                        response.Header = HeaderTypes.error;
                        response.Flag   = FlagType.codeExistsBack;
                        return(false);
                    }
                }
                else
                {
                    List <VTMagazyn> forceOverLimit = new List <VTMagazyn>();
                    foreach (var vt in VTList)
                    {
                        // Check if we can add current scan to complete one today
                        var perfectVT = GetPerfectMatchVT(sc, vt.NumerKompletu, VTList, scansForDay, deliveriesForToday);
                        if (perfectVT != null)
                        {
                            perfectVT.SztukiZeskanowane += sc.sztukiSkanowane;
                            sc.NumerKompletu             = perfectVT.NumerKompletu;
                            if (dostawaEntry != null)
                            {
                                UpdateVT(dostawaEntry, perfectVT);
                            }
                            _db.VTMagazyn.Update(perfectVT);
                            _db.SaveChanges();
                            return(true);
                        }
                    }
                    foreach (var vt in VTList)
                    {
                        // check if there are any scans we can add current scan to
                        var belowMatches = GetBelowDeclaredMatches(sc, vt.NumerKompletu, VTList, scansForDay, deliveriesForToday);
                        if (belowMatches.Count() == 0)
                        {
                            if (vt.autocompleteEnabled)
                            {
                                int possibleDeclaredValue = GetPossibleDeclaredValue(sc, scansForDay, deliveriesForToday, vt.NumerKompletu);

                                // if adding would exceed declared value
                                if (vt.SztukiZeskanowane < possibleDeclaredValue && vt.SztukiZeskanowane + sc.sztukiSkanowane > possibleDeclaredValue)
                                {
                                    forceOverLimit.Add(vt);
                                }
                            }
                        }
                        else
                        {
                            belowMatches[0].SztukiZeskanowane += sc.sztukiSkanowane;
                            sc.NumerKompletu = belowMatches[0].NumerKompletu;
                            if (dostawaEntry != null)
                            {
                                UpdateVT(dostawaEntry, belowMatches[0]);
                            }
                            _db.VTMagazyn.Update(belowMatches[0]);
                            _db.SaveChanges();
                            return(true);
                        }
                    }

                    if (forceOverLimit.Count() > 0)
                    {
                        if (!sc.isForcedOverLimit)
                        {
                            response.Header = HeaderTypes.error;
                            response.Flag   = FlagType.quantityOverLimit;
                            response.Args.Add((forceOverLimit[0].SztukiZeskanowane + sc.sztukiSkanowane).ToString());
                            response.Args.Add(GetPossibleDeclaredValue(sc, scansForDay, deliveriesForToday, forceOverLimit[0].NumerKompletu).ToString());
                            return(false);
                        }
                        else
                        {
                            forceOverLimit[0].SztukiZeskanowane += sc.sztukiSkanowane;
                            sc.NumerKompletu = forceOverLimit[0].NumerKompletu;
                            if (dostawaEntry != null)
                            {
                                UpdateVT(dostawaEntry, forceOverLimit[0]);
                            }
                            _db.VTMagazyn.Update(forceOverLimit[0]);
                            _db.SaveChanges();
                            return(true);
                        }
                    }
                    else
                    {
                        if (sc.isForcedInsert)
                        {
                            AddToVT(techEntry, sc, dostawaEntry, true);
                            return(true);
                        }
                        else
                        {
                            response.Header = HeaderTypes.error;
                            response.Flag   = FlagType.codeExists;
                            return(false);
                        }
                    }
                }
            }

            return(true);
        }
Esempio n. 30
0
 /// <summary>
 /// Functions searches previous scans and adds current scan there or if it can't tries to add it for today if scan wasn't complete according to delivery
 /// </summary>
 /// <param name="response"></param>
 /// <param name="techEntry"></param>
 /// <param name="sc"></param>
 /// <param name="dostawaEntry"></param>
 /// <returns></returns>
 public bool CheckBackOrAddQuantityIncorrect(ScannedResponse response, Technical techEntry, ScannedCode sc, Dostawa dostawaEntry)
 {
     if (!SearchBack(techEntry, sc, dostawaEntry))
     {
         var deliveriesForToday = _db.Dostawa.AsNoTracking().Include(c => c.Technical)
                                  .Where(c => c.Technical.Wiazka == sc.Wiazka && c.Data.Date == sc.dataDostawyOld.Date).ToList();
         return(AddQuantityIncorrect(deliveriesForToday, response, techEntry, sc, dostawaEntry));
     }
     return(true);
 }
Esempio n. 31
0
 /// <summary>
 /// Functions searches previous scans and adds current scan there or if it can't tries to add it for today
 /// </summary>
 /// <param name="response"></param>
 /// <param name="techEntry"></param>
 /// <param name="sc"></param>
 /// <param name="dostawaEntry"></param>
 /// <returns></returns>
 public bool CheckBackOrAdd(ScannedResponse response, Technical techEntry, ScannedCode sc, Dostawa dostawaEntry)
 {
     if (!SearchBack(techEntry, sc, dostawaEntry))
     {
         return(AddOrCreateNewSet(response, techEntry, sc, dostawaEntry));
     }
     return(true);
 }