Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
 public Task <IEnumerable <tblProdukcjaRozliczenie_RW> > GenerujRozliczenieRWAsync(tblProdukcjaRozliczenie_PW wybranaPozycjaKonfekcjiDoRozliczenia)
 {
     throw new NotImplementedException();
 }
Example #7
0
 /// <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));
 }
Example #8
0
        /// <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);
        }
Example #9
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);
        }