private bool CzyRolkaNiezgodna(tblProdukcjaRuchTowar p) { return(p.IDGramatura != zlecenieTowar.IDTowarGeowlokninaParametryGramatura || !WielokrotnoscDlugosci(p.Dlugosc_m) || p.Szerokosc_m > zlecenieTowar.Szerokosc_m * 1.05m || p.Szerokosc_m < zlecenieTowar.Szerokosc_m * 0.95m); }
/// <summary> /// Uzupelnienie niezbednych danych dla rolki PW przed dodaniem do bazy /// </summary> /// <param name="idRuchNaglowek">id naglowka</param> /// <param name="pozycjaPW">rolka PW</param> /// <returns>void</returns> public virtual async Task UzupelnijPozycjePW(int?idRuchNaglowek, tblProdukcjaRuchTowar pozycjaPW, GPRuchTowarPWViewModel pwViewModel) { pozycjaPW.IDProdukcjaGniazdoProdukcyjne = pwViewModel.GniazdoProdukcyjne?.IDProdukcjaGniazdoProdukcyjne; pozycjaPW.IDProdukcjaZlecenieTowar = pwViewModel.ZlecenieTowar?.IDProdukcjaZlecenieTowar ?? 0; pozycjaPW.IDProdukcjaRuchNaglowek = idRuchNaglowek.Value; pozycjaPW.IDProdukcjaRuchTowarWyjsciowy = pwViewModel.RolkaRW?.IDProdukcjaRuchTowar; pozycjaPW.IDRolkaBazowa = pwViewModel.RolkaRW?.IDProdukcjaRuchTowar; pozycjaPW.IDRuchStatus = (int)StatusRuchuTowarowEnum.PrzyjecieWewnetrzne_PW; pozycjaPW.IDProdukcjaRuchNaglowek = idRuchNaglowek.GetValueOrDefault(); pozycjaPW.IDProdukcjaRozliczenieStatus = (int)ProdukcjaRozliczenieStatusEnum.NieRozliczono; pozycjaPW.Cena_kg = await pwViewModel.PwHelper.RolkaHelper.PobierzKosztRolki(pozycjaPW, (GniazdaProdukcyjneEnum)pwViewModel.GniazdoProdukcyjne?.IDProdukcjaGniazdoProdukcyjne); pozycjaPW.Cena_m2 = PobierzCenaDla(pozycjaPW); pozycjaPW.TowarNazwaMsAccess = nazwaTowaruSubiektHelper.GenerujNazweTowaru(pozycjaPW); pozycjaPW.TowarSymbolSubiekt = nazwaTowaruSubiektHelper.GenerujSymbolTowaru(pozycjaPW); pozycjaPW.NrDokumentu = pozycjaPW.NrRolkiPelny; pozycjaPW.SurowiecSkrot = pozycjaPW.tblTowarGeowlokninaParametrySurowiec?.Skrot; var towar = await pwViewModel.UnitOfWork.tblTowar.PobierzTowarZParametrowAsync(pwViewModel.WybranaGramatura, pwViewModel.WybranySurowiec, false); pozycjaPW.IDTowar = towar == null ? (int?)null : towar.IDTowar; pozycjaPW.TowarNazwaSubiekt = new NazwaTowaruGenerator().GenerujNazweTowaru(pozycjaPW); }
public bool CzyIloscM2ZgodnaZeZleceniem(tblProdukcjaZlecenieTowar zlecenieTowar, tblProdukcjaRuchTowar rolkaPW, IEnumerable <tblProdukcjaRuchTowar> listOfVMEntities) { if (zlecenieTowar is null) { return(false); } if (rolkaPW is null) { return(false); } // pobiera liste PW dla towaruZeZlecenia //var listaPWzBazy = await unitOfWork.tblProdukcjaRuchTowar.WhereAsync(e => e.IDProdukcjaZlecenieTowar == zlecenieTowar.IDProdukcjaZlecenieTowar); var sumaM2PrzyjetychDlaDanegoTowaruZlecenia = listOfVMEntities?.Sum(s => s.Ilosc_m2) + rolkaPW.Ilosc_m2; // + listaPWzBazy?.Sum(s => s.Ilosc_m2); if (sumaM2PrzyjetychDlaDanegoTowaruZlecenia > zlecenieTowar.Ilosc_m2) { return(false); } return(true); }
/// <summary> /// Metoda sprawdzajaca czy sumaryczna ilosc m2 rolek przyjetych na PW z danej rolki RW nie przewyzsza ilosci m2 tej rolki RW /// </summary> /// <param name="rolkaRW">rolka RW z ktorej realizowana jest konfekcja</param> /// <param name="rolkaPW">rokla PW przyjmowana</param> /// <param name="listaRolekPW">lista rolek PW otrzymanych jak dotad z rolki RW bez rolki <paramref name="rolkaPW"/></param> /// <returns></returns> public bool CzyIloscM2ZgodnaZRolkaRW(tblProdukcjaRuchTowar rolkaRW, tblProdukcjaRuchTowar rolkaPW, IEnumerable <tblProdukcjaRuchTowar> listaRolekPW) { if (rolkaRW is null) { return(true); } if (rolkaPW is null) { return(true); } if (listaRolekPW is null) { throw new ArgumentException("Brak listy PW do sprawdzenia ilosci zgodnych z rolka RW"); } var listaRolekPWzDanejRolkiRW = listaRolekPW.Where(r => r.IDRolkaBazowa == rolkaRW.IDProdukcjaRuchTowar) .Sum(s => s.Ilosc_m2); var przyjetaIloscM2zRolkiRW = listaRolekPWzDanejRolkiRW + rolkaPW.Ilosc_m2; if (przyjetaIloscM2zRolkiRW > rolkaRW.Ilosc_m2) { dialogService.ShowError_BtnOK("Suma [m2] rolek na PW jest większa niż ilość [m2] rolki na RW." + "\nRolka nie może zostać dodana."); return(false); } return(true); }
private bool RuchTowar(tblProdukcjaRuchTowar towar) { if (towar is null) { return(false); } if (towar.tblTowarGeowlokninaParametryGramatura is null) { return(false); } if (towar.tblTowarGeowlokninaParametrySurowiec is null) { return(false); } if (towar.Dlugosc_m == 0) { return(false); } if (towar.Szerokosc_m == 0) { return(false); } return(true); }
public void CzyIloscM2ZgodnaZRolkaRW_GdyRolkaRwRownaSumiePW_ZwracaTrue() { var rolkaRW = new tblProdukcjaRuchTowar { IDProdukcjaRuchTowar = 1, Ilosc_m2 = 5 }; var rolkaPW = new tblProdukcjaRuchTowar { Ilosc_m2 = 3, IDRolkaBazowa = 1 }; var listaRolekPW = new List <tblProdukcjaRuchTowar> { new tblProdukcjaRuchTowar { Ilosc_m2 = 1, IDRolkaBazowa = 1 }, new tblProdukcjaRuchTowar { Ilosc_m2 = 1, IDRolkaBazowa = 1 }, new tblProdukcjaRuchTowar { Ilosc_m2 = 1, IDRolkaBazowa = 2 }, }; var result = sut.CzyIloscM2ZgodnaZRolkaRW(rolkaRW, rolkaPW, listaRolekPW); Assert.IsTrue(result); }
public void CzyIloscM2ZgodnaZRolkaRW_BrakRolkiPW_True() { var rolkaRW = new tblProdukcjaRuchTowar { Ilosc_m2 = 5 }; var rolkaPW = new tblProdukcjaRuchTowar { Ilosc_m2 = 3 }; var listaRolekPW = new List <tblProdukcjaRuchTowar> { new tblProdukcjaRuchTowar { Ilosc_m2 = 1 }, new tblProdukcjaRuchTowar { Ilosc_m2 = 1 }, new tblProdukcjaRuchTowar { Ilosc_m2 = 1 }, }; var result = sut.CzyIloscM2ZgodnaZRolkaRW(rolkaRW, null, listaRolekPW); Assert.IsTrue(result); }
/// <summary> /// Pobiera koszt mieszanki za kg, i przypisuje do towaru na PW. Metoda do stosowania dla encji zapisanych w bazie! /// </summary> /// <param name="rolka">rolka RW lub PW (w przypadku linii wloknin brak RW)</param> /// <param name="gniazdaProdukcyjneEnum"></param> /// <returns></returns> public async Task <decimal> PobierzKosztRolki(tblProdukcjaRuchTowar rolka, GniazdaProdukcyjneEnum gniazdaProdukcyjneEnum) { if (rolka is null) { return(0); } if (gniazdaProdukcyjneEnum == 0) { return(0); } rolka = await unitOfWork.tblProdukcjaRuchTowar.GetByIdAsync(rolka.IDProdukcjaRuchTowar); if (rolka is null) { return(0); } if (gniazdaProdukcyjneEnum == GniazdaProdukcyjneEnum.LiniaWloknin) { return(PobierzCeneZeZleceniaProdukcyjnego(rolka)); } else { return(await PobierzCeneDlaRolkiBazowej(rolka, gniazdaProdukcyjneEnum)); } }
private decimal PobierzCenaDla(tblProdukcjaRuchTowar pozycjaPW) { if (pozycjaPW.Szerokosc_m != 0 && pozycjaPW.Dlugosc_m != 0) { var wagaM2 = pozycjaPW.Waga_kg / (pozycjaPW.Szerokosc_m * pozycjaPW.Dlugosc_m); return(wagaM2 * pozycjaPW.Cena_kg); } return(0); }
public void PobierzCeneZeZleceniaProdukcyjnego_GdyZlecenieProdukcyjneNull_Wyjatek() { var rolka = new tblProdukcjaRuchTowar() { tblProdukcjaRuchNaglowek = new tblProdukcjaRuchNaglowek() }; Assert.Throws <ArgumentException>(() => sut.PobierzCeneZeZleceniaProdukcyjnego(rolka)); }
public tblTowarGeowlokninaParametryGramatura PobierzWlasciwaGramature(decimal gramaturaSrednia, tblProdukcjaRuchTowar towar) { this.towar = towar; var idGramatura = PobierzWlasciwaGramatureId(gramaturaSrednia); return(listaGramatur.Where(g => g.IDTowarGeowlokninaParametryGramatura == idGramatura) .FirstOrDefault()); }
public void PobierzWlasciwaGramatureId_GdyGramaturMniejszaNizMinimalnaMozliwa_Wyjatek() { sut.LoadAsync(); var towarRuch = new tblProdukcjaRuchTowar { IDTowarGeowlokninaParametrySurowiec = 1 }; Assert.Throws <GeowlokninaGramaturaException>(() => sut.PobierzWlasciwaGramature(78, towarRuch)); }
public string GenerujNazweTowaru(tblProdukcjaRuchTowar towar) { if (!RuchTowar(towar)) { return(null); } return($"Geowłóknina ALTEX AT {towar.tblTowarGeowlokninaParametrySurowiec.Skrot} {towar.tblTowarGeowlokninaParametryGramatura.Gramatura} " + $"({towar.Szerokosc_m}mx{towar.Dlugosc_m}m)"); }
public void PobierzDaneZeZlecenia_GdyZlecenieTowarNull_ZwrocPrzekzaznaRolkeBazowa() { var rolkaBazowa = new tblProdukcjaRuchTowar { Dlugosc_m = 1 }; rolkaBazowa = sut.PobierzDaneZeZlecenia(rolkaBazowa, null); Assert.AreEqual(1, rolkaBazowa.Dlugosc_m); }
public static string PobierzKierunekPrzychodu(this tblProdukcjaRuchTowar towar) { if (towar.IDProdukcjaRozliczenieStatus == (int)ProdukcjaRozliczenieStatusEnum.NieRozliczono) { return("Linia"); } else { return("Magazyn"); } }
public void PobierzDaneZRolkiRw_GdyRolkaBazowaNull_Wyjatek() { var rolkaRW = new tblProdukcjaRuchTowar { NrRolki = 1, CzyKalandrowana = true }; var gniazdoProdukcyjne = new tblProdukcjaGniazdoProdukcyjne { IDProdukcjaGniazdoProdukcyjne = 1 }; Assert.Throws <ArgumentException>(() => sut.PobierzDaneZRolkiRw(null, rolkaRW, gniazdoProdukcyjne)); }
public async Task GdyPrzeslanaRolkaRWNieMaPowiazanychTabel_ZaciagnijZBazyDanych() { var rolkaRW = new tblProdukcjaRuchTowar { IDProdukcjaRuchTowar = 1, IDRolkaBazowa = 2, }; var idRolkaBazowa = await sut.PobierzIDRolkiBazowejAsync(rolkaRW, GniazdaProdukcyjneEnum.LiniaDoKalandowania); tblProdukcjaRuchNaglowek.Verify(v => v.SingleOrDefaultAsync(It.IsAny <Expression <Func <tblProdukcjaRuchNaglowek, bool> > >())); }
public void CzyIloscM2ZgodnaZRolkaRW_BrakListyPW_Wyjatek() { var rolkaRW = new tblProdukcjaRuchTowar { Ilosc_m2 = 5 }; var rolkaPW = new tblProdukcjaRuchTowar { Ilosc_m2 = 3 }; Assert.Throws <ArgumentException>(() => sut.CzyIloscM2ZgodnaZRolkaRW(rolkaRW, rolkaPW, null)); }
public void PobierzWlasciwaGramatureId_GdyGramaturaZaWysoka_ZmieniaGramatureNaWlasciwa(decimal gramatura, int nowaGramaturaPrzewidywana) { sut.LoadAsync(); var towarRuch = new tblProdukcjaRuchTowar { IDTowarGeowlokninaParametrySurowiec = 1 }; var idGramaturaNowa = sut.PobierzWlasciwaGramature(gramatura, towarRuch); Assert.AreEqual(nowaGramaturaPrzewidywana, idGramaturaNowa.IDTowarGeowlokninaParametryGramatura); }
private decimal ObliczOdpad(tblProdukcjaGniazdoProdukcyjne gniazdoProdukcyjne, tblProdukcjaRuchTowar rolkaRW, IEnumerable <tblProdukcjaRuchTowar> listaPWDlaDanejRolkiRW) { var wagaPW = listaPWDlaDanejRolkiRW.Sum(s => s.Waga_kg); var odpad = rolkaRW.Waga_kg * (1 - gniazdoProdukcyjne.WspZmniejszeniaMasy) - wagaPW; odpad = odpad < 0 ? 0 : odpad; return(odpad); }
/// <summary> /// Pobiera cene ze zlecenia produkcyjnego dla rolki pobranej z bazy ze wszystkimi child obiektami /// </summary> /// <param name="rolkaRW">rolka pobrana z bazy z child obiektami</param> /// <returns></returns> public decimal PobierzCeneZeZleceniaProdukcyjnego(tblProdukcjaRuchTowar rolkaRW) { if (rolkaRW.tblProdukcjaRuchNaglowek is null) { throw new ArgumentException($"Brak rolki jako argumentu funkcji"); } if (rolkaRW.tblProdukcjaRuchNaglowek.tblProdukcjaZlcecenieProdukcyjne is null) { throw new ArgumentException($"Brak rolki jako argumentu funkcji"); } return(rolkaRW.tblProdukcjaRuchNaglowek.tblProdukcjaZlcecenieProdukcyjne.CenaMieszanki_zl); }
public async Task PobierzDaneZGniazdaProdukcyjnego_ArgOk_WywolujeMetodyDlaRolkaHelper() { var rolkaBazowa = new tblProdukcjaRuchTowar { IDProdukcjaRuchTowar = 1 }; var gniazdoProdukcyjne = new tblProdukcjaGniazdoProdukcyjne(); var listaPW = new List <tblProdukcjaRuchTowar>(); rolkaBazowa = await sut.PobierzNoweNryDlaRolki(rolkaBazowa, gniazdoProdukcyjne, listaPW); rolkaHelper.Verify(v => v.PobierzKolejnyPelnyNrRolkiAsync(It.IsAny <tblProdukcjaGniazdoProdukcyjne>(), It.IsAny <tblProdukcjaRuchTowar>(), It.IsAny <IEnumerable <tblProdukcjaRuchTowar> >())); rolkaHelper.Verify(v => v.PobierzKolejnyNrRolkiAsync(It.IsAny <tblProdukcjaGniazdoProdukcyjne>(), It.IsAny <IEnumerable <tblProdukcjaRuchTowar> >())); }
public bool CzyGramaturaZgodna(tblProdukcjaRuchTowar towar) { this.towar = towar; if (towar.Ilosc_m2 == 0) { return(false); } var gramaturaSrednia = towar.Waga_kg / towar.Ilosc_m2 * 1000; return(CzyGramaturaZgodna(gramaturaSrednia, towar.IDGramatura)); }
public async Task PobierzDaneZGniazdaProdukcyjnego_GniazdoProdukcyjneJestNull_ZwracaTaSamaRolkeBazowa() { var rolkaBazowa = new tblProdukcjaRuchTowar { IDProdukcjaRuchTowar = 1 }; var gniazdoProdukcyjne = new tblProdukcjaGniazdoProdukcyjne(); var listaPW = new List <tblProdukcjaRuchTowar>(); rolkaBazowa = await sut.PobierzNoweNryDlaRolki(rolkaBazowa, null, listaPW); Assert.AreEqual(1, rolkaBazowa.IDProdukcjaRuchTowar); Assert.IsNull(rolkaBazowa.NrRolkiPelny); }
public void CzyIloscM2ZgodnaZeZleceniem_GdyListaPWPusta_PWmniejszeOdZlecenieTowar_True() { var zlecenieTowar = new tblProdukcjaZlecenieTowar { IDProdukcjaZlecenieTowar = 1, Ilosc_m2 = 2 }; var rolkaPW = new tblProdukcjaRuchTowar { IDProdukcjaRuchTowar = 2, Ilosc_m2 = 1 }; var listaPW = new List <tblProdukcjaRuchTowar>(); var result = sut.CzyIloscM2ZgodnaZeZleceniem(zlecenieTowar, rolkaPW, listaPW); Assert.IsTrue(result); }
/// <summary> /// Pobiera cene z rolki bazowej /// </summary> /// <param name="rolka">rolka pobrana z bazy z child obiektami</param> /// <param name="gniazdaProdukcyjneEnum"></param> /// <returns></returns> private async Task <decimal> PobierzCeneDlaRolkiBazowej(tblProdukcjaRuchTowar rolka, GniazdaProdukcyjneEnum gniazdaProdukcyjneEnum) { var idRolkiBazowej = await PobierzIDRolkiBazowejAsync(rolka, gniazdaProdukcyjneEnum); if (idRolkiBazowej.HasValue) { var rolkaBazowa = await unitOfWork.tblProdukcjaRuchTowar.GetByIdAsync(idRolkiBazowej.Value); return(rolkaBazowa.Cena_kg); } else { return(PobierzCeneZeZleceniaProdukcyjnego(rolka)); } }
public void GenerujSymbolTowaru_PozycjaNieNullAleZalezneTabeleNull_ZwracaNull() { var pozycja = new tblProdukcjaRuchTowar { tblTowarGeowlokninaParametrySurowiec = new tblTowarGeowlokninaParametrySurowiec { Skrot = "PP" }, Szerokosc_m = 1.00m, Dlugosc_m = 100.00m, }; var symbol = sut.GenerujSymbolTowaru(pozycja); Assert.IsNull(symbol); }
public async Task PobierzDaneZRolkiRw_GdyRolkaRWNull_ZwrocTaSamaRolkeBazowa() { var rolkaBazowa = new tblProdukcjaRuchTowar { IDProdukcjaRuchTowar = 1 }; var gniazdoProdukcyjne = new tblProdukcjaGniazdoProdukcyjne { IDProdukcjaGniazdoProdukcyjne = 1 }; rolkaHelper.Setup(s => s.PobierzIDRolkiBazowejAsync(It.IsAny <tblProdukcjaRuchTowar>(), It.IsAny <GniazdaProdukcyjneEnum>())).ReturnsAsync(1); rolkaBazowa = sut.PobierzDaneZRolkiRw(rolkaBazowa, null, gniazdoProdukcyjne); Assert.AreEqual(1, rolkaBazowa.IDProdukcjaRuchTowar); }
public async Task PobierzDaneZRolkiRw_GdyGniazdoNieJestLiniaWlokin_PrzypiszIdRolkiBazowej() { var rolkaBazowa = new tblProdukcjaRuchTowar { IDProdukcjaRuchTowar = 2, }; var rolkaRW = new tblProdukcjaRuchTowar { IDProdukcjaRuchTowar = 1, NrRolki = 1, CzyKalandrowana = true, NrRolkiPelny = "1KL1KO1", IDProdukcjaGniazdoProdukcyjne = (int)GniazdaProdukcyjneEnum.LiniaDoKalandowania }; var gniazdoProdukcyjne = new tblProdukcjaGniazdoProdukcyjne { IDProdukcjaGniazdoProdukcyjne = (int)GniazdaProdukcyjneEnum.LiniaDoKonfekcji }; rolkaBazowa = sut.PobierzDaneZRolkiRw(rolkaBazowa, rolkaRW, gniazdoProdukcyjne); Assert.AreEqual(1, rolkaBazowa.IDRolkaBazowa); }
public async Task PobierzDaneZRolkiRw_DlaLiniaWlokin_NiePrzypisujIdRolkiBazowej() { var rolkaBazowa = new tblProdukcjaRuchTowar { IDProdukcjaRuchTowar = 2, }; var rolkaRW = new tblProdukcjaRuchTowar { IDProdukcjaRuchTowar = 1, NrRolki = 1, CzyKalandrowana = true, NrRolkiPelny = "1KL1KO1", IDProdukcjaGniazdoProdukcyjne = (int)GniazdaProdukcyjneEnum.LiniaWloknin }; var gniazdoProdukcyjne = new tblProdukcjaGniazdoProdukcyjne { IDProdukcjaGniazdoProdukcyjne = (int)GniazdaProdukcyjneEnum.LiniaWloknin }; rolkaBazowa = sut.PobierzDaneZRolkiRw(rolkaBazowa, rolkaRW, null); Assert.AreEqual(null, rolkaBazowa.IDRolkaBazowa); }