コード例 #1
0
 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);
 }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        /// <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));
            }
        }
コード例 #9
0
 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);
 }
コード例 #10
0
        public void PobierzCeneZeZleceniaProdukcyjnego_GdyZlecenieProdukcyjneNull_Wyjatek()
        {
            var rolka = new tblProdukcjaRuchTowar()
            {
                tblProdukcjaRuchNaglowek = new tblProdukcjaRuchNaglowek()
            };

            Assert.Throws <ArgumentException>(() => sut.PobierzCeneZeZleceniaProdukcyjnego(rolka));
        }
コード例 #11
0
        public tblTowarGeowlokninaParametryGramatura PobierzWlasciwaGramature(decimal gramaturaSrednia, tblProdukcjaRuchTowar towar)
        {
            this.towar = towar;

            var idGramatura = PobierzWlasciwaGramatureId(gramaturaSrednia);

            return(listaGramatur.Where(g => g.IDTowarGeowlokninaParametryGramatura == idGramatura)
                   .FirstOrDefault());
        }
コード例 #12
0
        public void PobierzWlasciwaGramatureId_GdyGramaturMniejszaNizMinimalnaMozliwa_Wyjatek()
        {
            sut.LoadAsync();

            var towarRuch = new tblProdukcjaRuchTowar {
                IDTowarGeowlokninaParametrySurowiec = 1
            };

            Assert.Throws <GeowlokninaGramaturaException>(() => sut.PobierzWlasciwaGramature(78, towarRuch));
        }
コード例 #13
0
        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)");
        }
コード例 #14
0
        public void PobierzDaneZeZlecenia_GdyZlecenieTowarNull_ZwrocPrzekzaznaRolkeBazowa()
        {
            var rolkaBazowa = new tblProdukcjaRuchTowar {
                Dlugosc_m = 1
            };

            rolkaBazowa = sut.PobierzDaneZeZlecenia(rolkaBazowa, null);

            Assert.AreEqual(1, rolkaBazowa.Dlugosc_m);
        }
コード例 #15
0
 public static string PobierzKierunekPrzychodu(this tblProdukcjaRuchTowar towar)
 {
     if (towar.IDProdukcjaRozliczenieStatus == (int)ProdukcjaRozliczenieStatusEnum.NieRozliczono)
     {
         return("Linia");
     }
     else
     {
         return("Magazyn");
     }
 }
コード例 #16
0
        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));
        }
コード例 #17
0
        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> > >()));
        }
コード例 #18
0
        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));
        }
コード例 #19
0
        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);
        }
コード例 #20
0
        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);
        }
コード例 #21
0
        /// <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);
        }
コード例 #22
0
        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> >()));
        }
コード例 #23
0
        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));
        }
コード例 #24
0
        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);
        }
コード例 #25
0
        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);
        }
コード例 #26
0
        /// <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));
            }
        }
コード例 #27
0
        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);
        }
コード例 #28
0
        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);
        }
コード例 #29
0
        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);
        }
コード例 #30
0
        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);
        }