Example #1
0
 /// <summary>
 /// Erstellt eine Vorschau des Rechnungs-PDF.
 /// </summary>
 /// <param name="ms">MemoryStream, in den die PDF-Daten geschrieben werden.</param>
 /// <param name="logoFilePath">Dateipfad zum Logo für das PDF.</param>
 public void PrintPreview(DataClasses1DataContext dbContext, MemoryStream ms, string logoFilePath)
 {
     InvoicePDF pdf = new InvoicePDF(dbContext, this, logoFilePath);
     using (MemoryStream tempStream = new MemoryStream())
     {
         pdf.Preview = true;
         pdf.WritePDF(tempStream);
         PDFSharpUtil.WriteWatermark("", tempStream, ms);
     }
 }
Example #2
0
        /// <summary>
        /// Druckt die Rechnung im Original als PDF erstellt einen Datensatz zum Speichern des PDF in der Datenbank.
        /// </summary>
        /// <param name="dbContext">Datenbankkontext für die Transaktion.</param>
        /// <param name="ms">MemoryStream, in den das PDF geschrieben wird.</param>
        /// <param name="logoFilePath">Dateipfad zum Logo für das PDF.</param>
        ///  <param name="defaultAccountNumber">Das Standard definierte Konto</param>
        public void Print(DataClasses1DataContext dbContext, MemoryStream ms, string logoFilePath, bool defaultAccountNumber = true)
        {
            if (this.IsPrinted)
            {
                throw new Exception("Die Rechnung wurde bereits gedruckt.");
            }

            this.LogDBContext = dbContext;

            InvoiceNumber num = this.InvoiceNumber;
            if (num == null)
            {
                num = new InvoiceNumber()
                            {
                                InvoiceId = this.Id
                            };
                dbContext.InvoiceNumber.InsertOnSubmit(num);
                dbContext.SubmitChanges();
                this.InvoiceNumber = num;

            }

            InvoicePDF pdf = new InvoicePDF(dbContext, this, logoFilePath);
            pdf.WritePDF(ms);
            Document doc = new Document()
            {
                Data = ms.ToArray(),
                DocumentType = dbContext.DocumentType.Where(q => q.Id == (int)DocumentTypes.Invoice).Single(),
                FileName = "Rechnung_" + num.Number.ToString() + ".pdf",
                MimeType = "application/pdf"
            };

            this.Document = doc;
            dbContext.Document.InsertOnSubmit(doc);
            dbContext.SubmitChanges();
            dbContext.WriteLogItem("Rechnung " + num.Number.ToString() + " wurde gedruckt.", LogTypes.UPDATE, this.Id, "Invoice", doc.Id);
            this.IsPrinted = true;
            this.PrintDate = DateTime.Now;

            if (defaultAccountNumber)
            {
                InvoiceItemAccountItem.UpdateAuthorativeAccounts(dbContext, this, Convert.ToString(ConfigurationManager.AppSettings["DefaultAccountNumber"]));
            }
        }