private void dodajTowarDoPozycji(PozycjaAnalizyZwrotu pozycja, Towar towar, double ilosc) { pozycja.ilosc -= ilosc; var nowaPozycja = new PozycjaAnalizyZwrotu(this, towar, ilosc); this.Pozycje.Add(nowaPozycja); this.initDokumenty(nowaPozycja); }
private void zamienTowarPozycji(PozycjaAnalizyZwrotu pozycja, Towar nowyTowar) { this.Pozycje.Remove(pozycja); var nowaPozycja = new PozycjaAnalizyZwrotu(this, nowyTowar, pozycja.Ilosc); this.Pozycje.Add(nowaPozycja); this.initDokumenty(nowaPozycja); }
public bool SetKorygowany(PozycjaAnalizyZwrotu pozycja, bool enable, bool findBetter = true) { if (enable) { if (pozycja.PozostaloDoSkorygowania > 0) { if (this.pozycje.Contains(pozycja) && !this.pozycjeKorygowane.Contains(pozycja)) { double iloscPoKorektach = this.GetIloscPoKorektach(pozycja); if (iloscPoKorektach > 0) { if (iloscPoKorektach >= pozycja.PozostaloDoSkorygowania) { this.ilosciKorygowane[pozycja.Guid] = pozycja.PozostaloDoSkorygowania; pozycja.iloscSkorygowana += pozycja.PozostaloDoSkorygowania; this.pozycjeKorygowane.Add(pozycja); pozycja.DokumentyKorygowane.Add(this); } else { if (findBetter) { foreach (var doc in pozycja.DokumentyWgIlosciPozycji) { if (doc.Equals(this)) { continue; } if (doc.GetIloscPoKorektach(pozycja) >= pozycja.PozostaloDoSkorygowania) { return(false); } } } this.ilosciKorygowane[pozycja.Guid] = iloscPoKorektach; pozycja.iloscSkorygowana += iloscPoKorektach; this.pozycjeKorygowane.Add(pozycja); pozycja.DokumentyKorygowane.Add(this); } return(true); } } } } else { if (pozycja.DokumentyKorygowane.Contains(this)) { pozycja.DokumentyKorygowane.Remove(this); this.pozycjeKorygowane.Remove(pozycja); pozycja.iloscSkorygowana -= this.ilosciKorygowane[pozycja.Guid]; this.ilosciKorygowane[pozycja.Guid] = 0; return(true); } } return(false); }
private void initDokumenty(PozycjaAnalizyZwrotu pozycja) { var dokumentyHan = this.pozycjeDokHan.WgTowar[pozycja.Towar].BaseQuery.Select(p => p.Dokument).ToList(); foreach (var dh in dokumentyHan) { this.dokumenty.Add(dh, pozycja); } }
public void Add(DokumentHandlowy dh, PozycjaAnalizyZwrotu pozycja) { var item = this[dh]; if (item == null) { item = new DokumentAnalizyZwrotu(analiza, dh); this.Add(item); } item.Pozycje.Add(pozycja); pozycja.Dokumenty.Add(item); }
/* * private void przeliczNumerKorekty() * { * using (var session = Enova.API.EnovaService.Instance.CreateSession()) * { * this.numerKorekty = session.GetModule<API.Handel.IHandelModule>().PrzeliczSymbolDokumentu( * Enova.API.Handel.KategoriaHandlowa.KorektaSprzedaży, * new { Data = this.DataKorekty, DataOperacji = this.DataKorekty }); * * } * this.NotifyPropertyChanged("NumerKorekty"); * } */ public double GetIloscPoKorektach(PozycjaAnalizyZwrotu pozycja) { if (this.ilosciPoKorektach.ContainsKey(pozycja.Guid)) { return(ilosciPoKorektach[pozycja.Guid]); } var pdhs = this.dokumentHandlowy.Pozycje.WgTowar[pozycja.Towar].ToList(); double ilosc = 0; foreach (var pdh in pdhs) { ilosc += pdh.IloscPoKorektach; } this.ilosciPoKorektach.Add(pozycja.Guid, ilosc); return(ilosc); }
public SortedSet <ZamiennikIlosc> GetZamienniki(PozycjaAnalizyZwrotu pozycja) { var zamienniki = pozycja.Towar.ZamiennikiTowaru.Select(z => z.Zamiennik).ToList(); SortedSet <ZamiennikIlosc> ilosciZam = new SortedSet <ZamiennikIlosc>(); foreach (var zam in zamienniki) { var pdhs = this.pozycjeDokHan.WgTowar[zam].ToList(); double iloscPoKorektach = 0; foreach (var pdh in pdhs) { iloscPoKorektach += pdh.IloscPoKorektach; } if (iloscPoKorektach > 0) { ilosciZam.Add(new ZamiennikIlosc() { Towar = zam, Ilosc = iloscPoKorektach }); } } return(ilosciZam); }