private void dokPrzeterminowaneDataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (fireEvents && e.RowIndex >= 0 && e.RowIndex < dokPrzeterminowaneDataGridView.Rows.Count) { DataGridViewRow row = dokPrzeterminowaneDataGridView.Rows[e.RowIndex]; if (row.DataBoundItem != null) { DokumentProwizjaRow dok = (DokumentProwizjaRow)row.DataBoundItem; using (var dc = new EnovaContext()) { var f = dc.Features.Where(r => r.Lp == 0 && r.ParentType == "DokHandlowe" && r.Parent == dok.DokumentID && r.Name == "NIE LICZ POTRACEN").FirstOrDefault(); if (f == null) { f = new Feature() { Lp = 0, ParentType = "DokHandlowe", Parent = dok.DokumentID, Name = "NIE LICZ POTRACEN" }; dc.Features.AddObject(f); } f.Data = dok.Rozliczany ? "0" : "1"; f.DataKey = f.Data; dc.SaveChanges(); } przeterminiwanePrzelicz(); podsumowaniePrzelicz(); } } }
private void przeterminiwanePrzelicz() { decimal?sumBrutto = 0; decimal?sumDoRozlicz = 0; decimal?sumProwizja = 0; decimal?sumPotrac = 0; foreach (DataGridViewRow row in dokPrzeterminowaneDataGridView.Rows) { if (row.DataBoundItem != null) { DokumentProwizjaRow dok = (DokumentProwizjaRow)row.DataBoundItem; if (dok != null && dok.Rozliczany) { sumBrutto += (decimal)dok.WartoscSprzedazyBrutto; sumDoRozlicz += (decimal)dok.DoRozliczenia; sumPotrac += dok.PotracenieProwizji; sumProwizja += dok.Prowizja; } } } sumaPotraceniaDoRozliczenia = sumDoRozlicz.Value; sumaWartoscBruttoPotraceniaTextBox.Text = string.Format("{0:C}", sumBrutto); sumaDoRozliczeniaPotraceniaTextBox.Text = string.Format("{0:C}", sumDoRozlicz); sumaProwizjaPotraceniaTextBox.Text = string.Format("{0:C}", sumProwizja); sumaPotraceniaProwizjiPotraceniaTextBox.Text = string.Format("{0:C}", sumPotrac); this.przeterminowane = (decimal)sumPotrac; }
private void dokumentyLoad() { string przedstawiciel = (string)this.przedstawicieleComboBox.SelectedItem; DateTime dataOd = getDataOd(); DateTime dataDo = getDataDo(); bool karaWgCechy = karyWgCechyCheckBox.Checked; string cechaKary = string.IsNullOrEmpty(cechaKaryTextBox.Text) ? "KARY" : cechaKaryTextBox.Text; //decimal wspolczynnikKary = karaWgCechy ? 0.50M : decimal.Parse(współczynnikTextBox.Text) - 1M; decimal wspolczynnikKary = karaWgCechy ? 0.50M : decimal.Parse(współczynnikTextBox.Text); prowizjaFV = 0; prowizjaFK = 0; this.dokSprzedazy = new SortedSet <DokumentProwizjaRow>(new DokumentProwizjaNumerComparer()); this.dokKorekty = new SortedSet <DokumentProwizjaRow>(new DokumentProwizjaNumerComparer()); using (var dc = new EnovaContext()) { var to = dataDo.Date.AddDays(1); var sql = string.Format( "SELECT dh.ID,dh.Data,dh.NumerPelny,dh.Korekta,dh.Magazyn,k.Kod KontrahentKod,k.Nazwa KontrahentNazwa,dh.SumaNetto SprzedazNetto," + "dh.SumaBrutto SprzedazBrutto,r.DataRozliczenia FROM dbo.RozrachunkiIdx r INNER JOIN dbo.Platnosci p ON (p.ID = r.Dokument) " + "INNER JOIN dbo.DokHandlowe dh ON (dh.ID = p.Dokument) INNER JOIN dbo.Kontrahenci k ON (k.ID = dh.Kontrahent) " + "INNER JOIN dbo.Features f ON (f.Parent = dh.ID AND f.ParentType='DokHandlowe' AND f.Name='PRZEDSTAWICIEL') " + "WHERE r.PodmiotType = 'Kontrahenci' AND r.DokumentType = 'Platnosci' AND p.DokumentType = 'DokHandlowe' AND p.Bufor = 0 " + "AND f.Data='{0}' AND r.DataRozliczenia >= '{1}' AND r.DataRozliczenia<='{2}' " + "ORDER BY dh.Data, dh.NumerPelny", przedstawiciel, dataOd.Date.ToShortDateString(), to.ToShortDateString()); var dokInfos = dc.ExecuteStoreQuery <DokumentInfo>(sql).ToList(); foreach (var dokInfo in dokInfos) { dokInfo.Przelicz(dc); var dok = new DokumentProwizjaRow(dokInfo, procentProwizji); dok.KaryWgCechy = karaWgCechy; dok.CechaKary = cechaKary; dok.WspolczynnikKary = wspolczynnikKary; if (dok.Korekta) { this.dokKorekty.Add(dok); } else { this.dokSprzedazy.Add(dok); } } } //using sumaSprzedazyNetto = dokSprzedazy.Sum(d => d.WartoscSprzedazyNetto); prowizjaFV = dokSprzedazy.Sum(d => d.Prowizja); sumaCenaAbakSprzedazTextBox.Text = string.Format("{0:C2}", dokSprzedazy.Sum(d => d.WartoscCenaAbak)); sumaSprzedazTextBox.Text = string.Format("{0:C2}", sumaSprzedazyNetto); sumaDochodSprzedazTextBox.Text = string.Format("{0:C2}", dokSprzedazy.Sum(d => d.Dochod)); sumaProwizjaSprzedazTextBox.Text = string.Format("{0:C2}", prowizjaFV); this.dokSprzedazyDataGridView.DataSource = this.dokSprzedazy.ToList(); prowizjaFK = dokKorekty.Sum(d => d.Prowizja); sumaKorektNetto = this.dokKorekty.Sum(d => d.WartoscSprzedazyNetto); sumaCenaAbakKorektyTextBox.Text = string.Format("{0:C}", this.dokKorekty.Sum(d => d.WartoscCenaAbak)); sumaSprzedazNettoKorTextBox.Text = string.Format("{0:C}", sumaKorektNetto); sumaDochodKorektyTextBox.Text = string.Format("{0:C}", this.dokKorekty.Sum(d => d.Dochod)); sumaProwizjaKorektyTextBox.Text = string.Format("{0:C}", this.prowizjaFK); this.dokKorektDataGridView.DataSource = this.dokKorekty.ToList(); }
private void dokumentyPrzeterminowaneLoad() { string przedstawiciel = (string)this.przedstawicieleComboBox.Text; DateTime dataOd = getDataOd(); DateTime dataDo = getDataDo(); int m = this.miesiąceComboBox.SelectedIndex + 1; if (m == 12) { m = 0; } int y = int.Parse(this.rokTextBox.Text); int pm = m < 4 ? 0 : (m > 3 && m < 8 ? 4 : 8); DateTime okresOd = new DateTime(pm == 0 && m != 0 ? y - 1 : y, pm == 0 ? 12 : pm, 1).AddMonths(-7); DateTime okresDo = okresOd.AddMonths(4).AddDays(-1); DateTime termin = okresOd.AddMonths(8).AddDays(-1); dokPotrącenia = new SortedSet <DokumentProwizjaRow>(new DokumentProwizjaNumerComparer(true)); using (var dc = new EnovaContext()) { //("Data >= '{0}' AND Data<='{1}' AND DataRozliczenia >= '{2}' AND (Typ = 10 OR Typ = 11)", okresOd, okresDo, dataDo.AddDays(1)) var sql = string.Format( "SELECT dh.ID,dh.Data,dh.NumerPelny,dh.Korekta,dh.Magazyn,k.Kod KontrahentKod,k.Nazwa KontrahentNazwa,dh.SumaNetto SprzedazNetto," + "dh.SumaBrutto SprzedazBrutto,r.DataRozliczenia,CASE WHEN dh.Korekta=1 THEN -r.KwotaValue ELSE r.KwotaValue END AS Kwota," + "CASE WHEN dh.Korekta=1 THEN -r.KwotaRozliczonaValue ELSE r.KwotaRozliczonaValue END AS KwotaRozliczona,r.Termin Termin, " + "CONVERT(BIT,ISNULL(nlp.Data,'0')) NieLiczPotracen " + "FROM dbo.RozrachunkiIdx r INNER JOIN dbo.Platnosci p ON (p.ID = r.Dokument) " + "INNER JOIN dbo.DokHandlowe dh ON (dh.ID = p.Dokument) INNER JOIN dbo.Kontrahenci k ON (k.ID = dh.Kontrahent) " + "INNER JOIN dbo.Features f ON (f.Parent = dh.ID AND f.ParentType='DokHandlowe' AND f.Name='PRZEDSTAWICIEL') " + "LEFT JOIN dbo.Features nlp ON (nlp.Parent = dh.ID AND nlp.ParentType='DokHandlowe' AND nlp.Name='NIE LICZ POTRACEN') " + "WHERE r.PodmiotType = 'Kontrahenci' AND r.DokumentType = 'Platnosci' AND p.DokumentType = 'DokHandlowe' AND p.Bufor = 0 " + "AND f.Data='{0}' AND r.Data >= '{1}' AND r.Data <= '{2}' AND r.DataRozliczenia >= '{3}' " + "ORDER BY dh.Data, dh.NumerPelny", przedstawiciel, okresOd.Date.ToShortDateString(), okresDo.Date.ToShortDateString(), dataDo.AddDays(1).Date.ToShortDateString()); var dokInfos = dc.ExecuteStoreQuery <DokumentInfo>(sql).ToList(); foreach (var dokInfo in dokInfos) { dokInfo.Przelicz(dc); var dok = new DokumentProwizjaRow(dokInfo, procentProwizji); dok.Rozliczany = !dokInfo.NieLiczPotracen; dok.TerminGraniczny = termin; dok.PrzeliczRozliczenia(dc, dataDo); dokPotrącenia.Add(dok); } } dokPrzeterminowaneDataGridView.DataSource = dokPotrącenia.ToList(); przeterminiwanePrzelicz(); }
private void podsumowanieLoad() { string przedstawiciel = (string)this.przedstawicieleComboBox.Text; DateTime dataOd = this.getDataOd(); DateTime dataDo = this.getDataDo(); int magFirmaID = 1; obrotFirmaFV = 0; obrotFirmaFK = 0; obrotFV = 0; obrotFK = 0; dokObrotyFV = new List <DokumentProwizjaRow>(); dokObrotyFK = new List <DokumentProwizjaRow>(); //rozliczeniaFV = new List<Enova.API.Kasa.RozliczenieSP>(); //rozliczeniaFK = new List<Enova.API.Kasa.RozliczenieSP>(); /* * var kontrahenci = CRMService.Kontrahenci.ByPrzedstawiciel(Session, przedstawiciel).ToList(); * var magFirma = Session.GetModule<Enova.API.Magazyny.MagazynyModule>().Magazyny.Firma; * var fromTo = FromTo.Create(dataOd, dataDo); * var km = Session.GetModule<Enova.API.Kasa.KasaModule>(); * foreach (var kh in kontrahenci) * { * var rozrachunki = KasaService.RozrachunkiIdx.ByKontrahent(Session, kh, fromTo, null).And("(Typ=10 OR Typ=11)"); * foreach (var r in rozrachunki) * { * var dh = r.Dokument.Dokument as Enova.API.Handel.DokumentHandlowy; * if (dh != null) * { * var dok = new DokumentProwizjaRow(dh, r, procentProwizji); * dok.Przelicz(); * if (dh.Korekta) * dokObrotyFK.Add(dok); * else * dokObrotyFV.Add(dok); * } * } * rozliczeniaSp = Session.GetModule<Enova.API.Kasa.KasaModule>().RozliczeniaSP[kh, fromTo].ToList(); * foreach (var rsp in rozliczeniaSp) * { * if (rsp.Dokument.Kierunek == Enova.API.Core.KierunekPlatnosci.Przychod) * rozliczeniaFV.Add(rsp); * else * rozliczeniaFK.Add(rsp); * } * * } */ using (var dc = new EnovaContext()) { var sql = string.Format( "SELECT dh.ID,dh.Data,dh.NumerPelny,dh.Korekta,dh.Magazyn,k.Kod KontrahentKod,k.Nazwa KontrahentNazwa," + "dh.SumaNetto SprzedazNetto,dh.SumaBrutto SprzedazBrutto,r.DataRozliczenia," + "CASE WHEN dh.Korekta=1 THEN -r.KwotaValue ELSE r.KwotaValue END AS Kwota," + "CASE WHEN dh.Korekta=1 THEN -r.KwotaRozliczonaValue ELSE r.KwotaRozliczonaValue END AS KwotaRozliczona," + "r.Termin Termin FROM dbo.RozrachunkiIdx r INNER JOIN dbo.Platnosci p ON (p.ID = r.Dokument) " + "INNER JOIN dbo.DokHandlowe dh ON (dh.ID = p.Dokument) INNER JOIN dbo.Kontrahenci k ON (k.ID = dh.Kontrahent) " + "INNER JOIN dbo.Features f ON (f.Parent = dh.ID AND f.ParentType='DokHandlowe' AND f.Name='PRZEDSTAWICIEL') " + "WHERE r.PodmiotType = 'Kontrahenci' AND r.DokumentType = 'Platnosci' AND p.DokumentType = 'DokHandlowe' " + "AND p.Bufor = 0 AND f.Data='{0}' AND r.Data >= '{1}' AND r.Data <= '{2}' ORDER BY dh.Data, dh.NumerPelny", przedstawiciel, dataOd.ToShortDateString(), dataDo.ToShortDateString()); var dokInfos = dc.ExecuteStoreQuery <DokumentInfo>(sql).ToList(); foreach (var dokInfo in dokInfos) { dokInfo.Przelicz(dc); var dok = new DokumentProwizjaRow(dokInfo, procentProwizji); if (dok.Korekta) { dokObrotyFK.Add(dok); } else { dokObrotyFV.Add(dok); } } } if (dokObrotyFV.Count > 0) { obrotFV = dokObrotyFV.Sum(d => d.WartoscSprzedazyNetto); obrotFirmaFV = dokObrotyFV.Where(d => d.MagazynID == magFirmaID).Sum(d => d.WartoscSprzedazyNetto); decimal obrotDochod = dokObrotyFV.Sum(d => d.Dochod); marzaFV = obrotDochod / obrotFV * 100; } if (dokObrotyFK.Count > 0) { this.obrotFK = this.dokObrotyFK.Sum(d => d.WartoscSprzedazyNetto); obrotFirmaFK = this.dokObrotyFK.Where(d => d.MagazynID == magFirmaID).Sum(d => d.WartoscSprzedazyNetto); } //this.rozliczeniaFVSuma = this.rozliczeniaFV.Sum(r => r.KwotaZaplaty); //this.rozliczeniaFVSumaRozliczone = this.rozliczeniaFV.Where(r => r.Dokument.DataRozliczenia >= dataOd && r.Dokument.DataRozliczenia <= dataDo).Sum(r => r.KwotaZaplaty); //this.rozliczeniaFKSuma = this.rozliczeniaFK.Sum(r => r.KwotaZaplaty); //this.rozliczeniaFKSumaRozliczone = this.rozliczeniaFK.Where(r => r.Dokument.DataRozliczenia >= dataOd && r.Dokument.DataRozliczenia <= dataDo).Sum(r => r.KwotaZaplaty); this.magazynowe = (decimal)(obrotFirmaFV + obrotFirmaFK) * -0.01M; podsumowaniePrzelicz(); podsumowanieLabel.Text = "Podsumowanie " + przedstawicieleComboBox.Text + " " + (miesiąceComboBox.SelectedIndex + 1).ToString() + "/" + rokTextBox.Text; }