예제 #1
0
        public void TestCreateNewVorgangFromFirma()
        {
            using (var db = new SteinbachEntities())
            {
                var Fa = db.firmen.Where(X => X.id == 14).SingleOrDefault();

                Vorgaenge    vg       = new Vorgaenge(db);
                SI_Vorgaenge vorgang1 = vg.CreateNewVorgang(Fa);

                SI_Vorgaenge vorgang2 = vg.CreateNewVorgang(Fa.id);

                Assert.AreEqual(vorgang1.firma, vorgang2.firma);
                Assert.AreEqual(vorgang1.firma.id, 14);
            }
        }
예제 #2
0
        public bool AddToVorgang(SI_Vorgaenge Vorgang, SI_Belege NewBeleg)
        {
            if (Vorgang != null && NewBeleg != null)
            {
                if (Vorgang.firma == NewBeleg.firma)
                {
                    NewBeleg.SI_Vorgaenge = Vorgang;
                    ProcessBelegPositionen(Vorgang, NewBeleg);
                    return(true);
                }

                return(false);
            }
            return(false);
        }
예제 #3
0
        public SI_Vorgaenge CreateNewVorgang(firma Firma)
        {
            if (Firma == null)
            {
                throw new ArgumentNullException("Firma kann nicht null sein");
            }

            if (Firma != null)
            {
                SI_Vorgaenge vorgang = new SI_Vorgaenge();
                db.AddToSI_Vorgaenge(vorgang);

                vorgang.Datum = DateTime.Now;
                vorgang.firma = Firma;


                return(vorgang);
            }

            return(null);
        }
예제 #4
0
        //public Vorgaenge()
        //{

        //}


        private bool ProcessBelegPositionen(SI_Vorgaenge vorgang, SI_Belege beleg)
        {
            if (vorgang == null)
            {
                throw new ArgumentNullException("Vorgang", VorgangKannNichtNullSeinMessage);
            }

            if (beleg == null)
            {
                throw new ArgumentNullException("Beleg", BelegKannNichtNullSeinMessage);
            }

            if (vorgang != null && beleg != null && beleg.SI_BelegePositionen != null)
            {
                foreach (var item in beleg.SI_BelegePositionen)
                {
                    var vPos = vorgang.SI_VorgaengePositionen.Where(n => n.id_Artikel == item.id_Artikel).SingleOrDefault();
                    if (vPos == null)
                    {
                        vPos = new SI_VorgaengePositionen();
                        vPos.SI_Vorgaenge = vorgang;
                        vPos.id_Artikel   = item.id_Artikel;
                        vorgang.SI_VorgaengePositionen.Add(vPos);
                        db.AddToSI_VorgaengePositionen(vPos);
                    }
                    switch (beleg.StammBelegarten.CalculateColumn)
                    {
                    case "ab":
                        if (vPos.MengeAB.HasValue)
                        {
                            vPos.MengeAB += ((decimal)item.Menge * beleg.StammBelegarten.Wirkung);
                        }
                        else
                        {
                            vPos.MengeAB = ((decimal)item.Menge * beleg.StammBelegarten.Wirkung);
                        }

                        break;

                    case "re":
                        if (vPos.MengeRg.HasValue)
                        {
                            vPos.MengeRg += ((decimal)item.Menge * beleg.StammBelegarten.Wirkung);
                        }
                        else
                        {
                            vPos.MengeRg = ((decimal)item.Menge * beleg.StammBelegarten.Wirkung);
                        }

                        break;

                    case "gs":
                        if (vPos.MengeGS.HasValue)
                        {
                            vPos.MengeGS += ((decimal)item.Menge * beleg.StammBelegarten.Wirkung);
                        }
                        else
                        {
                            vPos.MengeGS = ((decimal)item.Menge * beleg.StammBelegarten.Wirkung);
                        }

                        break;


                    case "ls":
                        if (vPos.MengeLS.HasValue)
                        {
                            vPos.MengeLS += ((decimal)item.Menge * beleg.StammBelegarten.Wirkung);
                        }
                        else
                        {
                            vPos.MengeLS = ((decimal)item.Menge * beleg.StammBelegarten.Wirkung);
                        }

                        break;

                    case "rls":
                        if (vPos.MengeLS.HasValue)
                        {
                            vPos.MengeRLS += ((decimal)item.Menge * beleg.StammBelegarten.Wirkung);
                        }
                        else
                        {
                            vPos.MengeRLS = ((decimal)item.Menge * beleg.StammBelegarten.Wirkung);
                        }

                        break;

                    default:
                        break;
                    }
                }

                return(true);
            }

            return(false);
        }