예제 #1
0
        public ActionResult ExportPdf(int id)
        {
            string invoiceFileName = "";
            PreviewInvoiceViewModel exportModel = invoiceRepository.GetInvoicePreviewById(id);

            var invoice = invoiceRepository.GetInvoiceById(id);

            var students = studentRepository.GetAllStudents();

            foreach (var student in students)
            {
                if (student.StudentId == invoice.StudentId)
                {
                    invoiceFileName = student.Name;
                }
            }

            return(new ActionAsPdf("Export", new { id = exportModel.InvoiceId })
            {
                FileName = $"F-{invoice.InvoiceId}_{invoiceFileName}.pdf",
                PageSize = Rotativa.Options.Size.A4,
                PageOrientation = Rotativa.Options.Orientation.Portrait,
                PageMargins = { Left = 1, Right = 1 }
            });
        }
예제 #2
0
        public PreviewInvoiceViewModel GetInvoicePreviewById(int id)
        {
            PreviewInvoiceViewModel previewModel = new PreviewInvoiceViewModel();

            Invoice dbInvoiceModel = dbContext.Invoices.FirstOrDefault(m => m.InvoiceId == id);

            if (dbInvoiceModel != null)
            {
                previewModel.InvoiceId      = dbInvoiceModel.InvoiceId;
                previewModel.Invoice_Series = dbInvoiceModel.Invoice_Series;
                previewModel.Date           = dbInvoiceModel.Create_Date.Day.ToString() + "." + dbInvoiceModel.Create_Date.Month.ToString() + "." + dbInvoiceModel.Create_Date.Year.ToString();
                previewModel.Create_Date    = dbInvoiceModel.Create_Date;
                previewModel.Contractor     = dbInvoiceModel.Contractor;
                previewModel.StudentId      = dbInvoiceModel.StudentId;
                previewModel.Quantity       = dbInvoiceModel.Quantity;
                previewModel.StudentCourse  = dbInvoiceModel.StudentCourse;
                previewModel.StudentPrice   = dbInvoiceModel.StudentPrice;

                var students = studentRepository.GetAllStudents();
                foreach (var student in students)
                {
                    if (previewModel.StudentId == student.StudentId)
                    {
                        previewModel.StudentName = student.Name;
                    }
                }
                previewModel.Product = "Cursuri Muzica - " + dbInvoiceModel.StudentCourse;
                previewModel.Value   = dbInvoiceModel.StudentPrice * dbInvoiceModel.Quantity;
                previewModel.Total   = previewModel.Value;
            }
            return(previewModel);
        }
예제 #3
0
        public async Task <ActionResult> Preview(int id)
        {
            var invoice = await _dbContext.Invoices
                          .Include(i => i.Items)
                          .Include(i => i.Team)
                          .Include(i => i.Attachments)
                          .Include(i => i.Coupon)
                          .FirstOrDefaultAsync(i => i.Id == id);

            if (invoice == null)
            {
                return(NotFound());
            }

            invoice.UpdateCalculatedValues();

            var model = new PreviewInvoiceViewModel()
            {
                Id              = invoice.GetFormattedId(),
                CustomerName    = invoice.CustomerName,
                CustomerCompany = invoice.CustomerCompany,
                CustomerEmail   = invoice.CustomerEmail,
                CustomerAddress = invoice.CustomerAddress,
                DueDate         = invoice.DueDate,
                Memo            = invoice.Memo,
                Items           = invoice.Items,
                Attachments     = invoice.Attachments,
                Coupon          = invoice.Coupon,
                Discount        = invoice.CalculatedDiscount,
                TaxAmount       = invoice.CalculatedTaxAmount,
                TaxPercent      = invoice.TaxPercent,
                Subtotal        = invoice.CalculatedSubtotal,
                Total           = invoice.CalculatedTotal,
                Paid            = invoice.Paid,
                PaidDate        = invoice.PaidAt.ToPacificTime(),
                Team            = new PaymentInvoiceTeamViewModel(invoice.Team),
            };

            return(View(model));
        }
예제 #4
0
        public ActionResult SendEmail(int id)
        {
            //Save invoice in folder
            SaveInvoice(id);

            //Initialize email Components
            string receiver        = "";
            string subject         = "Factura Scoala Amadeus";
            string message         = "Buna Ziua,\n\n Atasat gasiti factura pentru luna in curs. \n\n O zi frumoasa!";
            string invoiceFileName = "";
            PreviewInvoiceViewModel exportModel = invoiceRepository.GetInvoicePreviewById(id);

            var invoice = invoiceRepository.GetInvoiceById(id);

            var students = studentRepository.GetAllStudents();

            foreach (var student in students)
            {
                if (student.StudentId == invoice.StudentId)
                {
                    //Get student Name
                    invoiceFileName = student.Name;
                    //Get Student Email
                    receiver = student.Email;
                }
            }
            try
            {
                if (ModelState.IsValid)
                {
                    var senderEmail   = new MailAddress("*****@*****.**", "Contabilitate Amadeus");
                    var receiverEmail = new MailAddress(receiver, receiver);
                    var password      = "******";
                    var sub           = subject;
                    var body          = message;


                    var smtp = new SmtpClient
                    {
                        Host                  = "smtp.gmail.com",
                        Port                  = 587,
                        EnableSsl             = true,
                        DeliveryMethod        = SmtpDeliveryMethod.Network,
                        UseDefaultCredentials = false,
                        Credentials           = new NetworkCredential(senderEmail.Address, password)
                    };

                    Attachment attachment;
                    attachment = new Attachment($"C:\\TEMP\\F-{invoice.InvoiceId}_{invoiceFileName}.pdf");

                    using (var mess = new MailMessage(senderEmail, receiverEmail)
                    {
                        Subject = subject,
                        Body = body,
                    })

                    {
                        mess.Attachments.Add(attachment);
                        smtp.Send(mess);
                    }
                    return(View("SendEmail"));
                }
            }
            catch (Exception)
            {
                ViewBag.Error = "Some Error";
            }
            return(View());
        }
예제 #5
0
        public ActionResult Export(int id)
        {
            PreviewInvoiceViewModel previewModel = invoiceRepository.GetInvoicePreviewById(id);

            return(View("Export", previewModel));
        }