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