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(); }
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)); }
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)); }
public ActionResult DeleteConfirmed(int id) { Dostawa dostawa = db.Dostawas.Find(id); db.Dostawas.Remove(dostawa); db.SaveChanges(); return(RedirectToAction("Index")); }
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")); }
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()); } }
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)); }
public IHttpActionResult GetDostawa(int id) { Dostawa dostawa = db.Dostawas.Find(id); if (dostawa == null) { return(NotFound()); } return(Ok(dostawa)); }
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)); }
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)); }
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")); }
/// <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); } }
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)); }
// 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)); }
// 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)); }
// 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)); }
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()); } }
// 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)); }
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; } } }
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(); } }
/// <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); }
public void Aktualizuj_Dostawe(Dostawa dostawa) { _db.Entry(dostawa).State = EntityState.Modified; }
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; } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }