//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); }