//public void ProcessVorgang(SI_Belege QuellBeleg, SI_Belege NewBeleg) //{ // if (QuellBeleg == null) // { // throw new ArgumentNullException("Quellbeleg darf nicht Null sein"); // } // SI_Vorgaenge Vorgang; // if (QuellBeleg.id_Vorgang == 0 || QuellBeleg.id_Vorgang == null) // { // if (QuellBeleg.firma == null) // { // throw new ArgumentNullException("Quellbeleg Firma kann nicht Null sein."); // } // if (NewBeleg.firma == null) // { // } // Vorgang = CreateNewVorgang(NewBeleg.firma); // if (QuellBeleg.firma != NewBeleg.firma) // { // throw new ArgumentOutOfRangeException("Quellbeleg und Folgebeleg müssen sich auf dieselbe Firma beziehen"); // } // QuellBeleg.SI_Vorgaenge = Vorgang; // ProcessBelegPositionen(Vorgang, QuellBeleg); // } // else // { // // Vorgang = GetVorgang((int)QuellBeleg.id_Vorgang); // Vorgang = QuellBeleg.SI_Vorgaenge; // } // NewBeleg.id_Quellbeleg = QuellBeleg.id; // NewBeleg.SI_Vorgaenge = Vorgang; // ProcessBelegPositionen(Vorgang, NewBeleg); //} public bool ProcessVorgang(SI_Belege QuellBeleg, SI_Belege NewBeleg) { if (QuellBeleg == null) { return(false); } SI_Vorgaenge Vorgang; if (QuellBeleg.id_Vorgang == 0 || QuellBeleg.id_Vorgang == null) { Vorgang = CreateNewVorgang(NewBeleg.firma); if (QuellBeleg.firma != NewBeleg.firma) { return(false); } QuellBeleg.SI_Vorgaenge = Vorgang; ProcessBelegPositionen(Vorgang, QuellBeleg); } else { Vorgang = GetVorgang((int)QuellBeleg.id_Vorgang); } NewBeleg.id_Quellbeleg = QuellBeleg.id; NewBeleg.SI_Vorgaenge = Vorgang; return(ProcessBelegPositionen(Vorgang, NewBeleg)); }
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); }
public void CreateAndProcessNewVorgang(SI_Belege Beleg) { try { if (Beleg.SI_Vorgaenge == null) { Beleg.SI_Vorgaenge = CreateNewVorgang(Beleg.firma); ProcessBelegPositionen(Beleg.SI_Vorgaenge, Beleg); } } catch (Exception ex) { // CommonTools.Tools.UserMessage.NotifyUser(ex.Message); throw; } }
private void btnTest_Click(object sender, RoutedEventArgs e) { using (var test = new SteinbachEntities()) { var beleg = new SI_Belege(); beleg.id_Quelllager = 1; beleg.id_Ziellager = 2; test.AddToSI_Belege(beleg); var bwg = test.lagerliste_addremove.Where(i => i.id == 16471).SingleOrDefault(); bwg.id_Quelllager = 2; bwg.id_Ziellager = 1; //test.AddTolagerliste_addremove(bwg); test.SaveChanges(); } }
public LagerbuchungResult Lagerbuchung(SI_Belege Beleg) { bool posError = false; var bw = (StammBewegungsarten)Beleg.StammBelegarten.StammBewegungsarten; if (bw.Lagerbuchung == 0) { return(LagerbuchungResult.BelegartNichtBuchbar); } foreach (var item in Beleg.SI_BelegePositionen) { try { if ((int)item.Handelsware != 1) { bool resQ = false; bool resZ = false; var belegart = db.StammBelegarten.Where(n => n.id == Beleg.Belegart).SingleOrDefault(); var lb = new lagerliste_addremove(); lb.id_user = Session.User.id; lb.isConfirmed = 0; lb.created = DateTime.Now; lb.id_Quelllager = Beleg.id_Quelllager; lb.id_Ziellager = Beleg.id_Ziellager; lb.id_lagerliste = item.id_Artikel; // lb.bemerkung = item.SI_Belege.Bemerkung; lb.anzahl = (int)item.Menge; lb.addtype = bw.id; lb.id_projekt = Beleg.id_Projekt ?? 0; lb.id_BelegPosition = item.id; lb.id_Firma = Beleg.id_Firma; lb.Quelllager_BestandAlt = GetBestandLagerort((int)item.id_Artikel, (int)Beleg.id_Quelllager); lb.Ziellager_BestandAlt = GetBestandLagerort((int)item.id_Artikel, (int)Beleg.id_Ziellager); db.AddTolagerliste_addremove(lb); if (bw.WirkungQuelllager != 0) { resQ = Lagerbuchung((int)Beleg.id_Quelllager, (int)item.id_Artikel, (int)item.Menge * (int)bw.WirkungQuelllager); } else { resQ = true; } // Änderung Wirkung Belegart resZ = Lagerbuchung((int)Beleg.id_Ziellager, (int)item.id_Artikel, (int)item.Menge * (int)bw.WirkungZiellager); if (resQ == true && resZ == true) { lb.isConfirmed = -1; item.istGebucht = 1; // db.SaveChanges(); } lb.Quelllager_BestandNeu = GetBestandLagerort((int)item.id_Artikel, (int)Beleg.id_Quelllager); lb.Ziellager_BestandNeu = GetBestandLagerort((int)item.id_Artikel, (int)Beleg.id_Ziellager); // db.SaveChanges(); } } catch (Exception ex) { CommonTools.Tools.ErrorMethods.HandleStandardError(ex, "Lagerbuchung fehlgeschlagen."); posError = true; } } if (posError) { return(LagerbuchungResult.PositionsbuchungFehlgeschlagen); } else { return(LagerbuchungResult.BuchungOK); } }
//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); }
public bool AddToVorgang(int id_Vorgang, SI_Belege NewBeleg) { var vorgang = GetVorgang(id_Vorgang); return(AddToVorgang(vorgang, NewBeleg)); }
private bool MakeBuchungsbeleg() { bool result = false; try { int count = invPositionen.Where(n => (n.Differenz != 0 && n.Differenz != null) && (n.IstGebucht == 0 || n.IstGebucht == null)).Count(); if (count > 0) { SI_Belege b = null; if (!BelegID.HasValue || BelegID == 0) { b = new SI_Belege(); db.AddToSI_Belege(b); b.created = DateTime.Now; b.Belegart = "inv"; b.id_Ziellager = db.StammLagerorte.Where(n => n.istStandardLagerort == 1).SingleOrDefault().id; b.id_Quelllager = 4; b.Belegdatum = this.Inventurdatum; b.Bemerkung = "Inventur : " + id; b.Belegnummer = "Inventur : " + id; b.id_user = Session.User.id; b.id_Sprache = 1; b.istGebucht = 0; } else { b = db.SI_Belege.Where(id => id.id == BelegID).SingleOrDefault(); } if (invPositionen != null) { foreach (var item in invPositionen.Where(n => (n.Differenz != 0 && n.Differenz != null) && (n.IstGebucht == 0 || n.IstGebucht == null))) { var pos = (SI_InventurenPositionen)item; var posBel = new SI_BelegePositionen(); posBel.SI_Belege = b; posBel.Menge = pos.Differenz; posBel.id_Artikel = pos.id_artikel; db.AddToSI_BelegePositionen(posBel); if (pos.IstGebucht == 0 || pos.IstGebucht == null) { if (pos.id_artikel != null && pos.Differenz != null && pos.Differenz != 0) { int ProId = pos.id_inventur; pos.IstGebucht = 1; } } } } db.SaveChanges(); if (!BelegID.HasValue || BelegID == 0) { BelegID = b.id; } Inventurgebucht = 1; isGebuchtEnabled = false; isDirty = false; db.SaveChanges(); return(true); } else { return(false); } } catch (Exception ex) { MessageBox.Show(ex.Message); return(false); } }