示例#1
0
 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);
 }
示例#2
0
        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);
        }
示例#3
0
        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);
                }
            }
        }