コード例 #1
0
        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);
        }
コード例 #2
0
 public ProdukcjaRozliczenieRWAdapter(NormyZuzycia pozycja,
                                      vwMagazynRuchGTX surowiecZSubiekt,
                                      int idSurowcaMsAccess)
 {
     this.pozycja           = pozycja;
     this.surowiecZSubiekt  = surowiecZSubiekt;
     this.idSurowcaMsAccess = idSurowcaMsAccess;
 }
コード例 #3
0
        private static void DostosujSymbolTowaru(vwMagazynRuchGTX towar)
        {
            int indexSlash = towar.TowarSymbol.IndexOf("/");

            if (indexSlash > 0)
            {
                towar.TowarSymbol = towar.TowarSymbol.Substring(0, indexSlash);
            }
        }
コード例 #4
0
        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());
        }
コード例 #5
0
 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"
     });
 }