Example #1
0
        public void Przelicz(Enova.Business.Old.DB.EnovaContext dc)
        {
            var sql = "";

            if (this.Korekta)
            {
                sql = string.Format(
                    "SELECT CONVERT(DECIMAL(10,2), SUM(ISNULL((CONVERT(DECIMAL(10,2), f.Data)*(pdh.IloscMagazynuValue-npdh.IloscMagazynuValue)),(pdh.SumaNetto-npdh.SumaNetto)*0.75))) Prowizja " +
                    "FROM dbo.PozycjeDokHan pdh INNER JOIN dbo.PozRelHandlowej prh ON (prh.PodrzednyDok=pdh.Dokument AND prh.PodrzednaIdent=pdh.Ident) " +
                    "INNER JOIN dbo.PozycjeDokHan npdh ON (prh.NadrzednyDok=npdh.Dokument AND prh.NadrzednaIdent=npdh.Ident) INNER JOIn dbo.RelacjeHandlowe rh ON (rh.ID=prh.Relacja) " +
                    "LEFT JOIN dbo.Features f ON (f.Parent=npdh.ID AND f.ParentType='PozycjeDokHan' AND f.Name='Prowizja' AND f.Lp=0) " +
                    "WHERE pdh.Dokument={0} AND rh.Definicja=1 AND rh.Glowna=1", this.ID);
            }
            else
            {
                sql = string.Format("SELECT CONVERT(DECIMAL(10,2), SUM(ZakupNetto)) ZakupNetto FROM (" +
                                    "SELECT ISNULL((CONVERT(decimal(10,2), f.Data)*IloscMagazynuValue),CONVERT(decimal(10,2), pdh.SumaNetto*0.75)) ZakupNetto " +
                                    "FROM dbo.PozycjeDokHan pdh LEFT JOIN dbo.Features f ON (f.Parent=pdh.ID AND f.ParentType='PozycjeDokHan' AND f.Name='Prowizja' AND f.Lp=0) " +
                                    "WHERE pdh.Dokument={0})t0", this.ID);
            }
            this.ZakupNetto = dc.ExecuteStoreQuery <decimal>(sql).First();

            sql = string.Format("SELECT CONVERT(BIT, ISNULL(f.Data, '0')) Data FROM dbo.DokHandlowe dh " +
                                "LEFT JOIN dbo.Features f ON (f.Parent = dh.ID AND f.ParentType = 'DokHandlowe' AND f.Name = 'NIE LICZ POTRACEN') " +
                                "WHERE dh.ID = {0}", this.ID);
            this.NieLiczPotracen = dc.ExecuteStoreQuery <bool>(sql).First();
        }
        private void createReport()
        {
            reportSource = new List <DokumentEwidencjiViewRow>();

            using (new BAL.Forms.WaitCursor(this))
            {
                string   pr     = przedstawicielComboBox.SelectedIndex > 0 ? (string)przedstawicielComboBox.SelectedItem : null;
                DateTime dataOd = dataOdDateTimePicker.Value;
                dataOd = new DateTime(dataOd.Year, dataOd.Month, dataOd.Day);
                DateTime dataDo = dataDoDateTimePicker.Value;
                dataDo = new DateTime(dataDo.Year, dataDo.Month, dataDo.Day).AddDays(1);

                var sql = string.Format(
                    "SELECT k.Kod,k.Nazwa,de.Stan,de.DataDokumentu,de.NumerDokumentu,de.WartoscValue AS Wartosc,fp.Data Przewoznik,t0.DataRozliczenia " +
                    "FROM dbo.DokEwidencja de INNER JOIN dbo.DokHandlowe dh ON (dh.ID=de.Dokument) " +
                    "INNER JOIN dbo.Kontrahenci k ON (k.ID=de.Podmiot) " +
                    (pr != null ? "INNER JOIN dbo.Features f ON (f.Parent = k.ID AND f.ParentType='Kontrahenci' AND f.Lp=0 AND f.Name='przedstawiciel') " : "") +
                    "LEFT JOIN dbo.Features fp ON (fp.Parent = dh.ID AND fp.ParentType='DokHandlowe' AND fp.Lp=0 AND fp.Name='PRZEWOŻNIK') " +
                    "LEFT JOIN (SELECT pl.Dokument, MAX(pl.DataRozliczenia) DataRozliczenia FROM dbo.Platnosci pl WHERE pl.DokumentType='DokHandlowe' " +
                    "GROUP BY pl.Dokument)t0 ON t0.Dokument=dh.ID " +
                    "WHERE de.Stan={0} AND de.Typ={1} AND de.PodmiotType='Kontrahenci' AND de.DokumentType='DokHandlowe' " +
                    (pr != null ? " AND f.Data='{2}' " : "") + " AND dh.Definicja = 1 " +
                    "AND de.DataDokumentu >= '{3}' AND de.DataDokumentu < '{4}'",
                    (int)Enova.API.Core.StanEwidencji.Bufor, (int)Enova.API.Core.TypDokumentu.SprzedażEwidencja,
                    pr, dataOd.Date.ToString("s"), dataDo.Date.ToString("s"));

                using (var dc = new Enova.Business.Old.DB.EnovaContext())
                {
                    reportSource = (from r in dc.ExecuteStoreQuery <DokumentEwidencjiInfo>(sql)
                                    select new DokumentEwidencjiViewRow()
                    {
                        KodKontrahenta = r.Kod,
                        NazwaKontrahenta = r.Nazwa,
                        NumerDokumentu = r.NumerDokumentu,
                        DataDokumentu = r.DataDokumentu,
                        WartośćDokumentu = r.Wartosc,
                        Przewoźnik = r.Przewoznik,
                        DataRozliczenia = r.DataRozliczenia == null ? DateTime.MaxValue : r.DataRozliczenia.Value
                    }).ToList();
                }


                //var rsources = Assembly.GetAssembly(this.GetType()).GetManifestResourceNames();

                //this.reportViewer.LocalReport.ReportPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Reports\\NiepodpisaneFakturyReport.rdlc");
                this.reportViewer.LocalReport.ReportEmbeddedResource = "AbakTools.Ksiegowosc.Forms.Reports.NiepodpisaneFakturyReport.rdlc";
                this.reportViewer.LocalReport.DataSources.Clear();
                this.reportViewer.LocalReport.SetParameters(new ReportParameter[] { new ReportParameter("przedstawiciel", pr == null ? "Wszyscy" : pr) });
                this.reportViewer.LocalReport.DataSources.Add(new ReportDataSource("DokumentEwidencjiViewRow", reportSource));
                this.reportViewer.RefreshReport();
            }
        }
Example #3
0
        /*
         * public DokumentProwizjaRow(DokumentHandlowy dokument, RozrachunekIdx rozrachunek, decimal prowizjaProcent)
         * {
         *  if (dokument == null)
         *      throw new ArgumentNullException("dokument");
         *  this.dokument = dokument;
         *  this.rozrachunek = rozrachunek;
         *  this.prowizjaProcent = prowizjaProcent;
         * }
         */

        /*
         * public DokumentProwizjaRow(Enova.Business.Old.DB.DokumentHandlowy dokument, Enova.Business.Old.DB.RozrachunekIdx rozrachunek, decimal prowizjaProcent)
         * {
         *  if(dokument == null)
         *      throw new ArgumentNullException("dokument");
         *  this.dokumentEF = dokument;
         *  this.rozrachunekEF = rozrachunek;
         *  this.prowizjaProcent = prowizjaProcent;
         * }
         */


        /*
         * private void przeliczZakup()
         * {
         *  wartoscZakupuNetto = 0;
         *  wartoscCenaAbak = 0;
         *  bool flag = false;
         *
         *  if (dokument != null)
         *  {
         *      if (dokument.Korekta)
         *      {
         *          wartoscKary = 0;
         *          wartoscProwizji = 0;
         *          flag = KaryWgCechy && !string.IsNullOrWhiteSpace(CechaKary);
         *      }
         *
         *      foreach (var pdh in dokument.DokumentMagazynowyGłówny.Pozycje.Cast<PozycjaDokHandlowego>().ToList())
         *      {
         *          var obroty = pdh.Obroty.Cast<Obrot>().ToList().Where(o => o.Korekta != Enova.API.Magazyny.KorektaObrotu.StornoZasobu);
         *          var zakupNetto = obroty.Sum(o => o.Przychod.Wartosc);
         *          var cenaAbak = (decimal?)pdh.Features["Prowizja"];
         *          wartoscZakupuNetto += zakupNetto;
         *          decimal zakupCenaAbak = 0;
         *          if (cenaAbak == null || cenaAbak.Value == 0)
         *              zakupCenaAbak = zakupNetto;
         *          else
         *          {
         *              var ilosc = dokument.Korekta ? obroty.Sum(o => o.Ilosc.Value) : pdh.Ilosc;
         *              zakupCenaAbak = cenaAbak.Value * (decimal)ilosc;
         *          }
         *          wartoscCenaAbak += zakupCenaAbak;
         *          if (dokument.Korekta)
         *          {
         *              var sprzedazNetto = obroty.Sum(o => o.Rozchod.Wartosc);
         *              if (sprzedazNetto != 0)
         *              {
         *                  var prowizja = (sprzedazNetto - zakupCenaAbak) * prowizjaProcent / 100M;
         *                  wartoscProwizji += prowizja;
         *                  var wsp = WspolczynnikKary;
         *                  if (flag)
         *                  {
         *                      var s = pdh.Towar.Features[CechaKary] as string;
         *                      int i = 0;
         *                      if (!string.IsNullOrWhiteSpace(s) && int.TryParse(s, out i))
         *                          wsp = i / 100M;
         *                  }
         *                  wartoscKary += prowizja * wsp;
         *              }
         *          }
         *      }
         *  }
         * }
         */

        /*
         * private void przeliczRozliczenia()
         * {
         *  rozliczono = 0;
         *  foreach (var p in dokument.Platnosci.Cast<Enova.API.Kasa.Platnosc>().ToList())
         *  {
         *      var rozliczenia = p.Rozliczenia.Cast<Enova.API.Kasa.RozliczenieSP>().ToList();
         *      if (rozliczenia.Count() > 0)
         *          rozliczono += rozliczenia.Where(ro => ro.Data <= RozliczeniaDataDo.Value).Sum(ro => ro.KwotaZaplaty.Value) * (dokument.Korekta ? -1 : 1);
         *  }
         *
         * }
         *
         * public void Przelicz()
         * {
         *  przeliczZakup();
         *  if (RozliczeniaDataDo != null)
         *      przeliczRozliczenia();
         * }
         */

        public void PrzeliczRozliczenia(Enova.Business.Old.DB.EnovaContext dc, DateTime rozliczeniaDataDo)
        {
            rozliczono             = 0;
            this.RozliczeniaDataDo = rozliczeniaDataDo;
            var sql = string.Format(
                "SELECT SUM(rsp.KwotaZaplatyValue) KwotaZaplaty FROM dbo.Platnosci pl " +
                "INNER JOIN dbo.RozliczeniaSP rsp ON (rsp.Dokument=pl.ID AND rsp.DokumentType='Platnosci') " +
                "WHERE pl.DokumentType = 'DokHandlowe' AND pl.Dokument={0} AND Data <= '{1}'", this.dokumentInfo.ID, rozliczeniaDataDo.ToShortDateString());
            var res = dc.ExecuteStoreQuery <decimal?>(sql).FirstOrDefault();

            if (res != null)
            {
                rozliczono = res.Value;
            }
        }