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); } }
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; }
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 }]; } }
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(); } } } }
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(); } } } } }
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; }
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(); } }
public DokumentyView(string key, Enova.API.CRM.Kontrahent kontrahent, Enova.API.Handel.DefDokHandlowego definicja = null) : base(key) { this.kontrahent = kontrahent; this.definicja = definicja; }