public RelacjaStatDok DodajNadrzedny(StatusDokumentu nadrzedny) { if (this.IsLive && !this.Nadrzedne.Any(r => r.ID == nadrzedny.ID)) { var rel = new RelacjaStatDok() { Nadrzedny = nadrzedny, Podrzedny = this }; ((Enova.Business.Old.DB.Web.WebContext)DbContext).RelacjeStatDok.AddObject(rel); return(rel); } return(null); }
public HistoriaDokumentu ZmienStatus(StatusDokumentu status, string opis = "") { var op = Operator.CurrentOperator.GetOperator((WebContext)this.DbContext); var h = new HistoriaDokumentu() { Data = DateTime.Now, Guid = Guid.NewGuid(), Host_ID = this.ID, Host_Type = "Reklamacje", Nazwa = status.Nazwa + "(" + Operator.CurrentOperator.Nazwa + ")", Operator = op, Status = status, Opis = opis }; this.Historia.Add(h); this.OstatniaHistoriaDokumentu = h; this.OstatniaHistoriaOperator = op; this.OstatniStatusDokumentu = status; return(h); }
private void generujZwrotButton_Click(object sender, EventArgs e) { if (this.Reklamacja.ID == 0) { BAL.Forms.FormManager.Alert("Musisz najpierw zapisać zwrot"); return; } if (!BAL.Forms.FormManager.Confirm("Czy napewno chcesz wygenerować zwrot z reklamacji?")) { return; } var dc = (Enova.Business.Old.DB.Web.WebContext)Reklamacja.DbContext; var zwrot = new OldDBWeb.Zwrot(); dc.Zwroty.AddObject(zwrot); var kontrahent = dc.Kontrahenci.Where(r => r.ID == this.Reklamacja.Kontrahent.ID).FirstOrDefault(); zwrot.Kontrahent = kontrahent; zwrot.DataDodania = DateTime.Now; zwrot.DataModyfikacji = zwrot.DataDodania; zwrot.Deleted = false; zwrot.Guid = Guid.NewGuid(); zwrot.IloscPaczek = 0; zwrot.Opis = "Zwrot do reklamacji " + this.Reklamacja.Numer.NumerPelny; zwrot.SkorygowanyWCalosci = false; zwrot.Synchronizacja = (int)Enova.Business.Old.Types.RowSynchronizeOld.NotsynchronizedNew; zwrot.SetStatus(OldDBWeb.TypStatusuZwrotu.Sprawdzony); int ident = 1; foreach (var poz in this.Reklamacja.Pozycje.Where(r => r.Indywidualny == false && r.IloscBraki > 0)) { var towar = dc.Produkty.Where(r => r.ID == poz.TowarID).First(); var pozycja = new OldDBWeb.PozycjaZwrotu() { Cena = towar.Cena == null ? 0 : towar.Cena.Value, Deleted = false, Guid = Guid.NewGuid(), Ident = ident++, IlocsDeklarowana = 0, Ilosc = poz.IloscBraki, IloscOrg = poz.IloscBraki, IloscSkorygowana = 0, Opis = "", Synchronizacja = (int)Enova.Business.Old.Types.RowSynchronizeOld.NotsynchronizedNew, Towar = towar, TowarNazwa = towar.Nazwa, Zwrot = zwrot }; } var form = new AbakTools.Zwroty.Forms.ZwrotEditForm(); form.DataSource = zwrot; if (form.ShowDialog() == DialogResult.OK) { int opt = (int)Core.OpcjeStatusuDokumentu.Koncowy; //var statusy = Core.CoreModule.GetInstance(this.DataContext).StatusyDokumentow.WgOpcji[Core.OpcjeStatusuDokumentu.Koncowy].ToList(); var statusy = dc.StatusyDokumentow.Where(r => r.Kategoria == "Reklamacje" && (r.OpcjeInt & opt) == opt).ToList(); if (statusy.Count == 0) { BAL.Forms.FormManager.Alert("UWAGA !!! Brak zdefiniowanego statusu końcowego dla reklamacji"); return; } //Core.StatusDokumentu status = null; Enova.Business.Old.DB.Web.StatusDokumentu status = null; if (statusy.Count > 1) { var form2 = new Core.Forms.WyborStatusuForm() { Statusy = statusy }; if (form2.ShowDialog() == DialogResult.OK) { status = form2.WybranyStatus; } } else { status = statusy.First(); } if (status != null) { this.Reklamacja.ZmienStatus(status, "Wygenerowano zwrot nr: " + zwrot.ID); } } }