private void dodajPozycje(Enova.Business.Old.DB.Towar towar = null) { Produkt local = null; if (towar == null) { var form = WyborForm; form.ShowDialog(); this.Activate(); local = (Produkt)form.SelectedItem; } else { local = (Produkt)towar; } if (local != null && checkObrot(local)) { PozycjaAdding(); var pozycja = new Enova.Business.Old.DB.Web.PozycjaZwrotu() { Towar = local, Guid = Guid.NewGuid(), Ident = Zwrot.GetMaxIdent() + 1, TowarNazwa = local.Kod + " - " + local.Nazwa, Cena = local.Cena == null ? 0 : local.Cena.Value, Ilosc = 1, Deleted = false, Synchronizacja = (int)Enova.Business.Old.Types.RowSynchronizeOld.NotsynchronizedNew }; Zwrot.Pozycje.Add(pozycja); pozycjeZwrotuGrid.Focus(); loadPozycje(); Zwrot.PrzeliczWartosc(); goToLastRow(); } }
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); } } }