public tblProdukcjaRozliczenie_PW GenerujOdpadDlaPW(IEnumerable <tblProdukcjaRozliczenie_PW> listaPW) { if (listaPW is null || !listaPW.Any()) { throw new ArgumentException("Brak listy do wyliczenia odpadu"); } var pozycja = listaPW.First(); var odpad = new tblProdukcjaRozliczenie_PW { SymbolTowaruSubiekt = PobierzSymbolINazweZSubiektDlaOdpadu(listaPW.First().NazwaTowaruSubiekt).symbol, NazwaTowaruSubiekt = PobierzSymbolINazweZSubiektDlaOdpadu(listaPW.First().NazwaTowaruSubiekt).nazwa, IDZlecenie = pozycja.IDZlecenie, NrZlecenia = pozycja.NrZlecenia, NrWz = pozycja.NrWz, Ilosc_kg = listaPW.Sum(s => s.Odpad_kg), CenaProduktuBezNarzutow_kg = pozycja.CenaProduktuBezNarzutow_kg, Wartosc = listaPW.Sum(s => s.Odpad_kg) * pozycja.CenaProduktuBezNarzutow_kg, Ilosc = listaPW.Sum(s => s.Odpad_kg), IDJm = (int)JmEnum.kg, Jm = "kg", CenaJednostkowa = pozycja.CenaProduktuBezNarzutow_kg, }; return(odpad); }
public IEnumerable <tblProdukcjaRozliczenie_PW> GenerujRozliczeniePW(IEnumerable <IProdukcjaRuchTowar> listaPozycjiKonfekcji, decimal cenaMieszanki) { if (listaPozycjiKonfekcji is null || !listaPozycjiKonfekcji.Any()) { throw new ArgumentNullException($"Brak argumentów dla metody {nameof(GenerujRozliczeniePW)}"); } var listaPW = new List <tblProdukcjaRozliczenie_PW>(); foreach (var pozycja in listaPozycjiKonfekcji) { if (pozycja.Szerokosc_m == 0) { continue; } if (pozycja.Dlugosc_m == 0) { continue; } if (pozycja.Waga_kg == 0) { continue; } tblProdukcjaRozliczenie_PW pozycjaPW = GenerujEncjeRozliczeniaPW(pozycja, cenaMieszanki); listaPW.Add(pozycjaPW); } return(listaPW); }
public async Task <tblProdukcjaRozliczenie_PW> GenerujOdpadDlaPW(int idZlecenie) { if (idZlecenie == 0) { throw new ArgumentException("Brak id zlecenia do wyliczenia odpadu"); } var rolkiRWRozchodowane = await PobierzListeRolekRozchodowanychINiezaksiegowanychDlaZlecenia(idZlecenie); if (!rolkiRWRozchodowane.Any()) { return(null); } //var pozycja = listaPW.First(); var odpad = new tblProdukcjaRozliczenie_PW { SymbolTowaruSubiekt = PobierzSymbolINazweZSubiektDlaOdpadu(rolkiRWRozchodowane.First().TowarNazwaSubiekt).symbol, NazwaTowaruSubiekt = PobierzSymbolINazweZSubiektDlaOdpadu(rolkiRWRozchodowane.First().TowarNazwaSubiekt).nazwa, IDZlecenie = rolkiRWRozchodowane.First().tblProdukcjaZlcecenieProdukcyjne.IDProdukcjaZlecenie, NrZlecenia = rolkiRWRozchodowane.First().tblProdukcjaZlcecenieProdukcyjne.NrZlecenia.ToString(), NrWz = rolkiRWRozchodowane.First().NrPalety.ToString(), Ilosc_kg = rolkiRWRozchodowane.Sum(s => s.WagaOdpad_kg), CenaProduktuBezNarzutow_kg = rolkiRWRozchodowane.First().Cena_kg, Wartosc = rolkiRWRozchodowane.First().Wartosc, Ilosc = rolkiRWRozchodowane.Sum(s => s.WagaOdpad_kg), IDJm = (int)JmEnum.kg, Jm = "kg", CenaJednostkowa = rolkiRWRozchodowane.First().Cena_kg, }; return(odpad); }
public IEnumerable <tblProdukcjaRozliczenie_PW> GenerujRozliczeniePW(IEnumerable <IProdukcjaRuchTowar> listaPozycjiKonfekcji) { if (listaPozycjiKonfekcji is null || !listaPozycjiKonfekcji.Any()) { throw new ArgumentNullException($"Brak argumentów dla metody {nameof(GenerujRozliczeniePW)}"); } var listaPW = new List <tblProdukcjaRozliczenie_PW>(); foreach (var pozycja in listaPozycjiKonfekcji) { if (pozycja.Szerokosc_m == 0) { continue; } if (pozycja.Dlugosc_m == 0) { continue; } //var cenaMieszanki = GenerujCeneMieszanki(pozycja.NrZlecenia); var pozycjaPW = new tblProdukcjaRozliczenie_PW { NrZlecenia = pozycja.ZlecenieNazwa, IDZlecenie = pozycja.IDProdukcjaZlecenieProdukcyjne.GetValueOrDefault(), NazwaTowaruSubiekt = pozycja.TowarNazwaSubiekt, SymbolTowaruSubiekt = pozycja.TowarSymbolSubiekt, Ilosc = pozycja.Ilosc_m2, Ilosc_kg = pozycja.Waga_kg, Odpad_kg = pozycja.WagaOdpad_kg, IDJm = (int)JmEnum.m2, Jm = "m2", //TODO //CenaProduktuBezNarzutow_kg = cenaMieszanki, //CenaJednostkowa = cenaMieszanki, //Wartosc = (pozycja.Waga_kg + pozycja.WagaOdpad_kg) * cenaMieszanki, Szerokosc_m = pozycja.Szerokosc_m, Dlugosc_m = pozycja.Dlugosc_m, }; listaPW.Add(pozycjaPW); } return(listaPW); }
public IEnumerable <tblProdukcjaRozliczenie_PW> GenerujRozliczeniePW(IEnumerable <IGniazdoProdukcyjne> listaPozycjiKonfekcji, decimal cenaMieszanki) { if (listaPozycjiKonfekcji is null || !listaPozycjiKonfekcji.Any()) { throw new ArgumentNullException($"Brak argumentów dla metody {nameof(GenerujRozliczeniePW)}"); } var listaPW = new List <tblProdukcjaRozliczenie_PW>(); foreach (var pozycja in listaPozycjiKonfekcji) { if (pozycja.Szerokosc == 0) { continue; } if (pozycja.Dlugosc == 0) { continue; } var nazwaTowaru = nazwaTowaruSubiekt.GenerujNazweTowaru(pozycja); var pozycjaPW = new tblProdukcjaRozliczenie_PW { NrZlecenia = pozycja.Zlecenie, IDZlecenie = pozycja.ZlecenieID, NazwaTowaruSubiekt = nazwaTowaru, SymbolTowaruSubiekt = nazwaTowaruSubiekt.GenerujSymbolTowaru(pozycja), Ilosc = pozycja.IloscM2, Ilosc_kg = pozycja.Waga, Odpad_kg = pozycja.WagaOdpadu, IDJm = (int)JmEnum.m2, Jm = "m2", CenaProduktuBezNarzutow_kg = cenaMieszanki, CenaJednostkowa = cenaMieszanki, Wartosc = (pozycja.Waga + pozycja.WagaOdpadu) * cenaMieszanki, Szerokosc_m = pozycja.Szerokosc, Dlugosc_m = pozycja.Dlugosc, NazwaTowaru = pozycja.Artykul, }; listaPW.Add(pozycjaPW); } return(listaPW); }
public Task <IEnumerable <tblProdukcjaRozliczenie_RW> > GenerujRozliczenieRWAsync(tblProdukcjaRozliczenie_PW wybranaPozycjaKonfekcjiDoRozliczenia) { throw new NotImplementedException(); }
/// <summary> /// Tworzy rozliczenie RW dla pozycji mieszanki wraz z idTowaru z Subiekt oraz udzialami /// </summary> /// <param name="mieszanka">encje NormZuzycia dla mieszanki</param> /// <returns></returns> public async Task <IEnumerable <tblProdukcjaRozliczenie_RW> > GenerujRozliczenieRWAsync(tblProdukcjaRozliczenie_PW wybranaPozycjaKonfekcjiDoRozliczenia) { return(await rwHelper.GenerujRozliczenieRWAsync(wybranaPozycjaKonfekcjiDoRozliczenia)); }
/// <summary> /// Tworzy rozliczenie RW dla pozycji mieszanki wraz z idTowaru z Subiekt oraz udzialami /// </summary> /// <param name="mieszanka">encje NormZuzycia dla mieszanki</param> /// <returns></returns> public async Task <IEnumerable <tblProdukcjaRozliczenie_RW> > GenerujRozliczenieRWAsync(tblProdukcjaRozliczenie_PW wybranaPozycjaKonfekcjiDoRozliczenia) { if (wybranaPozycjaKonfekcjiDoRozliczenia is null) { throw new ArgumentNullException($"Brak zlecenia jako argumentu funkcji {nameof(GenerujRozliczenieRWAsync)}."); } var mieszanka = await PobierzMieszankeDlaZleceniaAsync(wybranaPozycjaKonfekcjiDoRozliczenia.IDZlecenie); var rozliczenieLista = new List <tblProdukcjaRozliczenie_RW>(); foreach (var pozycja in mieszanka) { var surowiecZSubiekt = await surowiecStrategy.PobierzSurowiecZSubiektDla(pozycja.Surowiec); if (surowiecZSubiekt is null) { throw new ArgumentNullException("Nie znaleziono surowca do rozliczenia w bazie danych."); } rozliczenieLista.Add(new ProdukcjaRozliczenieRWAdapter( pozycja, surowiecZSubiekt, PobierzIdSurowcaZNazwyMsAccess(pozycja.Surowiec)) .Konwertuj() ); } return(rozliczenieLista); }
public async Task <IEnumerable <tblProdukcjaRozliczenie_RW> > GenerujRozliczenieRWAsync(tblProdukcjaRozliczenie_PW wybranaPozycjaKonfekcjiDoRozliczenia) { if (wybranaPozycjaKonfekcjiDoRozliczenia is null) { throw new ArgumentNullException($"Brak zlecenia jako argumentu funkcji {nameof(GenerujRozliczenieRWAsync)}."); } // pobierz mieszanke dla zlecenia var mieszanka = await unitOfWork.tblProdukcjaZlecenieProdukcyjne_Mieszanka .WhereAsync(e => e.IDProdukcjaZlecenieProdukcyjne == wybranaPozycjaKonfekcjiDoRozliczenia.IDZlecenie); if (!mieszanka.Any()) { throw new ArgumentOutOfRangeException($"Brak mieszanki dla zlecenia: {wybranaPozycjaKonfekcjiDoRozliczenia.IDZlecenie}"); } //dla kazdej pozycji wygeneruj rozliczenie wg udziału, ceny i ilosci var listaRW = new List <tblProdukcjaRozliczenie_RW>(); foreach (var surowiec in mieszanka) { vwMagazynRuchGTX surowiecDostepny = await PobierzSurowiecDostepny(surowiec); tblProdukcjaRozliczenie_RW surowiecRozliczenie = GenerujEncjeRozliczenia(surowiec, surowiecDostepny); listaRW.Add(surowiecRozliczenie); } return(listaRW); }