Exemplo n.º 1
0
        public Kontrahent(Enova.API.CRM.Kontrahent enovaKontrahent)
        {
            this.PSID        = 0;
            Password         = "";
            Imie             = "firstname";
            Nazwisko         = "lastname";
            GrupaDomyslna    = 1;
            Aktywny          = true;
            Usuniety         = false;
            CzyAgent         = false;
            Stamp            = DateTime.Now;
            Synchronizacja   = (int)Enova.Business.Old.Types.RowSynchronizeOld.NotsynchronizedNew;
            DoSynchronizacji = false;
            SecureKey        = Enova.Business.Old.Core.Tools.GenSecureKey();

            if (enovaKontrahent != null)
            {
                Guid    = enovaKontrahent.Guid;
                Kod     = enovaKontrahent.Kod;
                Nazwa   = enovaKontrahent.Nazwa;
                Nip     = enovaKontrahent.NIP;
                Email   = enovaKontrahent.KontaktEMAIL;
                Telefon = enovaKontrahent.Adres.Telefon;
                Rabat   = enovaKontrahent.Rabat;

                string     przedtawicielKod = enovaKontrahent.Features["przedstawiciel"].ToString();
                Kontrahent przedstawiciel   = Enova.Business.Old.Core.ContextManager.WebContext.Kontrahenci.Where(k => k.Kod == przedtawicielKod).FirstOrDefault();
                Przedstawiciel = przedstawiciel;
            }
        }
Exemplo n.º 2
0
        private ObjectQuery <DBWeb.ZamowienieView> getQuery()
        {
            DateTime from           = okresControl.DateFrom.Date;
            DateTime to             = okresControl.DateTo.Date.AddDays(1);
            string   trasa          = kontrahentControl.Trasa;
            string   przedstawiciel = kontrahentControl.Przedstawiciel;
            string   sezon          = sezonControl.SelectedIndex == 0 ? null : (string)sezonControl.Value;

            Enova.Business.Old.DB.Web.Kontrahent kontrahent = null;
            Guid[] guids = null;

            if (kontrahentControl.Kontrahent != null)
            {
                //kontrahent = kontrahentControl.Kontrahent.GetWebKontrahent();
                kontrahent = Enova.Business.Old.DB.Web.Kontrahent.GetWebKontrahent(kontrahentControl.Kontrahent);
            }
            else if (!string.IsNullOrEmpty(przedstawiciel) && !string.IsNullOrEmpty(trasa))
            {
                trasa = @"\" + przedstawiciel + @"\" + trasa + @"\";
                var ec = Enova.Business.Old.Core.ContextManager.DataContext;
                guids = (from k in ec.Kontrahenci
                         join f in ec.Features on
                         new { ParentType = "Kontrahenci", Parent = k.ID, Name = "TRASY" } equals
                         new { ParentType = f.ParentType, Parent = f.Parent, Name = f.Name }
                         where f.Data == trasa
                         select k.Guid).ToArray();
            }


            string kontrahentKod = kontrahentControl.Kontrahent != null ? kontrahentControl.Kontrahent.Kod : null;
            string przedtawiciel = string.IsNullOrEmpty(kontrahentControl.Przedstawiciel) ? null : kontrahentControl.Przedstawiciel;

            var dc = Enova.Business.Old.Core.ContextManager.WebContext;

            if (guids != null)
            {
                return((ObjectQuery <DBWeb.ZamowienieView>)dc.ZamowieniaView.Where(z =>
                                                                                   (z.DataDodania >= from && z.DataDodania <= to ||
                                                                                    (z.StatusTyp != null && z.StatusTyp != (int)DBWeb.TypStatusuZamowienia.Anulowane && z.StatusTyp != (int)DBWeb.TypStatusuZamowienia.Wyslane)) &&
                                                                                   z.KontrahentGuid != null && guids.Contains(z.KontrahentGuid.Value) &&
                                                                                   (sezon == null || (z.Sezon == sezon || z.SezonDodatkowy == sezon)) &&
                                                                                   z.Synchronizacja != (int)RowSynchronizeOld.NotsynchronizedDelete &&
                                                                                   z.Synchronizacja != (int)RowSynchronizeOld.Synchronizing &&
                                                                                   z.Synchronizacja != (int)RowSynchronizeOld.Notsaved));
            }

            return((ObjectQuery <DBWeb.ZamowienieView>)dc.ZamowieniaView.Where(z =>
                                                                               (z.DataDodania >= from && z.DataDodania <= to ||
                                                                                (z.StatusTyp != null && z.StatusTyp != (int)DBWeb.TypStatusuZamowienia.Anulowane && z.StatusTyp != (int)DBWeb.TypStatusuZamowienia.Wyslane)) &&
                                                                               (kontrahentKod == null || z.KontrahentKod == kontrahentKod) &&
                                                                               (przedtawiciel == null || z.PrzedstawicielKod == przedtawiciel) &&
                                                                               (sezon == null || (z.Sezon == sezon || z.SezonDodatkowy == sezon)) &&
                                                                               z.Synchronizacja != (int)RowSynchronizeOld.NotsynchronizedDelete &&
                                                                               z.Synchronizacja != (int)RowSynchronizeOld.Synchronizing &&
                                                                               z.Synchronizacja != (int)RowSynchronizeOld.Notsaved));
        }
Exemplo n.º 3
0
        private void zformularzaButton_Click(object sender, EventArgs e)
        {
            var form = new ZwrotFormularzForm();

            if (Zwrot.Kontrahent != null)
            {
                Enova.Business.Old.DB.Web.Kontrahent kontrahent = Zwrot.Kontrahent;
                form.KontrahentId = Enova.Business.Old.Core.ContextManager.DataContext.Kontrahenci.Where(k => k.Guid == kontrahent.Guid).Select(k => k.ID).FirstOrDefault();
            }

            DialogResult result = form.ShowDialog();

            if (result == DialogResult.OK && form.DataSource != null)
            {
                var pozycje = form.DataSource.Where(p => p.IloscZam != null && p.IloscZam.Value > 0).OrderBy(p => p.Kod);

                if (pozycje.Count() > 0)
                {
                    PozycjaAdding();
                }

                foreach (var p in pozycje)
                {
                    var produkt = webProdukt(p.TowarGuid.Value);
                    if (produkt != null)
                    {
                        Zwrot zwrot = (Zwrot)this.DataSource;

                        zwrot.Pozycje.Add(new PozycjaZwrotu()
                        {
                            Cena           = produkt.Cena == null ? 0 : produkt.Cena.Value,
                            Deleted        = false,
                            Guid           = Guid.NewGuid(),
                            Ident          = Zwrot.GetMaxIdent() + 1,
                            Ilosc          = p.IloscZam.Value,
                            Synchronizacja = (int)Enova.Business.Old.Types.RowSynchronizeOld.NotsynchronizedNew,
                            Towar          = produkt,
                            TowarNazwa     = produkt.Nazwa
                        });
                    }
                }

                loadPozycje();
                Zwrot.PrzeliczWartosc();
                goToLastRow();
            }
        }
Exemplo n.º 4
0
        public Enova.Business.Old.DB.Web.Kontrahent GetWebKontrahent(bool insert)
        {
            Web.Kontrahent kontrahent = ContextManager.WebContext.Kontrahenci.Where(k => k.Guid == this.Guid).FirstOrDefault();
            if (kontrahent == null)
            {
                kontrahent = ContextManager.WebContext.Kontrahenci.Where(k => k.Kod == this.Kod && k.Nip == this.NIP).FirstOrDefault();
                if (kontrahent == null && insert)
                {
                    try
                    {
                        kontrahent = new Web.Kontrahent(this);
                        ContextManager.WebContext.AddToKontrahenci(kontrahent);
                        kontrahent.Synchronizacja = (int)Types.RowSynchronizeOld.Notsaved;
                        kontrahent.DoSaveChanges(ContextManager.WebContext);

                        //ContextManager.WebContext.SaveChanges();

                        Enova.Business.Old.DB.Web.Adres adres    = null;
                        Enova.Business.Old.DB.Web.Adres adresKor = null;

                        if (this.Adres != null)
                        {
                            adres = new Web.Adres(this.Adres);
                            kontrahent.Adresy.Add(adres);
                            adres.DoSaveChanges(ContextManager.WebContext);
                        }

                        if (this.AdresKorespondencyjny != null && this.AdresKorespondencyjny.AdresKodPocztowy != null && this.AdresKorespondencyjny.AdresKodPocztowy.Value > 0)
                        {
                            adresKor = new Web.Adres(this.AdresKorespondencyjny);
                            kontrahent.Adresy.Add(adresKor);
                            adresKor.DoSaveChanges(ContextManager.WebContext);
                        }

                        if (adresKor == null)
                        {
                            adres.DomyslnyAdresWysylki = true;
                        }



                        foreach (var cenaGrupowa in this.CenyGrupowe)
                        {
                            Web.GrupaRabatowa grupaRabatowa = ContextManager.WebContext.GrupyRabatowe.Where(gr => gr.GUID == cenaGrupowa.GrupaTowarowa.Guid).FirstOrDefault();
                            if (grupaRabatowa == null)
                            {
                                grupaRabatowa = new Web.GrupaRabatowa()
                                {
                                    EnovaStamp = cenaGrupowa.GrupaTowarowa.Stamp,
                                    GUID       = cenaGrupowa.GrupaTowarowa.Guid,
                                    Kategoria  = cenaGrupowa.GrupaTowarowa.Category,
                                    Wartosc    = cenaGrupowa.GrupaTowarowa.Value
                                }
                            }
                            ;

                            kontrahent.GrupyRabatowe.Add(new Web.KontrahentRabatGrupowy()
                            {
                                EnovaStamp        = cenaGrupowa.Stamp,
                                GrupaRabatowa     = grupaRabatowa,
                                GUID              = cenaGrupowa.Guid,
                                Rabat             = (decimal)cenaGrupowa.Rabat,
                                RabatZdefiniowany = (bool)cenaGrupowa.RabatZdefiniowany
                            });
                        }

                        kontrahent.Synchronizacja = (int)Types.RowSynchronizeOld.NotsynchronizedNew;
                        kontrahent.DoSaveChanges(ContextManager.WebContext);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
                else if (kontrahent != null)
                {
                    kontrahent.Guid = this.Guid;
                }
                //ContextManager.WebContext.SaveChanges();
            }

            return(kontrahent);
        }
Exemplo n.º 5
0
        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();
        }