private void DataGrid_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) { if (e.RowIndex >= 0 && e.RowIndex < DataGrid.Rows.Count) { DataGridViewRow row = DataGrid.Rows[e.RowIndex]; StatusZamowienia s = (StatusZamowienia)row.DataBoundItem; if (s != null) { Color color = ColorTranslator.FromHtml(s.Kolor); row.DefaultCellStyle.BackColor = color; row.HeaderCell.Style.BackColor = color; row.HeaderCell.Style.SelectionBackColor = color; row.HeaderCell.Style.SelectionForeColor = Color.Black; } } }
public void OnAction() { DialogResult result = MessageBox.Show("Czy napewno chcesz połączyć zamówienia?", "EnovaTools", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); if (result == DialogResult.No) { return; } List <DBWeb.Zamowienie> zamowienia = new List <DBWeb.Zamowienie>(); List <DBWeb.PozycjaZamowienia> pozycje = new List <DBWeb.PozycjaZamowienia>(); foreach (ZamowienieView row in StatusAction.SelectedRows) { DBWeb.Zamowienie zam = row.Zamowienie; zamowienia.Add(zam); foreach (var poz in zam.PozycjeZamowienia.Where(p => p.Synchronizacja != (int)RowSynchronizeOld.NotsynchronizedDelete)) { pozycje.Add(poz); } } DBWeb.Kontrahent kontrahent = zamowienia.Select(z => z.Kontrahent).FirstOrDefault(); DBWeb.Adres adresFaktury = zamowienia.Select(z => z.AdresFaktury).FirstOrDefault(); DBWeb.Adres adresWysylki = zamowienia.Select(z => z.AdresWysylki).FirstOrDefault(); DBWeb.Zamowienie noweZam = new DBWeb.Zamowienie() { AdresFaktury = adresFaktury, AdresWysylki = adresWysylki, Blokada = false, BlokadaEdycji = false, DataDodania = DateTime.Now, GUID = Guid.NewGuid(), Kontrahent = kontrahent, NaKiedy = DateTime.Now, NaKiedyTyp = "N", Pilne = false, PSID = 0, RodzajTransportu = RodzajTransportu.NieWybrano, Stamp = DateTime.Now, Synchronizacja = (int)RowSynchronizeOld.Notsaved, ZamPrzedstawiciela = false }; int ident = 1; foreach (var poz in pozycje) { try { DBWeb.PozycjaZamowienia pozycja = null; if (poz.ProduktIndywidualny != null && poz.ProduktIndywidualny.Value) { pozycja = noweZam.PozycjeZamowienia.Where(p => p.ProduktIndywidualny == true && p.ProduktNazwa == poz.ProduktNazwa).FirstOrDefault(); } else { pozycja = noweZam.PozycjeZamowienia.Where(p => p.Produkt != null && p.Produkt.ID == poz.Produkt.ID && (poz.AtrybutProduktu == null || p.AtrybutProduktu != null && p.AtrybutProduktu.ID == poz.AtrybutProduktu.ID)).FirstOrDefault(); } if (pozycja == null) { noweZam.PozycjeZamowienia.Add(new DBWeb.PozycjaZamowienia() { AtrybutProduktu = poz.AtrybutProduktu, Cena = poz.Cena, Ident = ident++, Ilosc = poz.Ilosc, IloscOrg = poz.Ilosc, Opis = poz.Opis, Produkt = poz.Produkt, ProduktNazwa = poz.ProduktNazwa, ProduktIndywidualny = poz.ProduktIndywidualny, PSID = poz.PSID, Stamp = DateTime.Now, StawkaVatSymbol = poz.StawkaVatSymbol, StawkaVatValue = poz.StawkaVatValue, Synchronizacja = (int)RowSynchronizeOld.NotsynchronizedNew, OgraniczenieSprzedazy = poz.OgraniczenieSprzedazy == null ? 0 : poz.OgraniczenieSprzedazy.Value }); } else { pozycja.Ilosc += poz.Ilosc; pozycja.IloscOrg = pozycja.Ilosc; pozycja.OgraniczenieSprzedazy += poz.OgraniczenieSprzedazy == null ? 0 : poz.OgraniczenieSprzedazy.Value; } } catch (Exception ex) { // MessageBox.Show("Ident: " + poz.Ident + " ID: " + poz.ID); throw ex; } } Operator @operator = Enova.Business.Old.Core.ContextManager.WebContext.Operatorzy .Where(p => p.Nazwa == Enova.Business.Old.DB.Web.User.LoginedUser.Login || p.Nazwa == User.LoginedUser.EnovaOperatorLogin).FirstOrDefault(); StatusZamowienia status = Enova.Business.Old.Core.ContextManager.WebContext.StatusyZamowien .Where(s => s.NoweZamowienie == true).FirstOrDefault(); noweZam.HistoriaZamowienia.Add(new DBWeb.HistoriaZamowienia() { DataDodania = DateTime.Now, Operator = @operator, Status = status, Synchronizacja = (int)RowSynchronizeOld.NotsynchronizedNew, }); Enova.Business.Old.Core.ContextManager.WebContext.SaveChanges(); foreach (var zam in zamowienia) { foreach (var poz in zam.PozycjeZamowienia) { poz.Synchronizacja = (int)RowSynchronizeOld.NotsynchronizedDelete; } foreach (var h in zam.HistoriaZamowienia) { h.Synchronizacja = (int)RowSynchronizeOld.NotsynchronizedDelete; } foreach (var m in zam.Wiadomosci) { m.Synchronizacja = (int)RowSynchronizeOld.NotsynchronizedDelete; } zam.Synchronizacja = (int)RowSynchronizeOld.NotsynchronizedDelete; } noweZam.Synchronizacja = (int)RowSynchronizeOld.NotsynchronizedNew; Enova.Business.Old.Core.ContextManager.WebContext.SaveChanges(); this.Reload(); MessageBox.Show("Stworzono nowe zamówienie o numerze " + noweZam.NumerPelny, "EnovaTools", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Reload(); }