public object StartPDF(Context cx)
        {
            foreach (DokumentHandlowy dokhan in dh)
            {
                return(new ReportResult
                {
                    Context = cx,
                    TemplateFileSource = AspxSource.Storage,
                    Format = ReportResultFormat.PDF,

                    TemplateFileName = @"C:\Users\jaroslaw.pitala\Source\Repos\enova\SonetaRaporty\Reports\handel\sprzedaz.aspx",

                    OutputHandler = (stream) =>
                    {
                        var attName = "FV_" + Date.Now.ToString("yyyyMMddHHmmss") + ".pdf";
                        var dirName = "C:\\wydruki\\";
                        // wymagany jest katalog w którym pdf zostanie zapisany, ścieżkę należy dostować do środowiska instalacji
                        var outFileName = System.IO.Path.Combine(dirName, attName);

                        using (var file = System.IO.File.Create(outFileName))
                        {
                            Soneta.Tools.CoreTools.StreamCopy(stream, file);
                            file.Flush();
                        }

                        using (Session s = cx.Login.CreateSession(false, false))
                        {
                            var zm = ZadaniaModule.GetInstance(s);
                            var crm = CRMModule.GetInstance(s);
                            var bm = BusinessModule.GetInstance(s);
                            using (ITransaction transakcja = s.Logout(true))
                            {
                                WiadomoscRobocza wr = new WiadomoscRobocza();
                                crm.WiadomosciEmail.AddRow(wr);
                                wr.Tresc.Add("Witam serdecznie,<br><br>W załączniku przesyłam fakturę numer " + dokhan.Numer + " Prosimy o terminową wpłatę");
                                if (zm.Config.Operatorzy.Aktualny.DomyslneKontoPocztowe != null)
                                {
                                    wr.KontoPocztowe = zm.Config.Operatorzy.Aktualny.DomyslneKontoPocztowe;
                                    wr.Tresc.Add(zm.Config.Operatorzy.Aktualny.Podpis);
                                }
                                Soneta.Business.Db.Attachment zal = new Soneta.Business.Db.Attachment(wr, AttachmentType.Attachments);
                                zal.Name = attName;

                                // stworzenie załącznika z wygenerowanego pliku pdf

                                bm.Attachments.AddRow(zal);
                                System.IO.FileStream strumien = new System.IO.FileStream(outFileName, System.IO.FileMode.Open);
                                zal.LoadFromStream(strumien);
                                zal.LoadIconFromFile(outFileName);

                                transakcja.CommitUI();
                                return null;
                                // return wr;
                            }
                        }
                    }
                });
            }
            return(null);
        }
Exemplo n.º 2
0
        private static void KopiujZalaczniki(WiadomoscRobocza wiadomosc, FileStream stream)
        {
            var businessModule = BusinessModule.GetInstance(wiadomosc.Session);
            var zalacznik      = new Attachment(wiadomosc, AttachmentType.Attachments)
            {
                Name = "Raport.pdf"
            };

            businessModule.Attachments.AddRow(zalacznik);

            zalacznik.LoadFromStream(stream);
            zalacznik.LoadIconFromFile(stream.Name);
        }
Exemplo n.º 3
0
        public WiadomoscRobocza UtworzWiadomosc(string emailTo, string tresc, string temat, FileStream stream)
        {
            WiadomoscRobocza wiadomoscRobocza = null;


            using (ITransaction transaction = row.Session.Logout(true))
            {
                wiadomoscRobocza = new WiadomoscRobocza();
                wiadomoscRobocza.KontoPocztowe = konto;
                row.Session.GetCRM().WiadomosciEmail.AddRow((Row)wiadomoscRobocza);


                IEmailElement iElement = this.Element();
                if (iElement != null)
                {
                    Console.WriteLine("Dodaje element");
                    wiadomoscRobocza.Session.GetCRM().ElementyEmail.AddRow(new ElementEmail
                    {
                        WiadomoscEmail = wiadomoscRobocza,
                        Element        = this.Element()
                    });
                }

                //this.KopiujZalacznikiDoWysylki(wiadomoscRobocza);
                KopiujZalaczniki(wiadomoscRobocza, stream);

                wiadomoscRobocza.Do            = emailTo;
                wiadomoscRobocza.KontoPocztowe = konto;
                wiadomoscRobocza.Temat         = temat;
                wiadomoscRobocza.Tresc         = tresc;
                wiadomoscRobocza.DostepnyHtml  = true;
                wiadomoscRobocza.TypWiadomosci = TypWiadomości.Robocza;

                transaction.Commit();
            }
            return(wiadomoscRobocza);
        }
Exemplo n.º 4
0
        public WiadomoscRobocza WyslijWiadomosc(string emailTo, string tresc, string temat, bool wyslac, FileStream stream)
        {
            WiadomoscRobocza wiadomoscRobocza;

            using (ITransaction transaction = row.Session.Logout(true))
            {
                wiadomoscRobocza = new WiadomoscRobocza();
                CRMModule.GetInstance(row).WiadomosciEmail.AddRow(wiadomoscRobocza);
                IEmailElement iElement = this.Element();
                if (iElement != null)
                {
                    wiadomoscRobocza.Session.GetCRM().ElementyEmail.AddRow(new ElementEmail
                    {
                        WiadomoscEmail = wiadomoscRobocza,
                        Element        = this.Element()
                    });
                }

                KopiujZalaczniki(wiadomoscRobocza, stream);

                wiadomoscRobocza.Do            = emailTo;
                wiadomoscRobocza.KontoPocztowe = konto;
                wiadomoscRobocza.Temat         = temat;
                wiadomoscRobocza.Tresc         = tresc;
                wiadomoscRobocza.DostepnyHtml  = true;
                wiadomoscRobocza.TypWiadomosci = TypWiadomości.Robocza;

                transaction.Commit();
            }
            if (wyslac)
            {
                this.WyslijWiadomosc(wiadomoscRobocza);
            }

            return(wiadomoscRobocza);
        }