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); }
public ProdukcjaRozliczenieRWAdapter(NormyZuzycia pozycja, vwMagazynRuchGTX surowiecZSubiekt, int idSurowcaMsAccess) { this.pozycja = pozycja; this.surowiecZSubiekt = surowiecZSubiekt; this.idSurowcaMsAccess = idSurowcaMsAccess; }
private static void DostosujSymbolTowaru(vwMagazynRuchGTX towar) { int indexSlash = towar.TowarSymbol.IndexOf("/"); if (indexSlash > 0) { towar.TowarSymbol = towar.TowarSymbol.Substring(0, indexSlash); } }
private async Task <vwMagazynRuchGTX> PobierzSurowiecDostepny(tblProdukcjaZlecenieProdukcyjne_Mieszanka surowiec) { var towar = await unitOfWork.vwTowarGTX.SingleOrDefaultAsync(e => e.IdTowar == surowiec.IDTowar); vwMagazynRuchGTX surowiecDostepny = null; var surowiecDostepnyNaMagazynie = await unitOfWork.vwMagazynRuchGTX.WhereAsync(e => e.IdTowar == surowiec.IDTowar); if (surowiecDostepnyNaMagazynie is null || surowiecDostepnyNaMagazynie.Sum(s => s.Ilosc) == 0) { surowiecDostepny = await surowiecSubiektStrategy.PobierzSurowiecZSubiektDla(towar.Symbol.Replace("_", "")); } return(surowiecDostepnyNaMagazynie.FirstOrDefault()); }
private tblProdukcjaRozliczenie_RW GenerujEncjeRozliczenia(tblProdukcjaZlecenieProdukcyjne_Mieszanka surowiec, vwMagazynRuchGTX surowiecDostepny) { return(new tblProdukcjaRozliczenie_RW { IDNormaZuzyciaMsAccess = surowiec.IDMsAccess.GetValueOrDefault(), IDSurowiecSubiekt = surowiecDostepny.IdTowar, CenaJednostkowa = surowiecDostepny.Cena, NazwaTowaruSubiekt = surowiecDostepny.TowarNazwa, SymbolTowaruSubiekt = surowiecDostepny.TowarSymbol, IDZlecenie = surowiec.IDProdukcjaZlecenieProdukcyjne.GetValueOrDefault(), Udzial = surowiec.ZawartoscProcentowa, DataDodania = DateTime.Now, IDJm = (int)JmEnum.kg, Jm = "kg" }); }