Exemplo n.º 1
0
        private void loadData()
        {
            if (Zamowienie != null)
            {
                List <Enova.Forms.Handel.DokumentHandlowyView> ds          = new List <Enova.Forms.Handel.DokumentHandlowyView>();
                IEnumerable <Enova.API.CRM.Kontrahent>         kontrahenci = null;
                DateTime to = okresDateSpan.DateTo.Date.AddDays(1);

                using (var s = Enova.API.EnovaService.Instance.CreateSession())
                {
                    if (Zamowienie.ZamPrzedstawiciela)
                    {
                        kontrahenci = Enova.Forms.Services.CRMService.Kontrahenci.ByPrzedstawiciel(s, Zamowienie.Kontrahent.Kod);
                    }
                    else
                    {
                        kontrahenci = new Enova.API.CRM.Kontrahent[] { s.GetModule <Enova.API.CRM.CRMModule>().Kontrahenci[Zamowienie.Kontrahent.Guid.Value] }
                    };
                    //var km = s.GetModule<Enova.API.Kasa.KasaModule>();
                    var hm = s.GetModule <Enova.API.Handel.HandelModule>();
                    foreach (var k in kontrahenci)
                    {
                        /*
                         * var rozrachunki = km.RozrachunkiIdx.WgPodmiot(k).CreateView().SetFilter(
                         *  string.Format("Data >= '{0}' AND Data < '{1}' AND (Typ = 10 OR Typ = 11)", okresDateSpan.DateFrom.Date.ToShortDateString(), to.ToShortDateString())
                         *  ).Cast<Enova.API.Kasa.RozrachunekIdx>();
                         * foreach (var r in rozrachunki)
                         * {
                         *  var dh = r.Dokument.Dokument as Enova.API.Handel.DokumentHandlowy;
                         *  if (dh != null && !dh.Korekta)
                         *      ds.Add(new Enova.Forms.Handel.DokumentHandlowyView(dh));
                         * }
                         */
                        var ft        = Enova.API.Types.FromTo.Create(okresDateSpan.DateFrom.Date, okresDateSpan.DateTo.Date);
                        var defId     = hm.DefDokHandlowych.FakturaSprzedazy.ID;
                        var dokumenty = hm.DokHandlowe.WgKontrahentDataDefinicja(k, null, ft, null, Enova.API.Handel.StanDokumentuHandlowego.Zatwierdzony);
                        foreach (var dh in dokumenty)
                        {
                            if (dh.Definicja.ID == defId)
                            {
                                ds.Add(new Enova.Forms.Handel.DokumentHandlowyView(dh));
                            }
                        }
                    }
                }

                bindingSource.DataSource = ds.OrderBy(d => d.Data).ThenBy(d => d.NumerPelny);
            }
        }
Exemplo n.º 2
0
        private void CreateReport()
        {
            this.Enabled = false;
            this.Cursor  = Cursors.WaitCursor;

            DateTime dataOd = okresDateSpan.DateFrom.Date;
            DateTime dataDo = okresDateSpan.DateTo.Date.AddDays(1).AddMilliseconds(-1);

            Enova.API.CRM.Kontrahent kontrahent = kontrahentSelect.Kontrahent;

            if (kontrahent != null)
            {
                var dc = Enova.Business.Old.Core.ContextManager.DataContext;

                var dokumenty = dc.DokHandlowe.Where(d => d.Data >= dataOd && d.Data <= dataDo && (d.RelationDefinicja.ID == 1 || d.RelationDefinicja.ID == 2) &&
                                                     d.Kontrahent.ID == kontrahent.ID).OrderBy(d => d.Data).ThenBy(d => d.NumerPelny).ToList();
                var rows = new List <ReportRow>();

                foreach (var dokument in dokumenty)
                {
                    DateTime?dataRoz = dokument.GetDataRozliczenia(dc);
                    rows.Add(new ReportRow()
                    {
                        Int1      = dokument.ID,
                        Int2      = dokument.Kontrahent.ID,
                        String1   = dokument.NumerPelny,
                        DateTime1 = dokument.Data,
                        String2   = dataRoz == null ? string.Empty : dataRoz.Value.ToShortDateString(),
                        Decimal1  = dokument.SumaBrutto,
                        Decimal2  = dokument.DoRozliczenia,
                        Decimal3  = dokument.GetProwizja(dc, 0.5M),
                        Decimal4  = dokument.GetPotracenia(dc, 0.5M)
                    });
                }

                reportViewer.LocalReport.ReportPath = "Reports\\ProwizjaZFakturReport.rdlc";
                reportViewer.LocalReport.DataSources.Clear();
                reportViewer.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter("text", "Kontrahent: " + kontrahent.Kod + "  Okres od: " + dataOd.ToShortDateString()
                                                                                                        + " do " + dataDo.ToShortDateString()));
                reportViewer.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("Rows", rows));
                reportViewer.RefreshReport();
            }
            this.Cursor  = Cursors.Default;
            this.Enabled = true;
        }
Exemplo n.º 3
0
        protected override void LoadData()
        {
            DateTime dataOd = okresSpan.DateFrom.Date;
            DateTime dataDo = okresSpan.DateTo.Date.AddDays(1).AddSeconds(-1);

            Enova.API.CRM.Kontrahent kontrahent = null;
            string przedstawiciel = kontrahentSelectControl.Przedstawiciel;
            string trasa          = kontrahentSelectControl.Trasa;
            string sezon          = sezonComboBox.SelectedIndex > 0 ? (string)sezonComboBox.SelectedItem : null;

            Guid[] guids = null;
            if (kontrahentSelectControl.Kontrahent != null)
            {
                //kontrahent = kontrahentSelectControl.Kontrahent.GetWebKontrahent();
                kontrahent = Enova.Business.Old.DB.Web.Kontrahent.GetWebKontrahent(kontrahentSelectControl.Kontrahent);
            }
            else if (!string.IsNullOrEmpty(przedstawiciel) && !string.IsNullOrEmpty(trasa))
            {
                trasa = @"\" + przedstawiciel + @"\" + trasa + @"\";
                var dc = Enova.Business.Old.Core.ContextManager.DataContext;
                guids = (from k in dc.Kontrahenci
                         join f in dc.Features on
                         new { ParentType = "Kontrahenci", Parent = k.ID, Name = "TRASY" } equals
                         new { ParentType = f.ParentType, Parent = f.Parent, Name = f.Name }
                         where f.Data == trasa
                         select k.Guid).ToArray();
            }

            var zm = ZwrotyModule.GetInstance(Enova.Business.Old.Core.ContextManager.WebContext);

            var ds = zm.Zwroty.WgDatyDodania[okresSpan.DateFrom, okresSpan.DateTo, true].WgPrzedstawiciel[przedstawiciel].WgSezon[sezon];

            if (guids != null)
            {
                this.DataSource = ds.WgKontrahent[guids];
            }
            else
            {
                this.DataSource = kontrahent == null ? ds : ds.WgKontrahent[new Guid[] { kontrahent.Guid }];
            }
        }
Exemplo n.º 4
0
 private void setAdres()
 {
     Enova.API.CRM.Kontrahent kontrahent = (Enova.API.CRM.Kontrahent)kontrahentSelect.SelectedItem;
     if (kontrahent != null && kontrahent.ID != 0)
     {
         //Enova.Business.Old.DB.Adres adres = adresKoresCheckBox.Checked ? kontrahent.AdresKorespondencyjny : kontrahent.Adres;
         var adres = adresKoresCheckBox.Checked ? kontrahent.AdresDoKorespondencji : kontrahent.Adres;
         if (adres != null && this.DataContext != null)
         {
             if (DataContext != null)
             {
                 DataContext.SetValue("Kod", kontrahent.Kod);
                 DataContext.SetValue("Nazwa", kontrahent.Nazwa);
                 DataContext.SetValue("Adres", adres.Ulica + " " + adres.NrDomu + (string.IsNullOrEmpty(adres.NrLokalu) ? "" : "/" + adres.NrLokalu));
                 DataContext.SetValue("KodPocztowy", adres.KodPocztowy);
                 DataContext.SetValue("Miejscowosc", adres.Miejscowosc);
                 this.Refresh();
             }
         }
     }
 }
Exemplo n.º 5
0
        private void sendEmailButton_Click(object sender, EventArgs e)
        {
            if (!drukowanoRaport)
            {
                MessageBox.Show("Musisz najpierw wygenerować raport");
                return;
            }

            this.Cursor  = Cursors.WaitCursor;
            this.Enabled = false;

            Enova.API.CRM.Kontrahent kontrahent = null;
            var service = Enova.API.EnovaService.Instance;

            using (var session = service.CreateSession())
            {
                if (kontrahentSelect.Kontrahent != null)
                {
                    try
                    {
                        kontrahent = session.GetModule <Enova.API.CRM.CRMModule>().Kontrahenci[kontrahentSelect.Kontrahent.Guid];
                    }
                    catch { }
                }

                Warning[] warnings;
                string[]  streamIds;
                string    mimeType  = string.Empty;
                string    encoding  = string.Empty;
                string    extension = string.Empty;

                string fileName = "tmp\\" + Guid.NewGuid().ToString() + ".pdf";

                byte[] bytes = this.reportViewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings);

                using (System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Create))
                {
                    fs.Write(bytes, 0, bytes.Length);
                }

                var form = new AbakTools.Web.EmailSendForm();

                if (kontrahent != null)
                {
                    if (!string.IsNullOrEmpty(kontrahent.KontaktEMAIL))
                    {
                        form.MailTo = kontrahent.KontaktEMAIL;
                    }
                    form.MailToName = kontrahent.Kod;
                }


                form.MailSubject = "ABAK - PŁATNOŚCI";

                form.Attachments.Add(new System.Net.Mail.Attachment(fileName)
                {
                    Name = "Abak_Platnosci_" + DateTime.Now.ToShortDateString() + ".pdf"
                });

                this.Enabled = true;
                this.Cursor  = Cursors.Default;


                var result = form.ShowDialog();
                if (kontrahent != null && result == System.Windows.Forms.DialogResult.OK)
                {
                    if (!string.IsNullOrEmpty(form.MailTo))
                    {
                        bool flag = false;
                        if (string.IsNullOrEmpty(kontrahent.KontaktEMAIL))
                        {
                            if (MessageBox.Show("Dodać adres email do kartoteki klienta",
                                                "AbakTools", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                            {
                                flag = true;
                            }
                        }
                        else if (form.MailTo.ToLower() != kontrahent.KontaktEMAIL.ToLower())
                        {
                            if (MessageBox.Show("Wprowadzony adres email jest różny od adresu w kartotece.\r\nCzy chcesz go podmienić?",
                                                "AbakTools", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                            {
                                flag = true;
                            }
                        }

                        if (flag)
                        {
                            using (var t = session.CreateTransaction())
                            {
                                kontrahent.KontaktEMAIL = form.MailTo.ToLower();
                                t.Commit();
                            }
                            session.Save();
                        }
                    }
                }
            }
        }
Exemplo n.º 6
0
        private void zatwierdźButton_Click(object sender, EventArgs e)
        {
            Enabled = false;
            Cursor  = Cursors.WaitCursor;

            string przedstawiciel = kontrahentSelect.Przedstawiciel;
            string trasa          = kontrahentSelect.Trasa;

            Enova.API.CRM.Kontrahent kontrahent = kontrahentSelect.Kontrahent;
            FeatureDef featureDef = featureGroupSelect.DefinicjaCechy;
            string     grupa      = featureDef.Name;
            string     słownik    = featureDef.Dictionary;
            DateTime   dateFrom1  = okres1dateSpan.DateFrom;
            DateTime   dateTo1    = okres1dateSpan.DateTo;
            DateTime   dateFrom2  = okres2DateSpan.DateFrom;
            DateTime   dateTo2    = okres2DateSpan.DateTo;

            List <Enova.Business.Old.Types.ObrotyWgGrupTowarowych> reportSource = null;


            if (string.IsNullOrEmpty(trasa) || kontrahent != null)
            {
                var obroty = (from o in DataContext.ObrotyByKontrahent(przedstawiciel, kontrahent)
                              join f in DataContext.FeaturesByDef("Towary", grupa) on o.Towar.ID equals f.Parent
                              where o.Data >= dateFrom1 && o.Data <= dateTo1
                              group o by new { Grupa = f.Data, KontrahentID = o.RozchodKontrahent.ID } into g
                              select new ObrotyWgGrupTowarowych()
                {
                    GrupaTowarowa = g.Key.Grupa,
                    IDKontrahenta = g.Key.KontrahentID,
                    KodKontrahenta = g.FirstOrDefault().RozchodKontrahent.Kod,
                    NazwaKontrahenta = g.FirstOrDefault().RozchodKontrahent.NazwaStr,
                    ObrótNettoI = g.Sum(ob => ob.RozchodWartosc),
                    ObrótNettoII = 0
                }).ToList();

                using (var lc = new DBWeb.WebContext())
                {
                    lc.CommandTimeout = int.MaxValue;
                    int?kontrahentID = kontrahent == null ? (int?)null : kontrahent.ID;
                    foreach (var f in DataContext.FeaturesByDef("Towary", grupa).ToList())
                    {
                        var towar = DataContext.Towary.Where(t => t.ID == f.Parent).FirstOrDefault();

                        var pozycje = (from pz in lc.PozycjeZamowien
                                       where
                                       pz.Zamowienie.DataDodania >= dateFrom2 && pz.Zamowienie.DataDodania <= dateTo2 &&
                                       pz.Zamowienie.Synchronizacja != (int)RowSynchronizeOld.NotsynchronizedDelete &&
                                       pz.Zamowienie.Synchronizacja != (int)RowSynchronizeOld.Notsaved &&
                                       pz.Zamowienie.Synchronizacja != (int)RowSynchronizeOld.Synchronizing &&
                                       (pz.ProduktIndywidualny == null || pz.ProduktIndywidualny == false) && pz.Produkt.EnovaGuid == towar.Guid && pz.Ilosc > 0 &&
                                       (kontrahentID == null || pz.Zamowienie.Kontrahent.ID == kontrahentID) &&
                                       (przedstawiciel == null || pz.Zamowienie.Kontrahent.Przedstawiciel.Kod == przedstawiciel)
                                       select pz).ToList();

                        foreach (var poz in pozycje)
                        {
                            var     kontr   = DataContext.Kontrahenci.Where(k => k.Guid == poz.Zamowienie.Kontrahent.Guid).FirstOrDefault();
                            decimal wartosc = (decimal)(poz.Ilosc == null ? 0 : poz.Ilosc.Value) * (poz.Cena == null ? 0 : poz.Cena.Value) * (1 - (poz.Rabat == null ? 0 : poz.Rabat.Value));

                            obroty.Add(new ObrotyWgGrupTowarowych()
                            {
                                GrupaTowarowa    = f.Data,
                                IDKontrahenta    = kontr.ID,
                                KodKontrahenta   = kontr.Kod,
                                NazwaKontrahenta = kontr.NazwaStr,
                                ObrótNettoI      = 0,
                                ObrótNettoII     = decimal.Round(wartosc, 2)
                            });
                        }
                    }
                }

                reportSource = (from o in obroty
                                group o by new { o.GrupaTowarowa, o.IDKontrahenta } into g
                                select new ObrotyWgGrupTowarowych()
                {
                    GrupaTowarowa = g.Key.GrupaTowarowa,
                    IDKontrahenta = g.Key.IDKontrahenta,
                    KodKontrahenta = g.FirstOrDefault().KodKontrahenta,
                    NazwaKontrahenta = g.FirstOrDefault().NazwaKontrahenta,
                    ObrótNettoI = g.Sum(o => o.ObrótNettoI),
                    ObrótNettoII = g.Sum(o => o.ObrótNettoII)
                }).ToList();
            }
            else
            {
            }

            reportViewer.LocalReport.ReportPath = "Reports\\ObrotyWgGrupTowarowychReport.rdlc";
            reportViewer.LocalReport.DataSources.Clear();
            reportViewer.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("ObrotyWgGrupTowarowych", reportSource));
            reportViewer.RefreshReport();


            Cursor  = Cursors.Default;
            Enabled = true;
        }
Exemplo n.º 7
0
        private void enovaButton_Click(object sender, EventArgs e)
        {
            if (((Enova.Business.Old.DB.Web.Kontrahent) this.DataSource).Guid != null)
            {
                DialogResult result = MessageBox.Show("Czy napewno chcesz zmienić kontrahenta ?", "EnovaTools", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == System.Windows.Forms.DialogResult.No)
                {
                    return;
                }
            }
            var view = new Enova.Forms.CRM.KontrahenciView()
            {
                SelectionMode = true
            };

            if (BAL.Forms.FormManager.Instance.ShowGridFormDialog(view) == System.Windows.Forms.DialogResult.OK)
            //if (form.SelectedItem != null)
            {
                //Enova.Business.Old.DB.Kontrahent enovaKontrahent = (Enova.Business.Old.DB.Kontrahent)form.SelectedItem;
                Enova.API.CRM.Kontrahent enovaKontrahent = (Enova.API.CRM.Kontrahent)view.Current;
                if (Enova.Business.Old.Core.ContextManager.WebContext.Kontrahenci.Any(k => k.Guid == enovaKontrahent.Guid))
                {
                    MessageBox.Show("Istnieje już konto dla tego kontrahenta", "EnovaTools", MessageBoxButtons.OK);
                    return;
                }
                Enova.Business.Old.DB.Web.Kontrahent kontrahent = (Enova.Business.Old.DB.Web.Kontrahent) this.DataSource;
                kontrahent.Guid  = enovaKontrahent.Guid;
                kontrahent.Kod   = enovaKontrahent.Kod;
                kontrahent.Nazwa = enovaKontrahent.Nazwa;
                kontrahent.Nip   = enovaKontrahent.NIP;

                string prKod = enovaKontrahent.Features["przedstawiciel"].ToString();

                Enova.Business.Old.DB.Web.Kontrahent przedstawiciel = Enova.Business.Old.Core.ContextManager.WebContext.Kontrahenci
                                                                      .Where(k => k.CzyAgent == true && k.Kod == prKod).FirstOrDefault();

                kontrahent.Przedstawiciel = przedstawiciel;
                przedstawicielComboBox.DataBindings["SelectedItem"].ReadValue();


                var enovaAdres = enovaKontrahent.Adres;
                Enova.Business.Old.DB.Web.Adres adres = kontrahent.DomyslnyAdresFaktury;
                adres.KodPocztowy = enovaAdres.KodPocztowy;
                adres.Miasto      = enovaAdres.Miejscowosc;
                adres.Adres1      = enovaAdres.Ulica + (enovaAdres.NrDomu != "" ? (" " + enovaAdres.NrDomu + (enovaAdres.NrLokalu != "" ? "/" + enovaAdres.NrLokalu : "")) : "");
                adres.Alias       = enovaKontrahent.Kod;
                adres.Firma       = enovaKontrahent.Nazwa;
                adres.Telefon     = enovaAdres.Telefon;

                var enovaAdresKor = enovaKontrahent.AdresDoKorespondencji;
                if (enovaAdresKor != null && !string.IsNullOrEmpty(enovaAdresKor.KodPocztowy) && enovaAdresKor.KodPocztowy != "0")
                {
                    Enova.Business.Old.DB.Web.Adres adresKor = kontrahent.Adresy.Where(a => a.DomyslnyAdresFaktury == false && a.DomyslnyAdresWysylki == true).FirstOrDefault();
                    adresKor.Firma       = enovaKontrahent.Nazwa;
                    adresKor.Alias       = enovaKontrahent.Kod;
                    adresKor.Adres1      = enovaAdresKor.Ulica + (enovaAdresKor.NrDomu != "" ? (" " + enovaAdresKor.NrDomu + (enovaAdresKor.NrLokalu != "" ? "/" + enovaAdresKor.NrLokalu : "")) : "");
                    adresKor.KodPocztowy = enovaAdresKor.KodPocztowy;
                    adresKor.Miasto      = enovaAdresKor.Miejscowosc;
                    adresKor.Telefon     = enovaAdresKor.Telefon;
                }

                setEnovaTextBox();
            }
        }
Exemplo n.º 8
0
 public DokumentyView(string key, Enova.API.CRM.Kontrahent kontrahent, Enova.API.Handel.DefDokHandlowego definicja = null)
     : base(key)
 {
     this.kontrahent = kontrahent;
     this.definicja  = definicja;
 }